2011-06-09 66 views
1

我是svn的新手。我们从收获中迁移到svn。 我们一次处理3个不同的版本。所以我们正在考虑从树干上复制3个分支,然后在它们上面进行平行工作。主干上没有发展。 树干将持有任何生产。多发布分支问题

假设我们有REL120,REL121,REL122分支。 REL121由REL120创建,REL122由REL121创建。 每当有承诺REL120,我们合并在REL121和REL122 每当有REL121提交这一变化,我们合并在REL122

,当我们的船REL120到生产,我们合并树干REL120

这是分支的好方法吗?或者在这方面可以改进一些东西。请分享你的想法。

Vadiraj

回答

0

对于我们来说,我们会一直做一个分支或多个分支从主干线。这样,当我们完成分支时,我们会将分支合并回主干。这个练习是在svn文档中指定的,如果你是svn的新手,你应该阅读it

1

该方法没有问题。
虽然,我会建议您尽量不要频繁地合并代码并将代码合并到树中。例如;

这是你的仓库的逻辑结构

|- trunk 
|- branches 
    |- Release 120 
     |- Release 121 
     |- Release 122 

现在,每当你需要合并的的chanegs发行122,他们应该合并一路主干...首先,到推出121,然后释放120然后躯干(考虑到120 推出从主干分支出来)

理想情况下,合并应该沿树(从子分支到父)而不是相反。

P.S.这三个版本是不相互依赖的,那么就没有必要创建这样一个层次结构。然后从树干单独分支。

+0

感谢您的回答。 REL120和REL122中的变化应该在REL120中出现。但REL121中的更改​​不应出现在REL120中,或者REL122中的更改不应出现在REL121中。首先释放REL120,然后释放REL121,然后释放REL122。可能发生的情况是,REL120,REL121,REL122中的更改可能全部位于不同的模块中,甚至模块可能会发生冲突。但REL121应始终包含对REL120中的模块所做的更改,而不管REL121更改是否在该模块中。那么,你建议我们从树干做出所有分支吗? – vadiraj 2011-06-09 08:14:01

+1

是的,在这种情况下,我会建议你先从干线分出Rel 122,然后再分别从Rel 119和120分出。因为,如果我们从逻辑上看,你在PROD首先推出第120版,但它仍然是儿童分支(在开始时创建)正在开发中。这会造成不稳定。显然,如果版本121意在成为版本120的补丁,那么它应该在120版本生效之后分支出去。或者,相反......你可以从trunk中创建单独的分支,然后根据需要在它们之间进行合并 – Arpit 2011-06-09 08:47:59

+0

这意味着开发不会发生在trunk trunk上?当我们将120运送到生产时,我们应该将它与后备箱合并,这样后备箱就会有生产中的任何东西。根据需要在分支之间进行合并。我对吗? – vadiraj 2011-06-10 04:56:34