【问题标题】:tortoisesvn lost history of file due to delete, then add of same filetortoisesvn 由于删除而丢失了文件的历史记录,然后添加相同的文件
【发布时间】:2011-02-28 22:50:04
【问题描述】:

我让开发人员通过从存储库中删除文件并重新添加来“还原”文件。我们现在有一个没有历史记录的当前文件。有没有办法找回被删除的文件。由于它与现有文件具有相同的名称,我应该如何继续?是的,我已尝试阅读文档,但似乎无法获得正确的操作组合。

【问题讨论】:

  • 当公司中比你年长的“开发人员”删除 Subversion 上的文件历史记录,或者坚持根本不提交,并要求他是对的,而你只是在用“不必要的小程序”破坏 Subversion,这真是太棒了提交”:/

标签: tortoisesvn


【解决方案1】:
  1. 删除工作副本中的文件
  2. 在存储库浏览器中,转到原始文件仍然存在的修订版(即在它被替换之前)
  3. 在存储库浏览器中右键单击该修订版中的该文件,执行“复制到工作副本”
  4. 将工作副本中的路径指定为“复制到”目标

现在您的文件已恢复,包括历史记录。

【讨论】:

  • 好的。我在本地有文件。我在本地删除。我转到存储库并转到删除文件之前的修订版。我选择“复制到工作副本”并得到错误:“'C:\...\MyFile.ascx.cs' 的条目存在(尽管工作文件丢失)”如果我通过“将文件放回(本地)” SVN 更新”,然后再试一次,我得到错误“路径 c:\...\MyFile.ascx.cs”已经存在。相反,如果我选择“复制到...”并输入我的本地文件位置,则会收到错误消息:“源和目标似乎不在同一个存储库中(src:'svn://domain/.../MyFile .ascx.cs';dst:'file:///C:/.../MyFile.ascx.cs"
  • 知道了。我不得不在本地 TortoiseSVN 删除。我做了“复制到工作副本”,然后重新签入该文件。只要我取消选择“停止复制/重命名”,我就会得到完整的历史记录。谢谢!
【解决方案2】:

在此处查看此主题...

examining history of deleted file

要恢复你的文件,你可以

 svn copy url/of/file@lastrevisionthefileexisted -r lastrevisionthefileexisted path/to/workingcopy/file

【讨论】:

    【解决方案3】:

    在 Linux 上,我按照命令行上的步骤解决了这个问题:

    svnadmin create TEST
    
    svn co https://URL/svn/codes/JarLib/ 
    

    删除重新添加的文件或目录

    svn delete https://URL/svn/codes/JarLib/XXXX.jar -m "XXXX.jar history resurrect operation"
    svn update
    

    使用 'svn copy' 命令获取带有 HISTORY 的已删除文件/目录。修订号必须是删除文件/目录的最后修订号!!!

    svn copy  https://URL/svn/codes/JarLib/XXXX.jar@22467 -r 22467  XXX.jar
    

    下面的操作会将 XXXX.jar 添加到您的工作副本中,然后提交更改。

    svn commit -m "deleted file/directory is resurrected"
    

    控制: 转到 SVN 服务器并使用 svnlook 命令,如:

    svnlook history  /svn/repos/codes /JarLib/XXXX.jar --show-ids 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2010-09-28
      • 2012-08-06
      相关资源
      最近更新 更多