我理解使用版本控制的重要性,我正在努力学习,因此我可以为公司的Web开发项目设置SVN。现在我们都是从一个单独的开发副本工作,它充其量是凌乱的。
我们的许多用户远程工作,开发服务器的互联网连接速度很慢。根据我的阅读,用户在本地运行自己的SVN存储库以跟踪自己的更改,然后将其与服务器存储库同步是一种很好的做法。实现这一目标的最佳方法是什么?
否则,每个用户是否更好地拥有自己的服务器存储库工作副本并且只能从中工作?
由于服务器连接速度较慢,每个开发人员(此时7人团队)是否更好地在开发服务器上或本地机器上拥有自己的工作副本?
我也在Windows上看GIT,但SVN非常成熟,我们可以利用Visual Studio的插件。
答案 0 :(得分:2)
当然GIT完全符合您的要求。 它很快,你就像那样与GIT合并。
虽然对我来说,如果你坚持使用SVN:
考虑使用分支机构。 然后主干线存储库将保持清洁。 只有问题就是合并。 但是IMHO比在本地跟踪它更好(除非你使用git)。
在一天结束时仅检入重要的工作变更。
计划您的工作,安排任务,将任务分配给适当的人, 那么合并时间越短,开发时间越短。
答案 1 :(得分:2)
... git福音传教士报到职! ;)
如sbi所述,这听起来像是一个最适合分布式VCS的环境(如git)。你可能已经注意到 然而,Windows上的git还不是很成熟。它快速到达那里。在你的情况下,知道与Visual Studio的集成还不是很好,这可能会很有趣。有GitExtensions与VS集成,但它并不那么精彩。或者,有TortoiseGit。
还有其他可能有趣的分布式VCS,如Mercurial或Bazaar,可能已经成熟了一些。虽然不确定。多年没使用它们了。
我不愿意将SVN作为分布式 VCS。它不是在考虑用例的情况下开发的,因此实现起来很麻烦。即使VS-Integration很好。合并将变得麻烦。
另一方面,VS-Integration对恕我直言并不重要。没有那么好的集成比没有版本控制更好。我还没有看到完美地完成所有的工具。所以我建议调查真正分布式的VCS。这个概念起初可能令人恐惧/困惑,但值得一试。
编辑:我说git在Windows上不是很成熟。这并不是那么糟糕。它 并不像在Linux上那样成熟,但它非常实用!
答案 2 :(得分:2)
我使用SVN,我也会使用SVK来提供对存储库的断开访问。但是在你描述的情况下,我也会提供git或mercurial作为更好的选择。两者都支持将补丁集发送到远程端以集成到“主”树中,如果这是您想要的。
答案 3 :(得分:1)
由于您的团队很小(7人),SVN非常好,并且拥有丰富的(Windows)工具,这些工具成熟且易于使用。
我们使用VisualSVN(http://www.visualsvn.com/)作为我们的服务器。它很容易设置它,它是免费的。同一家公司提供的客户支持与Visual Studio的集成,并且对您的小团队来说会有很小的成本。
由于Git是如此时髦和流行,我期待很多低票,但它仍然主要是一个Linux工具。 TortoiseGit还不能很好地运行,事实上它是由OS开发人员制作的VCS - 它与使用MS开发的解决方案相同。
Mercurial的TotoiseHg在Windows上仍然比其Git等效(从经验上讲)更好。
DVCS解决方案将为您的团队增加额外的培训时间,因为您需要开发一个每个人都应遵循的流程。也没有真正可行的Visual Studio迭代。
在基于服务器的VCS(如SVN)与DVCS解决方案之间进行选择时,重要的是要注意(特别是对于远程用户),如果他们使用DVCS解决方案,您将依赖它们来备份本地更改(至少直到这些变化被推向上游)。此外,在将这些更改推送到上游之前,您将无法查看这些更改。
最后,在处理慢速链接时,我不确定任何(D)VCS解决方案是否具有相互优势。
答案 4 :(得分:0)
你的第二段对于git人群来说就像一个垒球场。 Git绝对是我建议的选择。老实说,任何分布式版本控制系统(例如Mercurial)也可以,但是git只是我(以及许多其他开发人员)在工具箱中的锤子。
您不需要经历为每个开发人员管理单独的subversion存储库的麻烦; DRCS正确地启用了该功能。每个开发人员都克隆主存储库,在本地计算机上执行工作和提交/分支/等。然后,当他们准备推动其他人查看代码时,他们会将所有修订/分支推送回内部存储库。
老实说,我只使用git几个月,但我现在永远不会再回到颠覆。您可以从Pro Git Book -- Free viewing online, but please buy it for reference if you find it helpful!
获取大量有用的信息答案 5 :(得分:0)