抱歉,如果这不是一个有效的问题(我希望我是对的)。
我正在使用SVN的项目由两个"分支"组成。主干是完成大部分开发的地方,而"发布"分支是发布最终版本的地方。
这个想法是,当我在主干上做更改并测试它们时,这些更改只有在我确信大多数/所有错误都被发现时才合并到分支并发布。但是,分支永远不会与主干完全相同。这是因为它使用不同的连接字符串,不同的图标等。
因此,每次我将新的版本从主干合并到分支时,svn:mergeinfo属性都会变得越来越大。现在它的值是"/trunk:2216-2225、2231-2234、2239、2246-2247、2253、2255、2259-2268、2271"。随着项目的继续,合并的修订号将不断添加到其中。
注意:这是唯一存在的svn:merginfo属性,并且位于分支的根目录。
所以我的问题是,我是否需要这个(最终巨大的)值留在那里,或者如果我可以直接删除它。
编辑以澄清:分支将永远不会合并回主干。只有干线到分支的合并才会被执行。分支存在的原因是最新发布的版本总是可用的,但是标记不能完成这项工作,因为主干需要进行必要的更改。
我看到过类似的问题,但它们似乎都是关于更新的分支与最近合并时的主干相同的项目,或者存在几个svn:merginfo属性,所以我不确定相同的答案适用于这里。
谢谢。
存在mergeinfo以便SVN可以记住已经合并了哪些版本。因此,如果您合并trunk -> branch而没有明确指定要合并的任何版本,它将合并所有尚未合并的版本。
如果你总是显式地"挑选"要合并的版本,那么这对你来说没有任何用处,你可以删除合并信息(尽管我通常通过将其更改为"1-2271"来手动删除它,这样可以保留合并信息,以防你需要它,同时减少它需要做的解析。
一般来说,你最好把它放在身边,有它也无妨。
PS在SVN术语中,'tag'是一个分支,只是命名不同以表明其目的。对于将合并到主干的开发来说,分支是短暂的。标签是长期存在的,但在幕后,它们是一样的。