从SVN恢复已删除文件的正确方法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我从回购站删除了一个文件,现在想把它放回去。我能弄清的最好的是:

  • 在删除之前更新到修订版本
  • 将文件复制到别处
  • 更新到头
  • 将文件复制回来
  • 添加它们
  • 承诺

这只是闻起来很糟糕,它放弃了所有的历史启动。有一个更好的方法来做到这一点。我已经看过SVN书,但没有找到任何内容,现在正在查看SVN标签列表。

提问于
用户回答回答于

使用svn merge:

svn merge -c -[rev num that deleted the file] http://<path to repository>

举个例子:

svn merge -c -12345 https://svn.mysite.com/svn/repo/project/trunk
             ^ The negative is important

对于TortoiseSVN(我认为...)

  • 右键单击资源管理器,转到TortoiseSVN - >合并...
  • 确保选择“合并一系列修订版”,然后单击下一步
  • 在“修订要合并的范围”文本框中,指定删除文件的修订版
  • 选中“反向合并”复选框,然后单击下一步
  • 点击合并
用户回答回答于

执行svn合并的问题是,将重新引入与删除相同的修订中所做的其他更改。svn副本是一个更有针对性的操作,它只会影响已删除的文件。

使用Tortoise SVN,你可以通过svn副本来复制已从工作副本目录和以后的SVN修订版中删除的文件,如下所示:

  • 浏览到之前包含该文件的工作副本文件夹。
  • 右键单击资源管理器中的文件夹,转到TortoiseSVN - >显示日志。
  • 右键单击刚删除文件的版本号之前的版本号,然后选择“浏览存储库”。
  • 右键单击删除的文件并选择“复制到工作副本...”并保存。

被删除的文件现在将在工作副本文件夹中。要将其重新添加回SVN,请右键单击已恢复的文件并选择SVN Commit。

注意:此方法将保留恢复文件的以前历史记录,但要查看TortoiseSVN日志中的以前历史记录,需要确保在“日志消息”对话框中未选中“停止复制/重命名”。

扫码关注云+社区