togoise svn总是合并45个额外的文件

时间:2009-04-23 19:51:53

标签: svn tortoisesvn

当我们进行分支并与svn合并时,我们总会发生同样的事情。

我们得到了行李箱的最新副本。

创建分支并切换。

对分支中的一个文件进行一些小改动。

将分支合并回主干。

此时,我们将有一个需要被篡改的文件,以及相同的45个额外文件。这发生在每个分支和合并上,并且它总是相同的45个额外文件。我不知道如何解决问题,但它非常烦人。

有没有人见过这个?

更新:当我进行提交时,我实际更改的文件的文本状态已修改,其属性状态为空。 “45个文件”都是文本状态正常,属性状态已修改。

4 个答案:

答案 0 :(得分:12)

他们可能是 mergeinfo 属性。使用SVN 1.5版本时,设置 mergeinfo 属性非常积极,并且在合并时,这些属性会更新 - 需要提交它们。

答案是从中删除 mergeinfo 属性。也升级到版本1.6,它具有更好的 mergeinfo 支持(即它写的更少这些属性)。

如果你看一下差异,我应该说这些文件没有明显的变化。显然,如果他们的内容被更改,那么更改的内容可能会给你一个线索(例如,自动工具编写额外的注释,修改布局或在顶部或底部添加行)。


编辑:有关SVN合并问题和修复的详情,请参阅this blog post

答案 1 :(得分:5)

最有可能是提到的mergeinfo属性。您可能希望清除trunk中文件和文件夹的mergeinfo属性。批处理文件对此非常方便,因为您将来可能需要再次执行此操作。如下所示:

echo Removing Nested Merge Information...

svn propdel svn:mergeinfo subfolder1 --depth=infinity

svn propdel svn:mergeinfo subfolder2 --depth=infinity

svn propget svn:mergeinfo --depth=infinity trunk

然后在trunk的工作副本上运行批处理文件后,回到trunk。

此外,重命名和移动文件夹是在subversion repo中的文件夹/文件上生成mergeinfo属性的常用方法。 svn1.6对于为各种操作添加mergeinfo属性并不慷慨。

答案 2 :(得分:3)

阅读http://www.collab.net/community/subversion/articles/merge-info.html

上的详细文章

这很长但值得。请特别注意最后“Parting Thoughts”部分中的建议,其中包括减少mergeinfo噪声的提示。

此外,不要使用svn propdel来清理不需要的mergeinfo,而应考虑将svn merge与--record-only选项一起使用。

答案 3 :(得分:1)

就我个人而言,我认为mergeinfo引起的问题多于它解决的问题,至少在工具的当前状态下如此。一旦提交透明,也许值得使用。

您可以安全地删除mergeinfo属性。但是,请注意,您需要手动跟踪要合并的修订版本以进行重新集成。