TortoiseSVN中撤销对子文件夹的签出

21

如何使用TortoiseSVN“取消签出”一个子文件夹?


我尝试过:

前两个选项似乎起初是有效的,但当我在顶级文件夹上点击“检查修改”时,它会告诉我子文件夹及其内容“丢失”。这显然不是我想要的。

为了让事情更清晰,我文件夹结构的相关部分类似于以下内容:

//Repository/trunk/...
//Repository/branches
                     /some-feature-branch1/...
                     /some-feature-branch2/...
                     /some-feature-branch3/...
                     /some-feature-branch4/...
                     etc.

过去我做过以下操作:

  • 本地检出//Repository/branches文件夹,但不递归获取内容。
  • 单独检出一些(但不是全部)功能分支子文件夹。

我现在想从我的本地磁盘中删除-比如- some-feature-branch3,但这总是导致检查修改时"branches"文件夹中的子文件夹状态为“丢失”。

请注意,我更喜欢使用TortoiseSVN来解决这个问题,但如果不可能,命令行也可以接受。

2个回答

39
在 SVN 1.7 中,您可以执行 svn up --set-depth exclude some-feature-branch3(不确定在 SVN 1.6 中是否可以做到)。
在 Tortoise 中,您可以右键单击 some-feature-branch3 -> “更新到修订版本” -> “更新深度: 排除” -> “使深度粘性”。
如果您不能在1.6中这样做,则可以使用深度为empty进行相同的操作。 它会保留目录本身,但它将是空的,这对于大多数实际目的来说已经足够。

22

右键单击文件夹,选择“更新到修订版...”。在弹出的对话框中,将更新深度设置为“排除”。(请注意,这似乎只适用于文件夹。)这将从您的工作副本中删除它,但不会影响存储库。Tortoise将知道在更新期间不尝试更新它。

要撤消此操作,可以右键单击父文件夹(或其父文件夹等),然后选择“Repo Browser”。找到被排除的文件夹,右键单击并选择“将项目更新到修订版”。您将获得同样的对话框;这次,只需确保它显示为“工作副本”即可。


在我看来,这个答案比被验证的答案好多了,不像旧文件夹那样留下任何痕迹,而且更容易。 - Rafiki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接