如何从SVN存储库中取消删除

如何从SVN存储库中取消删除,svn,tortoisesvn,Svn,Tortoisesvn,我不小心删除了Ortoise SVN Repo浏览器中的一个主要文件夹。 工作文件夹不受影响 建议用什么方法来扭转这种局面? 我是否要恢复到以前的版本? 或者我需要将以前的版本签出到新文件夹中并删除旧文件夹吗?您可以在删除之前从修订版中进行复制,将其添加回回购 它们在svn中不是真正的“取消删除”选项 将工作副本更新为head版本 将以前的版本签出到新文件夹 SVN将已删除的文件夹从priorVersionFolder复制到headVersionFolder 添加到headVersionFold

我不小心删除了Ortoise SVN Repo浏览器中的一个主要文件夹。 工作文件夹不受影响

建议用什么方法来扭转这种局面?
我是否要恢复到以前的版本?
或者我需要将以前的版本签出到新文件夹中并删除旧文件夹吗?

您可以在删除之前从修订版中进行复制,将其添加回回购

它们在svn中不是真正的“取消删除”选项

  • 将工作副本更新为head版本
  • 将以前的版本签出到新文件夹
  • SVN将已删除的文件夹从priorVersionFolder复制到headVersionFolder
  • 添加到headVersionFolder中
  • SVN提交headVersionFolder
  • 将最新版本的回购协议签出到新目录
  • 在删除之前,使用乌龟合并到版本
  • 签入合并的结果

  • 有关更多信息,请参阅。

    Stackoverflow还有其他与您类似的问题。也许你可以从那里的答案中找到一些有用的东西


    既然您提到您正在使用乌龟vn:

    在工作目录上做一个TortoiseSVN | Show日志。 右键单击您删除文件夹的签入位置。 选择“还原此修订中的更改”

    这将在工作文件夹中重新创建丢失的文件。然后,您可以恢复该修订版中实际要保留的任何其他更改。一旦工作文件夹处于所需状态,请提交


    我不确定这种方法是否保留了历史。

    你试过乌龟的方法吗

    这被描述为


    发生的情况是,您回滚了删除,因此以前的版本(删除之前的版本)将成为新的头部修订。删除操作仍将出现在日志中,但它也描述了如何避免尴尬(尽管这更复杂):

    对于命令行爱好者:

    • 首先查找发生删除的修订号:

      svn log -v http://svnserver/path/to/folderContainingDeletedFolder
      
    假设您发现该目录已在修订版999中删除 (顺便说一句:您可能会发现使用svn repo浏览器更容易找到修订号)

    • 从修订版减1复制文件夹


    瞧,你完了

    这不是推荐的方法。使用copy@REV是因为您可以跟踪内容的来源。仅在文件系统中手动复制文件会破坏历史记录。如果使用“SVN Copy”,它将正确记录复制的版本。我刚刚使用上面的描述测试了这一点,现在登录到TortoiseSvn显示目录是从修订版1(它存在的地方)复制的。它的可能副本似乎保留了历史。
    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"