SVN复制到工作副本,不能删除文件(提交前)

时间:2014-07-16 21:24:35

标签: svn branch delete-file revert

我在创建分支时不小心意外删除了一个文件,我无法弄清楚如何在不丢失文件历史记录的情况下将其恢复。

我做了什么

我正在使用TortoiseSVN(1.8.2)。我通过

复制了一个分支
right-click, drag, release and select "SVN Copy and rename versioned item here"

我以为我什么都没做(具体来说,我没有在我的工作副本中提交新分支)。

虽然肯定会发生一些事情 - 这可能是导航错误,我不确定 - 但是底线,文件(NewBranch / app / web / classes / config.properties)没有显示在列表中。 我以某种方式删除了该文件。

当我检查修改时

right-click, TortoiseSVN -> Check for modifications

文件&分支的文件夹出现状态为“normal(+)”,但有两个例外:

  • 分支的根文件夹(NewBranch)显示状态为“已添加(+)”
  • 此config.properties文件显示状态为“已删除(+)”

TortoiseSVN显示红色“!”作为父文件夹(NewBranch / app / web / classes)的状态,并为其父(Web)及其父(app)和分支根(NewBranch)提供相同的状态。

修复它?

  1. 我在“检查修改”输出窗口中尝试“右键单击,还原”文件 - 它给了我一个错误

    “如果没有还原父母就无法恢复”。

  2. 我尝试在父文件夹及其父文件夹上执行“恢复”,直到分支根目录 - 我没有收到错误,但文件没有重新显示。

  3. 我尝试将文件从旧分支复制到此文件夹 - 它说我添加文件!

  4. Arrg。

    我想要删除文件&保留其历史。如果必须,我会复制文件 - 但是,任何想法?

1 个答案:

答案 0 :(得分:1)

只要你没有承诺,你就不会失去太多。

作为修复("还原")工作副本导致问题,我会重新结账:

只需查看要分支的文件夹,然后选择TortoiseSVN->分支/标记。 选择分支/文件夹并添加您的分支机构。通过这种方式,创建分支(而不是在工作副本中创建分支)要容易得多。