120

我已经在本地签出了我从不同分支(具有完全不同的文件夹结构)合并到的 SVN 分支(我的分支)的副本。所以基本上有很多删除(旧文件)和添加(新文件)。

当我尝试将合并提交到存储库(到我的分支)时,Tortoise 说

此提交不是递归的,并且为提交选择了移动/重命名的文件夹。此类移动/重命名始终在存储库中递归执行。你还是要承诺吗?

可以继续进行此提交吗?如果没有,我应该怎么做才能没有问题?

另外,对于我添加的一些文件,我在添加后进行了更改(如果这会影响性质)。

4

10 回答 10

138

谷歌发现如何修复它:在提交窗口中按 F5(不在“警告弹出窗口”中)

有关详细信息,请参阅http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2831045

在 26.08.2011 22:39,Ryan J Ollos 写道:

几个月以来,我一直看到启动提交时出现以下对话框。尝试在合并后提交时经常发生这种情况。

然而,我最近注意到的是,如果我取消然后手动刷新文件列表 (F5),我在第二次启动提交时不会再次看到该消息。提交似乎成功了,没有进一步的问题。

提交对话框在后台线程中监视工作副本以获取更改通知。此类通知由操作系统发送,以防文件被修改/移动/重命名/...如果收到此类通知,提交对话框首先会进行一些检查,以便删除其中的大部分。如果通知表明未检查且在提交对话框中不可见的文件以某种方式发生了更改,则它会切换回非递归提交。这是因为如果您在另一个编辑器中打开了一个文件并在提交对话框打开时保存您的更改,那么即使您没有在提交对话框中检查它(它不会显示),该文件也会被提交直到您使用 F5 刷新对话框)。

因此,如果您经常看到该警告对话框,请检查是否有另一个正在运行的工具/应用程序会修改您的工作副本中的文件。

正如您所注意到的:如果您按 F5,则“非递归标志”将被重置,因为刷新后,您会再次看到所有文件 - 甚至是您在启动对话框后修改的文件。

斯特凡

于 2014-03-07T08:04:40.767 回答
28

我有同样的问题,但通过恢复对我标记为“ignore-on-commit”的文件的更改来解决它

一旦我恢复了这些文件,tortoisesvn 就能够提交合并中的所有其他文件

于 2014-05-30T09:12:56.423 回答
6

如果我继续这个提交可以吗?

不,您的提交将忽略 WC-tree 中的所有更改并仅反映根级别的更改(损坏的合并)。

最初签出非递归时出错。您可以尝试使用 --depth infinityCLI 中的参数执行良好的完整提交,或者在 TortoiseSVN GUI 中找到此开关。

svn commit --depth infinity . -m "Merge"
于 2012-10-27T05:29:46.270 回答
1

看起来 TortoiseSVN 在调用提交之前执行了某种有效性检查。很好,但错误信息非常不清楚。

当我遇到这个问题时,我又回到使用 svn 命令行来提交。由于其中一个文件夹不是最新的,提交失败。仅更新该文件夹后,我再次运行“svn commit”并通过了。

编辑: PS:在您使用之前尝试一下,请确保您没有任何标记为“提交时忽略”的文件。“提交时忽略”是特定于乌龟的,SVN 提交也会选择这些更改。

于 2017-02-15T23:02:04.107 回答
1

只是想我会发布这个,因为它对我有用......

发生这种情况的原因是因为我部分重命名了我创建的一个新项目,并且由于某种原因,它们在提交屏幕上都显示为“缺失”。

在我删除项目和文件夹(SVN 打勾)并再次将其作为新项目放回后,突然所有的“丢失”都变成了“添加”并且提交运行良好而没有警告我任何事情.

希望这可以帮助!

于 2017-05-11T08:15:41.957 回答
1

我看到了这个问题,原因是一些添加的文件没有明显的原因没有添加状态。即使父文件夹正确显示为“添加”,它们也是“正常的”。我恢复了那些“正常”的变化,然后手动重新做了。这使得每个添加的项目在提交列表中出现两次,但它解决了错误,现在一切似乎都处于正常工作状态。

它与另一个答案中的忽略提交没有任何关系,它似乎只是 TortoiseSVN 中的一个错误。

于 2019-01-02T14:27:14.280 回答
1

另外对于一些我添加了 SVN 的文件,我在添加后进行了更改(如果这会影响性质)。

在我的情况下,这正是导致消息出现的原因,即使我取消选择这些文件进行提交。

丑陋的解决方案,只有在只有几个文件受到影响时才能安全工作:

  1. 创建更改文件的副本
  2. 还原更改的文件
  3. 提交合并/重新集成
  4. 将更改的文件复制回原始位置

提醒自己:只有在目标(主干)干净时才重新整合分支。

于 2015-11-03T09:31:08.940 回答
1

我只是有同样的问题。我没有选择所有文件,而是单击了版本控制,一切正常。就我而言,版本化选项选择了所有文件,所以现在一切正常。

于 2016-07-20T13:40:19.693 回答
0

问题可能是,您的合并信息被某人或自动删除,因为信息在树中向上移动。如果你要再次合并它们,它会暂时起作用。但是所有其他人都会遇到他们未合并的分支的问题。SVN 会丢失一些代码并再次合并已经提交的代码。

因此,恢复这些文件并再次更改它们可能会起作用,但您不应该只提交更改。

于 2015-06-30T14:24:28.853 回答
-4

我不知道 tortoisesvn 的选项,但你可以使用命令行

svn commit --non-recursive [folder]

这就是你喜欢的工作,就像你喜欢工作一样

于 2012-10-26T21:04:58.017 回答