2009-08-19 101 views
3

使用SVN,我有以下设置:保持同步分支机构,Git的

/tags/ 
/trunk/ 
/branches/ 
/branches/my_feature 
/branches/my_other_feature 

我希望将所有分支机构与主线主干同步,所以我定期运行为主干分支的SVN合并。

但是,我也希望保持所有分支互相同步,以避免冲突,因为任何给定分支的生命周期可能是几个月或更长时间。如果我有十几个分支,我会与SVN产生一个令人讨厌的网格,这将是不切实际的。

我的问题是,将使用Git而不是SVN帮助保持分支与另一个和中继同步?

+0

不知道这是否会有所作为,但项目的问题 - 你是否与其他许多人一起工作,只有少数人还是独立项目(暂时)? – 2009-08-19 19:30:17

+0

约半打其他开发者。 – 2009-08-20 16:43:17

回答

2

是的,大部分。所有三种现代DVCS(Git,Mercurial和Bazaar)都可以告诉你上次合并的时间,并且不会尝试重新合并已经合并的变更集。

如果你正在做一些真的棘手的东西,你可能会遇到一些奇怪的边缘情况,但即使你这样做会比使用SVN更好英里

6

它可以帮助您通过重新绑定使两个分支与主干同步。

当使用分支my_feature,执行:

git rebase master 

而这将带来主(主干)分支的更改my_feature。

关于保持my_feature和my_other_feature同步,如果一个是另一个的后代,则其原理相同。如果my_feature不是my_other_feature的后代,反之亦然,我不知道答案。

0

请注意,您应该使用Git 完全而不是SVN来获得所需的功能。如果你仅仅使用git作为前端到SVN(vai git svn),这可能会导致SVN用户看起来不正确。