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