我正在与仍在运行版本1.4的第三方Subversion存储库进行交互,并且让它们升级的可能性接近于零。所以,当然,我对这个存储库的工作是我曾经做过的最重要的合并工作,并且我没有任何mergeinfo可以使用。
是否有一个好的工作流程,任何人都可以推荐用于跟踪1.4存储库中的分支和合并?提交消息和/或属性的东西?还有别的吗?
答案 0 :(得分:0)
Subversion 1.4没有原生的合并跟踪。由于Subversion具有本机API,因此很可能某些第三方客户端具有内置的合并跟踪器。
1.5之前的版本,您可以通过添加合并信息作为提交消息的一部分来跟踪合并。您还试图避免从项目的根目录中进行挑选和合并。否则,事情开始变得相当复杂。
我会使用标签来标记我的合并点。例如,我会有一个标记5.1->trunk
,标记我从5.1分支到主干的最后一个合并点。寻找标签而不是通过SVN日志寻找合并评论要容易得多。
我猜你也可以使用svn:merge-info
属性,因为它没有在你的Subversion版本中使用。如果将其格式化为标准的svn:mergeinfo属性格式,可能会非常有用。也许有一天,他们会升级,你的“svn:mergeinfo”属性可能对你有所帮助。
然后,这可能是您不应该使用svn:mergeinfo属性的完美原因。弄乱它的格式,他们升级后的Subversion 1.5版本也会引发一些错误。在升级服务器(如果它已升级)之前,最好使用local:mergeinfo
之类的东西。
答案 1 :(得分:0)
David是对的,Subversion没有内置1.4的合并跟踪支持。但是,有svnmerge脚本,当前的Subversion合并跟踪功能已建模。一些项目,比如Python,成功地使用它来维护长期和短期分支。
根据项目的不同,使用bzr-svn,git-svn或hg-subversion可能会让您更接近您所寻找的内容。 IMO,bzr-svn工作得相当好,支持分支的真正合并(另一个需要你使用rebase工作流)。我在几个项目上成功使用过它,但有一些警告。例如,如果您的项目使用外部,那么使用这些工具的故事就不那么吸引人,因为它们都不支持外部。