所以我的团队刚刚开始在我们的项目中使用分支,并且我们遇到了关于Eclipse / CVS处理分支和项目的方式的组织问题。我的问题是:
这是一个简化的场景:
两个项目:ProjA
和ProjB
,以及两个分支:Dev
和Release
。
因此,假设两个项目在我的工作区中与Release
同步,我决定添加一个新功能。我只预计此功能会触及ProjA
,所以我天真地只将该项目分支到Dev
。所以现在我的工作区不一致了。
经过几个小时的工作后,我意识到我需要对ProjB
进行一些小改动,因此我会弹出有问题的文件进行更改,忘记将其同步到Dev
稍后,在我的更改完成后,我提交了它们。现在,我刚刚将第一个项目中的更改提交到Dev
,将第二个项目中的更改提交到Release
。哇哇,破碎的身材!
这个问题的解决方案是:
现在,在现实世界中,我们有大约30个项目,以及许多开发功能分支的开发人员,他们中的许多人似乎注定要使用分支来尽可能地破坏构建。我想删除其中的一些方法。
答案 0 :(得分:1)
更改vcs是一个选项吗?最近我的工作从cvs过渡到mercurial,我认为我不能回去。我认为任何mercurial,git或bzr都可以解决这些问题。
答案 1 :(得分:1)
经过多次试验和研究后,似乎由于在CVS中处理分支的方式(即基于每个文件),我所寻找的场景是不可能的(至少没有专门为此目的建造的工具)。
我们最终只是采用了一种软解决方案:通过将Eclipse中CVS标签装饰的颜色和格式更改为更引人注目和孤立的东西,可以更方便地随意识别项目(或文件)与哪个分支同步
Eclipse设置位于Team > CVS > Label Decorations > Text Decorations
和General > Appearance > Colors and Fonts > Basic > Decoration Color
。
当然,在此过程中实施一些最佳实践。
答案 2 :(得分:0)
您可以采取两种方法。
在创建分支后命名Eclipse项目。因此,如果您正在处理与故障编号123处理ProjA的功能分支,则可以将Eclipse项目检出为ProjA_123(如果您愿意,还可以检查ProjA_Dev)。您可以调用发布分支ProjA_Release。
或者,您可以为每个分支维护单独的Eclipse工作区。
只要您有一些系统来确定您的工作结账来自哪个分支,您应该没问题。