在过去的一年里,我已经沉迷于颠覆.我是唯一的开发人员,我也参与了一些自己的项目.使用SVN,它可以很容易地管理所有内容 - 并且因为它通过HTTPS托管在在线服务器上,所以我可以从任何地方访问我的代码.它也非常适合将代码部署到我们的生产/开发服务器.
我的观点是它完成了我需要它做的所有事情并且从未让我失望过.
有更好的吗?我是否错过了其他可以用来让我的生活更轻松的产品的功能?我一直都在使用最好的软件,并且没有问题迁移到新技术.
我听说过GIT并做过一些研究.我打算尝试一下,但是当我搞砸了它时,还有另外一个被认为是"行业标准"的其他源控制系统,他们做的事情比SVN更好吗?
Git,Mercurial和Bazaar是分布式控制系统,其运行的理念是您并不总是连接到网络,并且不需要存储库的一个中央版本.
如果你正在进行大量的独立工作,有时也称为"飞机模式",就像你在飞机上而无法承诺一样,请看看Bazaar.我发现比Git或Mercurial更容易适应.
如果你一直在做与网络相关的工作,并且你是唯一的开发人员,那么你可能会坚持使用Subversion.
另外,请考虑在Subversion中保留主目录的价值.
水银
我主要使用CVS和SVN,快乐和内容,然后我开始研究分布式源代码控制,因为有很多关于DSVC的大惊小怪.在使用DSVC之后,我注意到我的开发风格发生了变化,我变得更加流畅和适应性强.允许我无痛地合并回主干或实验分支.
Mercurial可以从单人乐队扩展到巨大的即OpenJDK,没有太多头痛.
Mercurial很快,可能没有GIT那么快,但它仍然非常快
Mercurial Queues是管理补丁的绝佳方式.以润滑的照明速度.
它可以在不同的操作系统上运行,兼容性很好,因为它基于python.
学习曲线低于GIT,经过一些文档阅读后你得到了基本的东西(http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/)
hg允许(许多DSVC)您使用hg-svn和hgsubversion与公司SVN源控件进行交互,这是一个带有允许和检出的美妙扩展,但还没有推送或提交功能
您还可以通过SSH设置HTTP服务器运行推送和拉取
也有一个非常巧妙的选择,与你的编码好友一起,只需启动HTTP服务器在localhost上运行它,你的伙伴可以在你做代码冲刺时推拉.
您还可以通过此HTTP页面查看项目的当前状态.
最后看这里简单命令的简要说明(http://edong.net/2008v1/docs/dongwoo-Hg-PDF.pdf)
混帐
尝试过,它对svn的支持比mercurial更好.但是因为hgsubversion正在上升并成为git svn的竞争对手.
Git很酷,但你需要不断维护你的源代码depo并重新打包它.由于它包含许多bash脚本,因此无法在Windows上运行.但它速度极快,有许多功能供您使用.实际上,功能的数量可能是一个缺点.
BZR
从未尝试过
自从我开始使用HG以来,我一直回头看
我个人会留下Subversion.从专业角度来看,我看到更多的工作要求(并知道)Subversion与GIT的比较.还有很多围绕Subversion构建的开源和免费工具,更不用说Subversion庞大的社区了.
源代码控制并不总是关于最新和最好的,但更多的是关于什么是尝试和真实.
改变的最好理由是必要性.但是,听起来似乎没有必要改变.你是一个"军队之一",所以大多数强大的功能都不适用于你的情况.是的,人们会在这方面与我争论,但他们会推动这个功能或那个你真正不需要的功能.时间就是一切,如果将来你的需求发生变化,那就改变你的解决方案.
问题空间总会有更好或不同的解决方案,在这种情况下是源代码控制,但是您应该平衡个人开发,流程/实践改进和交付工作产品.您可以了解有关源代码控制的不同解决方案/应用程序的更多信息,以扩展您的知识,以便及时了解切换解决方案但坚持现在有效的方法.
以下是从Subversion(来自MarkMcB)切换到git的3个理由:
无限,简单,非基于文件系统的本地分支机构
藏匿临时工作
公共承诺之前的协作
(阅读链接的文章以获得完整的解释,并直接比较如何在git和Subversion中完成三件事.)
我个人也会留下Subversion, 有什么更好的吗?
Subversion是一个很棒的版本控制系统,你很满意它,所以如果你看得更远,我可以建议你获得一些关于持续集成的信息,有很多工具可以帮助你进行自动构建,让你的构建自我测试,检查每个提交的完整性,以及更多......