代码之家  ›  专栏  ›  技术社区  ›  Brian R. Bondy

有没有一种方法可以使用svn:mergeinfo关闭龟甲VN?

  •  68
  • Brian R. Bondy  · 技术社区  · 17 年前

    svn:mergeinfo .

    svn:mergeinfo ?

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

    10 回复  |  直到 9 年前
        1
  •  44
  •   RibaldEddie    17 年前

    这种情况很可能发生,因为这些文件和目录的svn:mergeinfo属性是从以前的合并中设置的。我认为,一般来说,合并单个文件或目录的方式不会导致将mergeinfo写入单个文件,这不是一个好主意。您应该养成在工作流的最高级别进行合并的习惯,这样mergeinfo属性只在结构目录上设置,例如/trunk或/branchs/1.0。

    但是,如果您发现自己在各个文件和文件夹上都有mergeinfo属性,那么您可以做两件事:第一件事就是从相关文件和目录中删除svn:mergeinfo属性。我不确定这是推荐的,除非你真的知道你在做什么,以及可能产生的影响。在执行此操作之前,请阅读文档!

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

        2
  •  39
  •   Community Mohan Dere    6 年前

    SVN 1.7及更高版本

    the release notes

    如果子树不受合并影响,则合并不再在子树(具有自己的显式合并信息)上记录合并信息(描述合并)。这将大大减少假信号的数量 svn:mergeinfo 具有大量带有显式mergeinfo的子树的用户的属性更改。

    1.7之前的SVN

    对分支的后续合并将更新该合并信息,即使 文件/文件夹不相关。这是恼人的,因为它引入了越来越多的信息 每次合并的变更列表中都会出现混乱。

    “/branchs/maintenance2.x”。下面没有任何文件或文件夹 “/branchs/maintenance2.x”应该会得到mergeinfo。遵循 merging advice in the SVN book

    不幸的是,即使只在分支的“根”文件夹中合并, svn:mergeinfo 和他们的兄弟姐妹一样合并。

    删除多余的子树mergeinfo可能是安全的。一种方法是递归删除 属性,该属性位于项目根目录中的每个文件和文件夹上。(但将合并信息保留在根文件夹本身上!)

    或者,您可以升级到 Subversion 1.6

    从评论来看,SVN 1.6中仍然存在出现多余子树合并信息的情况。但我还没能重现这一点。

        3
  •  14
  •   Chase Seibert    17 年前

    svn merge --ignore-ancestry -c 1234 svn://sourcecontrol .
    
        4
  •  7
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    如果你打勾 无视祖先 它不会在文件夹中创建svn mergeinfo。如果已经获得了svn合并信息,只需将其还原,然后通过检查ignore祖先再次进行合并。

    Enter image description here

        5
  •  3
  •   Mauricio Scheffer    17 年前
        6
  •  2
  •   Rafa    7 年前

    堆栈溢出问题中给出的命令 Remove unnecessary svn:mergeinfo properties

    From the root of the project do:
    
    svn propdel svn:mergeinfo -R
    svn revert .
    svn ci -m "Removed mergeinfo"
    
        7
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    1.5.5 CHANGES file :

    do not create mergeinfo for wc-wc moves or copies (r34184, -585)
    

    也就是说,在1.5之前的SVN中有一个bug,它会创建它没有使用的mergeinfo条目,并且是多余的,如果原始提问者有很多问题,这可能就是他们遇到的问题 svn:mergeinfo 财产。

        8
  •  0
  •   Peter Alexandr Nikitin    16 年前

    我们在项目中递归地删除了它,因为几乎所有文件都有这个信息,这使得合并非常恼人(如果只有一个文件被更改,所有文件都必须合并)。从现在开始,我们将只在根上合并,这将避免将来出现这种情况。

    哦,就在做新的分支之前,我们在树干上做了。这样,我们就可以从头开始。

        9
  •  0
  •   Ivar Wedøe    14 年前

        10
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    9 年前

    伟大的问题和答案!我们最近遇到了这个问题,因为我们正在努力克服自动化构建系统的局限性。我们的构建系统使用版本和路径信息自动递增.bdsproj和一些.dpr/.dpk文件。

    现在我知道发生了什么,所以我希望能阻止这种疯狂。

    谢谢你!