当前位置:  开发笔记 > 开发工具 > 正文

有没有办法使用svn:mergeinfo关闭TortoiseSVN?

如何解决《有没有办法使用svn:mergeinfo关闭TortoiseSVN?》经验,为你挑选了4个好方法。

当我正在进行TortoiseSVN合并时,它包含一堆目录,并且一些文件包含在已修改的文件中,即使没有实际更改.

它改变了财产svn:mergeinfo.

是否有任何理由需要在目录/文件上设置这些属性?有没有办法绕过不做这些改变svn:mergeinfo

我通常只是恢复项目然后提交,但这浪费了额外的时间.



1> RibaldEddie..:

这很可能发生,因为这些文件和目录具有从先前合并设置的svn:mergeinfo属性.我认为以一种导致将mergeinfo写入单个文件的方式合并单个文件或目录通常不是一个好主意.您应该养成在工作流可能的最高级别合并的习惯,以便mergeinfo属性仅在结构目录上设置,例如/ trunk或/branches/1.0.

但是,如果您发现自己在单个文件和文件夹上使用mergeinfo属性,则可以执行以下两项操作:首先,只需从相关文件和目录中删除svn:mergeinfo属性即可.我不确定这是推荐的,除非你真的知道你在做什么,以及可能产生的影响.在执行此操作之前,请阅读文档!

您可以做的第二件事是按照SVN要求的方式提交属性更改,如果您信任该软件,则可能是正确的做法.

话说回来,我一直在与队友一起养成正确的习惯,这样我们就不再有这种烦恼了.


谢谢,似乎几乎随机的文件具有此属性设置,并且它必须来自过去的开发人员从非根目录合并.我会删除它们.

2> Wim Coenen..:

SVN 1.7及更高版本

这应该在SVN 1.7中修复.从发行说明:

如果子树不受合并影响,则合并不再在子树(具有其自己的显式mergeinfo)上记录mergeinfo(描述合并).svn:mergeinfo对于具有显式mergeinfo的大量子树的用户,这应该会大大减少虚假属性更改的数量.

SVN在1.7之前

发生的情况是,一旦文件/文件夹具有显式mergeinfo,即使文件/文件夹不相关,每次后续合并到分支也将更新该mergeinfo.这很烦人,因为它在每个合并的更改列表中引入了越来越多的混乱.

为避免这种情况,只能合并到分支的"root"文件夹,例如"/branches/maintenance2.x"."/branches/maintenance2.x"下面的文件或文件夹都不应该获得mergeinfo.遵循SVN书中的合并建议.

不幸的是,即使您仅在分支的"根"文件夹中进行合并,在复制时,空svn:mergeinfo属性仍然可以显示在单个文件和文件夹上,以指示它们没有收到与其兄弟姐妹相同的合并.

删除多余的子树mergeinfo可能是安全的.一种方法是通过递归删除svn:mergeinfo项目根目录中每个文件和文件夹的属性.(但是将mergeinfo保留在根文件夹本身!)

或者,您可以升级到Subversion 1.6.我已经确认它解决了这个问题.它甚至似乎删除了早期版本为您添加的多余合并信息.

从评论来看,SVN 1.6中仍然存在多余的子树mergeinfo出现的情况.但我无法重现这一点.


我可以确认svn 1.6无法解决这个问题.

3> Chase Seiber..:

如果使用--ignore-ancestry选项进行合并,则不会首先创建mergeinfo属性.

svn merge --ignore-ancestry -c 1234 svn://sourcecontrol .



4> Shams..:

如果勾选忽略祖先,它将不会在文件夹中创建svn mergeinfo.如果你已经获得了svn合并信息,只需恢复它并通过检查ignore ancestry再次进行合并.

在此输入图像描述

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有