我找到了各种关于如何恢复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的提交?我如何检查恢复已经完成(没有在实际文件中查看已恢复的更改)?
当前回答
虽然给出的建议可能对某些人有用,但对我的情况不适用。当执行合并时,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>
这对我有用,也许对其他人也有帮助=)
其他回答
如果您使用的是TortoiseSVN客户端,则可以通过显示日志对话框轻松完成。
下面将做一个演练,正如它所说。HEAD是当前版本,PREV是之前的版本,然后是文件或提交项的路径:
svn merge --dry-run -rHEAD:PREV https://example.com/svn/myproject/trunk
如果试运行看起来不错,那么运行命令时不要使用——dry-run
验证修订中的更改并重新提交。要浏览版本号,请尝试:
svn log
非常老的线程,但是Intellij没有答案。还原一次提交:
至: 颠覆>集成目录…
首先,撤销1944年修订中所做的更改。
> svn merge -c -1944 .
其次,检查将要提交的内容。
> svn status
第三,提交1945版本。
> svn commit -m "Fix bad commit."
第四,查看新的日志。
> svn log -l 4
------------------------------------------------------------------------
1945 | myname | 2015-04-20 19:20:51 -0700 (Mon, 20 Apr 2015) | 1 line
Fix bad commit.
------------------------------------------------------------------------
1944 | myname | 2015-04-20 19:09:58 -0700 (Mon, 20 Apr 2015) | 1 line
This is the bad commit that I made.
------------------------------------------------------------------------
1943 | myname | 2015-04-20 18:36:45 -0700 (Mon, 20 Apr 2015) | 1 line
This was a good commit.
------------------------------------------------------------------------
Alex,试试这个:svn merge [WorkingFolderPath] -r 1944:1943