2009-11-24 78 views
3

我们有一个文件OLD_FILE,它有很长的历史~100个修订版本。是否可以在SVN中粘贴历史记录?

然后从存储库中删除此文件。 创建了OLD_FILE内容的新文件NEW_FILE。 不要问我 - 为什么文件不只是改名;)

然后NEW_FILE被改变了5次。 然后使用svn将NEW_FILE重命名为OLD_FILE。

现在,如果我们尝试查看OLD_FILE的历史记录 - 我们只会看到与NEW_FILE相关的最后5个修订版本。 但是我们没有看到第一个OLD_FILE历史记录的很多修订。

是否可以修复存储库以查看OLD_FILE(〜100版本)和NEW_FILE(5版本)的所有修订版本? 我想用命令 看到所有这些版本SVN LOF -q OLD_FILE

BTW 当我打电话“显示日志”在TortoiseSVN我可以看到一个对话框:


转到离线?

连接服务器时出现问题。 你想看到缓存的数据吗?

请注意,由于历史记录不完整,缓存的数据可能已过时,不完整甚至误导。

Offline for Now。永久离线。不要离线


然后我可以看到第一个OLD_FILE的所有100个修订。

这是什么意思?

回答

2

简短的回答是否定的。

但是,如果日期,修订numberss和相对为了的NEW_FILE变化的其他变化并不显著,你可以:

恢复旧的修订历史:

svn rm OLD_FILE 
svn copy -r when_old_was_gone OLD_FILE OLD_FILE 

填写新的文件历史记录对NEW_FILE,apply the patchcommit的所有更改的svn diff。你必须分别进行修改,补丁和更改。

另一个解决方法是检索所有版本的乌龟svn和过滤路径。将选择相同路径的所有更改。

1

由于Subversion不知道NEW_FILEOLD_FILE是相关的,所以你的问题的答案是否定的;它不会显示您想要的合并历史记录。但是如果您提供适当的peg revision,仍然可以访问大约100个旧版本。

例如:

svn log http://my.repos.com/path/to/[email protected]

其中42是一个修改原始OLD_FILE被删除之前。

相关问题