我找到了各种如何恢复SVN提交的例子
svn merge -r [current_version]:[previous_version] [repository_url]
Run Code Online (Sandbox Code Playgroud)
要么
svn merge -c -[R] .
Run Code Online (Sandbox Code Playgroud)
但它们似乎都不起作用.我尝试了这些命令并检查了手动更改的文件.
如何还原修订号为1944的提交?如何检查还原已完成(未查看实际文件中的更改已被还原)?
Laz*_*ger 437
这两个例子都必须有效,但是
svn merge -r UPREV:LOWREV .
撤消范围
svn merge -c -REV .
撤消单个修订
在这种语法中 - 如果当前目录是WC并且(在每次合并后必须完成),您将提交结果
你想看日志吗?
dod*_*der 128
如果您正在使用TortoiseSVN客户端,则可以通过"显示日志"对话框轻松完成.
ono*_*n15 60
svn merge -r 1944:1943 .
应该还原工作副本中r1944的更改.然后,您可以查看在您的工作复印件(DIFF)的变化,但你需要以该还原应用到存储库提交.
Sha*_*tin 42
首先,将工作副本还原为1943年.
> svn merge -c -1943 .
Run Code Online (Sandbox Code Playgroud)
其次,检查即将提交的内容.
> svn status
Run Code Online (Sandbox Code Playgroud)
第三,提交版本1945.
> svn commit -m "Fix bad commit."
Run Code Online (Sandbox Code Playgroud)
第四,看看新的日志.
> 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.
------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
Jak*_*rka 26
无法"取消提交"修订版本,但您可以将工作副本还原为版本1943并将其作为版本1945提交.版本1943和1945将完全相同,从而有效地还原更改.
小智 9
正如它所说,以下将进行干运行.HEAD是当前版本,PREV是先前的,然后是您的文件或已提交项目的路径:
svn merge --dry-run -rHEAD:PREV https://example.com/svn/myproject/trunk
Run Code Online (Sandbox Code Playgroud)
如果干运行看起来不错,请运行不带--dry-run的命令
验证修订的更改并重新提交.要浏览版本号,请尝试:
svn log
Run Code Online (Sandbox Code Playgroud)
小智 5
F=code.c
REV=123
svn diff -c $REV $F | patch -R -p0 \
&& svn commit -m "undid rev $REV" $F
Run Code Online (Sandbox Code Playgroud)