我找到了各种关于如何恢复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的提交?我如何检查恢复已经完成(没有在实际文件中查看已恢复的更改)?
当前回答
两个例子都必须成立,但是
svn merge -r UPREV:LOWREV。撤销范围
svn merge -c -REV。撤消单个修订,在您的情况下REV将是1944,即您希望撤消的修订。
在这个语法中,如果当前目录是WC并且(在每次合并后必须完成)你将提交结果
您想查看日志吗?
其他回答
Alex,试试这个:svn merge [WorkingFolderPath] -r 1944:1943
下面将做一个演练,正如它所说。HEAD是当前版本,PREV是之前的版本,然后是文件或提交项的路径:
svn merge --dry-run -rHEAD:PREV https://example.com/svn/myproject/trunk
如果试运行看起来不错,那么运行命令时不要使用——dry-run
验证修订中的更改并重新提交。要浏览版本号,请尝试:
svn log
我尝试了上面,(svn merge)你是对的,它做杰克。然而
svn update -r <revision> <target> [-R]
似乎可以工作,但不是永久性的(我的SVN只是显示旧版本)。所以我不得不
mv <target> <target backup>
svn update <target>
mv <target backup> <target>
svn commit -m "Reverted commit on <target>" <target>
在我的特定情况下,我的目标是interfaces/AngelInterface.php。我对文件进行了更改,提交了它们,更新了构建计算机运行phpdoc编译器,发现我的更改是浪费时间。svn log interfaces/AngelInterface.php显示我的更改为r22060,之前对该文件的提交是r22059。所以我可以svn更新-r22059 interfaces/AngelInterface.php,我最终得到的代码是-r22059。然后:-
mv interfaces/AngelInterface.php interfaces/AngelInterface.php~
svn update interfaces/AngelInterface.php
mv interfaces/AngelInterface.php~ interfaces/AngelInterface.php
svn commit -m "reverted -r22060" interfaces/AngelInterface.php
或者,我也可以在目录上做同样的事情,通过指定。-R来代替上述所有的interfaces/AngelInterface.php。
首先,撤销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.
------------------------------------------------------------------------
两个例子都必须成立,但是
svn merge -r UPREV:LOWREV。撤销范围
svn merge -c -REV。撤消单个修订,在您的情况下REV将是1944,即您希望撤消的修订。
在这个语法中,如果当前目录是WC并且(在每次合并后必须完成)你将提交结果
您想查看日志吗?