我找到了各种关于如何恢复SVN提交的示例,例如
svn merge -r [current_version]:[previous_version] [repository_url]
or
svn merge -c -[R] .
但这两种方法似乎都不管用。我尝试了这些命令,并检查了手动更改的文件。
如何恢复修订号为1944的提交?我如何检查恢复已经完成(没有在实际文件中查看已恢复的更改)?
我找到了各种关于如何恢复SVN提交的示例,例如
svn merge -r [current_version]:[previous_version] [repository_url]
or
svn merge -c -[R] .
但这两种方法似乎都不管用。我尝试了这些命令,并检查了手动更改的文件。
如何恢复修订号为1944的提交?我如何检查恢复已经完成(没有在实际文件中查看已恢复的更改)?
当前回答
Alex,试试这个:svn merge [WorkingFolderPath] -r 1944:1943
其他回答
非常老的线程,但是Intellij没有答案。还原一次提交:
至: 颠覆>集成目录…
如果您使用的是TortoiseSVN客户端,则可以通过显示日志对话框轻松完成。
虽然给出的建议可能对某些人有用,但对我的情况不适用。当执行合并时,rev 1443的用户更新到rev 1445时,仍然同步所有在1444中更改的文件,即使它们从合并中等于1443。我需要最终用户根本看不到更新。
如果你想完全隐藏提交,可以在正确的版本创建一个新的分支,然后交换分支。唯一需要做的是删除并重新添加所有锁。
copy -r 1443 file:///<your_branch> file:///<your_branch_at_correct_rev>
svn move file:///<your_branch> file:///<backup_branch>
svn move file:///<your_branch_at_correct_rev> file:///<your_branch>
这对我有用,也许对其他人也有帮助=)
SVN merge -r 1944:1943。应该恢复工作副本中r1944的更改。然后,您可以检查工作副本中的更改(使用diff),但您需要提交才能将恢复应用到存储库中。
F=code.c
REV=123
svn diff -c $REV $F | patch -R -p0 \
&& svn commit -m "undid rev $REV" $F