【问题标题】:How to do non-recursive commits with TortoiseSVN?如何使用 TortoiseSVN 进行非递归提交?
【发布时间】:2010-10-13 14:03:53
【问题描述】:

当我在我签出的最顶层目录上修改一个属性(比如 svn:ignore)时(无论如何,大部分时间它都是主干),使用 TortoiseSVN 客户端递归地遍历整个项目。

大树,数据多,耗时长。

我怎样才能避免这种情况?其他地方可能会有变化,但我知道我只是对它们不感兴趣,无论如何都取消选中它们。

我知道稀疏结帐功能,但我不知道如何在此处应用此功能,因为我没有稀疏结帐。我是否需要创建第二个稀疏结帐,应用更改/提交,然后更新我的另一个副本?

【问题讨论】:

  • 我已更新以反映您的新条款。我提到的解决方法应该做你想做的。
  • 虽然不是很满意,但这不是你的错 ;-) 因此我接受了。非常感谢!

标签: tortoisesvn commit


【解决方案1】:

试试:

svn commit --non-recursive [target]

[编辑: OP 更新了他的问题以澄清他指的是 TortoiseSVN,而不是常规的 Subversion 命令行。]

不,TortoiseSVN 不提供非递归提交的直接方式。 但是,如果您在目录的顶层提交某些内容,但 不是较低级别(例如,您取消选择它),这必然会导致发生非递归提交。见here

因此,有一种解决方法。如果您真的非常想这样做并且您不喜欢命令行,只需对底层目录中的文件进行微不足道的更改,在取消选择虚拟更改的同时提交您的真实文件,然后恢复虚拟更改。这将强制 TortoiseSVN 进行非递归提交。

【讨论】:

  • 你说得完全正确,我很抱歉我一开始没有具体说明。我正在专门寻找 TortoiseSVN 的解决方案。我更新了问题以正确反映这一点。
【解决方案2】:

由于您正在对目录进行操作,因此 tortoise 假设它可能会影响其中的所有内容,因此会一直向下查看您的工作副本。

对工作副本的检查应该相当快,即使对于大型 repo,因为它是文件系统上的本地操作,不涉及网络操作

在 Tortoise 找到所有修改后的文件后,您可以只选择您关心的文件并提交这些文件。

在任何情况下,不同之处在于目录与普通文件的处理方式不同,这种处理方式的差异甚至可能取决于 subversion 本身的行为方式,而不仅仅是 Tortoise。

【讨论】:

  • 完全正确,但是使用 svn 您可以使用 --non-recursive 开关来避免这种情况。目前我想知道我是在 TortoiseSVN 中找不到这个功能还是根本不存在。
猜你喜欢
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2015-12-07
相关资源
最近更新 更多