我正在帮助为新程序设置SCM,我们目前正在决定使用VCS。
此时的主要竞争者是SVN,ClearCase,SVN + DVCS以及DVCS。
目前,该团队倾向于SVN或SVN + DVCS。我们希望避免ClearCase的费用和管理成本,但需要它提供的工作流程和版本控制选项。我提出了使用DVCS的选项,正在考虑这个想法。
对于DVCS,我们正在考虑Mercurial,Bazaar和Git。团队对SVN感到满意,但不认为它会提供所需的多功能性,这就是我们在SVN选项之上查看DVCS的原因。
有没有人有任何建议(例如现有的工具,流程)来进行这样的设置?
担忧包括:
答案 0 :(得分:9)
作为ClearCase的管理员,除非您有复杂的合并工作流程,否则我将排除该工具。
您提到的 workflow 涉及能够轻松分支,修复然后合并,这不应该有利于SVN。
当您习惯使用ClearCase(特别是非UCM ClearCase)时,最大的陷阱是配置规范的“组成”。
如果您选择DVCS(Mercurial,Bazaar - 或Git,因为它works really well on Windows),您会not be able to get the same "inheritance effect" -- (when you are selecting different versions with different successive select rules --:正如答案所述:
在纯粹的中央VCS中,您可以使用您想要的任何规则定义工作区(在ClearCase中,您的“视图”快照或动态)。
这在DVCS中是不实际的(如在“分布式”中):当您使用它创建分支时,您需要使用起点和内容明确定义并轻松复制到其他存储库。
如果您使用的是ClearCase UCM,则意味着识别连贯的文件集,这些文件只能通过 - 例如 - Git submodules来实现。
DVCS的复杂性更高,因为它们不像ClearCase UCM那样记录模块之间的依赖关系(或“文件集”)。
所以,回顾一下:
答案 1 :(得分:3)
Git有什么问题?我现在正在Windows上使用Git。它工作得很好。 如果您想要一些资源管理器集成,Git Extensions非常有用,如果这是您的问题。
答案 2 :(得分:1)
我没有使用clearcase的经验,但希望以下内容对我们有所帮助。你的问题遗漏了我在决定之前会考虑的几条信息。首先你会得到多少源代码?虽然SVN适用于中型到大型项目,对于像Linux内核这样真正庞大的项目,Git会提供更好的性能。你使用什么IDE?虽然Mercurial,Git和SVN都有视觉工作室和eclipse插件,但质量非常好。根据维基百科关于Redmine的文章,您正在考虑的任何SCM系统都将集成。以下博客可能对您有所帮助,因为它书面买了一个以SCM系统为生的人。 http://www.ericsink.com/
答案 3 :(得分:0)
如果您可以放弃需要在Windows上运行的要求,那么我建议您查看Aegis。