【发布时间】:2015-06-11 00:01:15
【问题描述】:
在我的 SVN 主干中,我删除了一个目录并在一次提交中重新添加了它。 现在,尝试获取“svn log”,我只看到该提交的历史记录,没有我过去所做的所有更改。我知道这是有道理的,因为删除和重新添加文件,但我想恢复整个事情并恢复我的历史。我该怎么做?
其他信息和详细信息: 我在 SVN 的一个主干分支上工作。为了从主干更新分支,我手动更新了带有普通差异的文件,而不是使用“svn merge”命令。对于添加到主干的新文件,我在我的分支中手动“svn add”它们,对于删除(svn rm)也是如此。 当我想将分支合并回主干时,我的一个同事建议我“svn merge”分支(我解决了这个过程中的很多冲突),然后“svn merge --reintegrate”分支中的主干和提交到主干。 在所有冲突的某个地方,我删除了整个目录,将其提交到分支,将其重新添加到分支并再次提交。 现在“merge --reintegrate”带来了该目录的delete-readdition,提交导致所有历史记录消失。 我真的只是想恢复整个事情,所以我可以从头开始(我已经知道如何使提交正确,但我不知道如何恢复和恢复历史记录)。
编辑:我试图获取一些我知道已从this question 删除的文件的日志。修订版 4129 是删除-重新添加,而 4120 是我最后一次编辑其中一个文件。 “svn log -r4129 file”只列出了我的最新提交,没有历史记录。 “svn log -r4120 file”返回一行“--------”。 我认为与该问题的主要区别在于我还在同一个提交中重新添加了文件,而不仅仅是删除。
【问题讨论】:
-
对不起,我误会了你。我以为您只是想查看历史记录,但您希望存储库看起来好像您的删除从未发生过,对吗?我不相信有办法做到这一点。
-
@PatrickQuirk 是的,这就是我想要的。我相信应该离开,考虑到如果我在整个混乱之前“svn up”进行修订,我可以查看我的正确历史。我正在寻找类似的东西:“svn up -r1000(1001 是错误的提交);svn commit -m“restored history”
-
@bahrep 建议的 svn 日志对我不起作用(请参阅上面的编辑)。我认为这是因为我在同一次提交中重新添加了文件,而不仅仅是删除了它。
-
为什么不使用“cherry pick merge”撤销有问题的修订?
svn merge -c -revNumber .更多关于反向“樱桃采摘”的信息可以在这里找到:svnbook.red-bean.com/en/1.6/…
标签: svn