Version control 关于网站开发版本控制设置的建议

Version control 关于网站开发版本控制设置的建议,version-control,Version Control,我们决定开始对我与另外两个人一起维护/开发的网站使用版本控制。我们目前使用的流程如下:网站托管在专用服务器上。我们的开发工作也在这台服务器上完成,但是在live网站子文件夹中的站点副本上完成。当新功能的实现完成后,我们将更改的文件从此子文件夹复制到live网站。您可以想象,以这种方式部署一个新功能相当麻烦,而且它也使得同时使用多个人进行开发非常困难 为了改进我们的开发过程,我们决定开始使用版本控制。我对版本控制系统(Subversion和Mercurial)的使用有一些基本的了解,并且对集中式和

我们决定开始对我与另外两个人一起维护/开发的网站使用版本控制。我们目前使用的流程如下:网站托管在专用服务器上。我们的开发工作也在这台服务器上完成,但是在live网站子文件夹中的站点副本上完成。当新功能的实现完成后,我们将更改的文件从此子文件夹复制到live网站。您可以想象,以这种方式部署一个新功能相当麻烦,而且它也使得同时使用多个人进行开发非常困难

为了改进我们的开发过程,我们决定开始使用版本控制。我对版本控制系统(Subversion和Mercurial)的使用有一些基本的了解,并且对集中式和分布式版本控制系统之间的差异也有一些基本的了解。然而,这可能还不足以决定满足我们需求的最佳设置

我向我们的主机提供商寻求帮助。他们有设置Subversion的经验,但没有Mercurial/Git的经验。因此,他们可以为我们设置Subversion,但当我们决定开始使用Mercurial/Git时,我们必须自己完成这项工作。但在我们做出这个决定之前,我想了解一些关于什么是满足我们需求的最佳选择的建议,我将在下面陈述。如果Mercurial/Git显然更适合我们的需求,我不介意花一些时间研究如何正确设置一个解决方案,但如果Subversion解决方案足以满足我们的需求,我有更好的方法来花费时间:)

我们的主要要求是:

  • 轻松将新功能部署到live网站

  • 即使在将其他功能部署到live网站之后,也能够恢复live网站中的重大更改(基于用户反馈)。我知道在这方面总是有可能发生冲突,但哪种解决方案最适合这种情况

在我错过的两种解决方案中选择一种,可能还有其他明显的优点/缺点。

我认为任何版本控制都会给您带来极大的帮助。哪一个话题是有争议的(接近宗教!),你会得到每一个的正反两面

这是我的照片。我非常熟悉subversion,对git也有点熟悉。虽然git是新的、很酷的,并且有一些可以说是很棒的特性,但我发现在日常工作环境中使用subversion要容易得多,而且我还没有找到任何人能够令人信服地证明为什么拥有存储库的本地版本副本比使用subversion优越得多。我确实喜欢使用github与开源项目进行协作,但出于某种原因,它似乎是一个更自然的环境


结论?事实上,这可能没什么大不了的,选择一个你觉得足够舒服的,你会实际使用它(我觉得这是subversion)。

那么,从live网站上恢复一大组更改如何,这些更改之后已经有了新的功能?据我所知,分布式版本控制系统更适合这种情况,但我不知道这是否属实,如果属实,差异有多大。我不喜欢在恢复过程中处理大量冲突的想法,它应该尽可能简单。git/hg可能做得更好,因为dvcs的模型意味着由于提交流的非线性性质,需要更好的冲突处理。我似乎记得需要用subversion做这种事情,这有点像皮塔,但那时我对subversion还很陌生,现在可能可以找到更好的方法。您应该检查git/hg命令,看看这是否可以在一个步骤中完成。我怀疑您最终会遇到更少的冲突,但它可能更容易完成(步骤更少,更不容易出错)。