版本控制; 选择,选择,选择!

bcm*_*cfc 1 svn git version-control mercurial

我们的设置如下:

我们有一个运行Ubuntu的本地开发服务器,其设置与我们的实时主机相似.每个开发人员都在Windows计算机上工作,并从本地开发服务器访问这些文件.

有问题的项目是许多用PHP构建的网站.由于没有充分的理由不使用版本控制,我们打算在服务器上运行SVN,Git,Mercurial或其他东西.

问题是,我们如何做到这一点,但是从Windows机器提交更改,我们如何检查站点(项目)的完成区域或整个站点上传到实时(远程)服务器?

Mr *_*ooz 10

为何使用SVN:

  • 成熟的代码库
  • Windows上成熟的GUI工具(如果您的团队喜欢它们):TortoiseSVN
  • 较浅的学习曲线(特别是如果你已经使用过CVS)
  • 稀疏结账

为什么要使用git(也可能适用于mercurial):

  • 更容易分支和合并
  • 开发人员可以与自己的本地存储库进行交互,而无需联系"主"存储库
  • 可以使用上游SVN或CVS存储库(但如果您有选择,如果开发人员使用git,我仍然会使用git upstream)
  • "足够好"的Windows GUI工具(TortoiseGIT实际上可能和TortoiseSVN一样好......在一两年内没有看过它).
  • 更强大的命令

处理用例的一种方法是: - 每个开发人员都有自己的私有git存储库 - 开发人员在测试并准备好生产使用时,会将代码更改推送到开发服务器的存储库. - 实时服务器有一个结账,可以定期更新,手动更新,或者通过开发服务器存储库上的提交挂钩更新(提交时,"ssh live.server.com(cd/my/dir; git pull origin)头)").

此过程也可以适用于SVN,但私有存储库只会成为检出.


Cha*_*dNC 5

颠覆会很有效.我们在Linux机器上运行Subversion,我们所有的开发工作都在Windows机器上完成.90%的时间我们通过IDE检查项目(通常是Eclipse中的subclipse),另外10%的时间我们使用TortoiseSVN,其中任何一个都可以正常工作.

您可以通过IDE或Tortoise提交对存储库的更改.您可以将持续集成服务器与存储库绑定,以便在将代码更改提交到存储库时自动构建项目.


小智 5

我们正在使用Subversion with TortoiseSVN.它运作良好.我们最后一次看Git(六个月前?),Windows工具还没有.Perforce(http://www.perforce.com)是我用过的最好的商业解决方案.

确保您了解分布式修订控制(Git)与Subversion和其他传统版本控制系统的区别.他们不一样.

GitSvnComparison Git For Designers

如果您正在使用PHP站点,则可以创建repo的tar文件并将其发送到测试服务器进行测试.一旦您确认该网站正常运行,您就可以将该tar文件推送到实际网站.