我们目前是4人团队。我们都在做同一个项目。每天早上,我们必须花至少30分钟来整合我们的项目,因为我们前一天做了所有的更改。
为了避免所有这些花费的时间,我们需要一个开源的工具,它将为我们提供SCM和存储库(在云上);类似于Accurev.
我对这个工具的期望如下:
- 版本控制
- 签入和签出代码。
- 锁定签出的代码(这样只有一个人可以锁定代码)
还有什么我可以提供的吗?
考虑到你想要"锁定签出的代码(这样只有一个人锁定代码)",这就排除了任何分布式VCS,如Git或Mercurial。
(然而,合并模型有它的优点)
你仍然可以使用[SVN(一个集中式VCS),它允许锁定单个文件。
您甚至可以受益于免费的在线私有 repos。
现代的风格是不使用锁,而是使用合并与DVCS。
你应该看看:
- Git
- 的 Subversion
- 集市(bzr)
- 也许宙斯盾
和我错过的其他六个竞争者。前三家拥有最多的追随者;使用它们可能不会有太大的错误(尽管Subversion不是DVCS)。
也许您可以从架构级别来看待这个问题,并更改代码布局以采用更分层的方法,然后将工作划分到团队中,这样您就可以减少彼此之间的冲突。
或者利用分支和合并更多的功能来分离你的开发。
您现有的代码管理仍然适用,但希望您最终会减少冲突。
我们使用基于Mercurial的优秀DVCS主机Kilnhttp://www.fogcreek.com/kiln/
我们还使用来自同一提供商的FogBugz来处理票据,这让我们可以将开发人员票据和SCM集成在一起。这种组合真是太棒了。Kiln也允许代码审查,但选项仍然有限,它有点像半功能。
窑权限,你可以有效地创建一个线性管道或一个足够接近它…给一些用户只读权限,例如…同时也给予开发者使用DVCS的自由……坦率地说,这要好得多。
毫无疑问,Git是一个比Mercurial更好的SCM,但你需要花3年的时间来日常使用它才能意识到两者的区别,而Mercurial本身就是一个很棒的工具,而Kiln是一个很棒的产品……我100%支持Kiln/fogbuzz组合是我用过的最好的SCM SaaS。
根据您的要求,我认为SVN是最好的选择。