如何避免svn:子文件夹上的合并信息?

如何避免svn:子文件夹上的合并信息?,svn,tortoisesvn,intellij-idea,ankhsvn,mergeinfo,Svn,Tortoisesvn,Intellij Idea,Ankhsvn,Mergeinfo,我们尝试仅在根分支文件夹上保留“svn:mergeinfo”属性。然而,我们一直看到它潜入子文件夹。我们已经确定了一些可能的原因: 在repo浏览器中移动文件夹 在IntelliJ中移动和/或重命名包 使用旧的svn客户端 有人能提供一份清单,列出我们不应该做的事情,以避免意外地创建这些属性吗 我们使用的工具是Intellij8(即将推出的9)、Ankh、Ortoisesvn和SlikSvn。我无法提供这样的列表。 我建议您使用svn钩子,它将 记录导致文件夹属性更改的用户操作 要么发出警告要么

我们尝试仅在根分支文件夹上保留“svn:mergeinfo”属性。然而,我们一直看到它潜入子文件夹。我们已经确定了一些可能的原因:

  • 在repo浏览器中移动文件夹
  • 在IntelliJ中移动和/或重命名包
  • 使用旧的svn客户端
  • 有人能提供一份清单,列出我们不应该做的事情,以避免意外地创建这些属性吗


    我们使用的工具是Intellij8(即将推出的9)、Ankh、Ortoisesvn和SlikSvn。

    我无法提供这样的列表。 我建议您使用svn钩子,它将 记录导致文件夹属性更改的用户操作 要么发出警告要么拒绝,
    根据您的工作流程,选择合适的工具。

    不幸的是,旧的svn客户端只需执行此操作,任何基于这些旧版本svn的工具也会被破坏。解决此问题的唯一方法是在提交之前删除创建的svn:mergeinfo条目。由于大多数人都不知道它们是被创建的,因此唯一真正实现这一点的方法是预提交钩子,或者干脆执行以下操作:

    svn propdel --recursive svn:mergeinfo $ROOT/*
    
    不时地把它们清理干净。在执行此操作时要小心,因为它会破坏您所执行的部分合并的任何记录,因此您应该只在您确实不执行部分合并的情况下执行此操作。提问者没有,我们也没有

    这个问题在较新的svn客户端中得到了修复,因此这个问题应该会慢慢消失,但这可能需要一段时间才能替换工作流中的所有工具


    根据这个问题的另一个答案,快速解释问题的原因。在执行工作副本移动或删除svn时,1.5.5之前的客户端创建了一个虚假的svn:mergeinfo条目。这是。

    对子文件夹或单个文件执行合并会导致这种情况,而且它应该会导致这种情况,因为它必须记录合并信息


    最好的方法是在主级别执行合并,当需要有选择地应用时,还原不希望合并的更改,然后提交。

    我们编写了一个SVN钩子/触发器,它简单地拒绝对非主干上的SVN:properties的提交。我们从未回头看。

    这不是破坏了现有的合并信息,还是合并信息在那里是多余的?在我们的例子中,合并信息是多余的。但你是对的,它将破坏你所做的ant部分合并信息。更新答案以提及此问题,并描述问题,以及问题解决的时间。即使没有对子文件夹进行任何合并,我也会获得此属性。对于被否决的人,请提供原因?如果您只想在主级别上获得合并信息,则不在子级别上进行合并是至关重要的。我没有否决您的意见,但是,尽管您所说的是正确的,但问题是副本也生成了这些条目。这已在1.5.5中修复(*不要为wc移动或复制创建合并信息(r34184,-585))您可以共享钩子脚本吗?@WinstonSmith-我不再在同一家公司工作,因此我没有访问钩子的权限。如果这对你来说真的很重要,我可以试着四处询问,但是实现起来应该很简单(如果不是,就在这里问一个如何实现的问题)。