BCS*_*BCS 112 svn tortoisesvn restore
我从回购中删除了一个文件,现在想把它放回去.我能想到的最好的是:
这只是闻起来很糟糕而且它失去了所有历史记录.必须有一个更好的方法来做到这一点.我已经查看过SVN Book,但没有找到任何内容,现在正在查看SVN标签列表.
tek*_*ara 167
按照Sean Bright的建议进行svn合并的问题是,重新引入与删除相同的修订版中所做的其他更改.svn副本是一种更有针对性的操作,只会影响已删除的文件.
使用Tortoise SVN,您可以通过svn副本恢复已从工作副本目录和后续SVN版本中删除的文件,如下所示:
已删除的文件现在将位于工作副本文件夹中.要重新添加回SVN,请右键单击恢复的文件,然后选择SVN Commit.
注意:此方法将保留已还原文件的先前历史记录,但要查看TortoiseSVN日志中的先前历史记录,您需要确保在"日志消息"对话框中取消选中"停止复制/重命名".
Sea*_*ght 56
使用svn merge:
svn merge -c -[rev num that deleted the file] http://<path to repository>
Run Code Online (Sandbox Code Playgroud)
举个例子:
svn merge -c -12345 https://svn.mysite.com/svn/repo/project/trunk
^ The negative is important
Run Code Online (Sandbox Code Playgroud)
对于TortoiseSVN(我认为...)
然而,这完全没有经过考验.
由OP编辑:这适用于我的TortoiseSVN版本(没有下一个按钮的旧版本)
诀窍是向后合并.荣誉对sean.bright指着我在正确的方向!
编辑:我们正在使用不同的版本.我描述的方法与我的TortoiseSVN版本完美配合.
另外值得注意的是,如果提交中存在多个更改,则您将进行反向合并,一旦在提交之前完成合并,您将希望还原其他更改.如果不这样做,那些额外的改变也将被逆转.
小智 16
使用Tortoise SVN复制功能还原提交的更改:
希望有所帮助
Nul*_*teя 12
我似乎总是使用svn copy作为服务器操作,因此不确定它是否适用于两个工作路径.
以下是将已删除的文件还原到项目的本地工作副本的示例:
svn copy https://repos/project/modules/module.js@3502 modules/module.js
Run Code Online (Sandbox Code Playgroud)
在项目目录中.这也适用于恢复整个目录.
如果您正在使用Tortoise SVN,您应该能够将仅从该修订版本更改为您的工作副本(有效执行反向合并),然后再执行一次提交以重新添加该文件.要遵循的步骤是:
我能够恢复文件而不丢失修订历史记录的最简单方法是使用SVN copy,上面的合并示例对我来说似乎是实现相同目的的更复杂的方法。当您只想恢复修订时,为什么需要合并?
我在这个例子中使用了以下内容并且效果很好。
svn copy -m 'restoring file' -r <rev_number_file_to_restore> http://from/file.cs http://pathTo/file.cs
Run Code Online (Sandbox Code Playgroud)
我似乎总是svn copy用作服务器操作,所以不确定它是否适用于两个工作路径。