Tortoise的非递归提交如何工作?

时间:2012-10-22 10:58:54

标签: tortoisesvn commit non-recursive

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

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

  

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

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

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

10 个答案:

答案 0 :(得分:122)

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

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

  

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

     
    

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

         

我最近注意到的事情是,如果我取消然后     手动刷新文件列表(F5),我什么时候再看不到消息     第二次启动提交。提交似乎很成功     没有其他问题。

  
     

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

     

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

     

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

     

的Stefan

答案 1 :(得分:25)

我遇到了同样的问题,但通过将我标记为'ignore-on-commit'的文件的更改还原来解决了这个问题

一旦我还原了这些文件,那么tortoisesvn就可以从合并中提交所有其他文件

答案 2 :(得分:6)

  

如果继续进行此提交,可以吗?

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

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

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

答案 3 :(得分:1)

  

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

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

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

  1. 创建已更改文件的副本
  2. 还原已更改的文件
  3. 提交合并/重新整合
  4. 将更改的文件复制回原始位置
  5. 提醒自己:如果目标(主干)是干净的,只能重新整合分支。

答案 4 :(得分:1)

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

当我遇到这个问题时,我又回到使用svn命令行进行提交。由于其中一个文件夹不是最新的原因,提交失败。在更新了该文件夹之后,我又一次运行了“svn commit”,它就完成了。

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

答案 5 :(得分:1)

以为我会发布这个因为它对我有用......

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

我删除了项目和文件夹(SVN已打勾)并再次将其作为新项目重新放入后,突然所有“丢失”变为“已添加”并且提交运行良好而没有警告我的一切。

希望这有帮助!

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

我遇到了同样的问题。我没有选择所有文件,而是点击了版本,一切运行良好。在我的情况下,版本化选项选择了所有文件,所以现在一切正常。

答案 8 :(得分:0)

我看到了此问题,原因是一些添加的文件没有明显的原因而没有添加状态。即使父文件夹正确显示为“添加”,它们还是“正常”。我还原了这些“正常”更改,然后手动重新进行了更改。这使每个添加的项目在提交列表中显示两次,但它解决了该错误,并且现在一切似乎都处于工作状态。

它与提交时忽略不相关,在另一个答案中,这似乎只是TortoiseSVN中的错误。

答案 9 :(得分:-4)

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

svn commit --non-recursive [folder]

那就像你喜欢它一样工作 greeings

相关问题