Tortoise的非recursion提交是如何工作的?

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

当我尝试提交合并到版本库(到我的分支),Tortoise说

这个提交不是recursion的,并且已经select了提交的移动/重命名文件夹。 这样的移动/重命名总是在存储库中recursion执行。 你想不想承诺?

继续进行这个提交可以吗? 如果不是的话,我该怎么做才能没有问题?

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

由Googlefind如何修复它:在提交窗口中按F5(不在“警告popup窗口”中)

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

我有同样的问题,但通过恢复更改为我已标记为'ignore-on-commit'

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

如果我继续这个提交,这是好的吗?

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

您在初始检查非recursion时出错。 您可以尝试在CLI中使用--depth infinity参数执行良好的完整提交 ,或者在TortoiseSVN GUI中find此开关。

 svn commit --depth infinity . -m "Merge" 

另外对于我添加了SVN的一些文件,我添加后做了修改(如果这影响了本质)。

在我的情况下,这正是导致消息出现的原因,即使我没有select提交的文件。

丑陋的解决scheme,只有less数文件受到影响才能安全运行:

  1. 创build已更改文件的副本
  2. 恢复更改的文件
  3. 提交合并/重新整合
  4. 将更改的文件复制回原来的位置

提醒自己:如果目标(干线)干净,只重新集成一个分支。

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

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

我只是有同样的问题。 而不是select所有的文件,我点击版本,一切运作良好。 在我的情况下,版本选项select了所有的文件,所以一切都很好。

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

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

编辑:PS:在你使用之前试试这个,确保你没有任何文件标记为“忽略提交”。 “忽略提交”是乌龟特有的,SVN提交也会select这些更改。

只是以为我会张贴这个,因为它为我工作…

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

当我删除项目和文件夹(SVN已经打勾)并重新把它作为一个新的项目,突然所有的“失踪”已经变成了“增加”和提交运行良好没有任何警告我什么。

希望这可以帮助!

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

 svn commit --non-recursive [folder] 

这就像你喜欢它的工作一样