我们有一个文件OLD_FILE,历史很长~100次修订。
然后从存储库中删除了该文件。 并创建了内容为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
顺便说一句 当我尝试从TortoiseSVN调用“显示日志”时,我可以看到下一个对话框:
离线?
连接服务器时出现问题。 您想要查看缓存的数据吗?
请注意,由于历史记录不完整,缓存的数据可能已过时,不完整甚至误导。
立即离线。永久离线。不要离线
然后我可以看到第一个OLD_FILE的所有100个修订。
这是什么意思?
答案 0 :(得分:2)
简短的回答是否定的。
但是,如果日期,修订号和相对于NEW_FILE更改的其他更改的顺序不重要,您可以:
恢复旧修订历史记录:
svn rm OLD_FILE
svn copy -r when_old_was_gone OLD_FILE OLD_FILE
使用svn diff
对NEW_FILE,apply the patch和commit的所有更改填写新文件历史记录。你必须分别对每个变化进行差异化,修补,提交。
另一种解决方法是使用tortoise svn和按路径过滤来检索所有修订的日志。将选择相同路径的所有更改。
答案 1 :(得分:1)
由于Subversion不知道NEW_FILE
和OLD_FILE
是相关的,因此您的问题的答案是否定的;它不会显示您想要的合并历史记录。但是,如果您提供适当的peg revision,您仍然可以访问~100个旧版本。
例如:
svn log http://my.repos.com/path/to/OLD_FILE@42
其中42是原始OLD_FILE
被删除之前的修订版。