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

Svn 版本控制;选择,选择,选择!,svn,git,version-control,mercurial,Svn,Git,Version Control,Mercurial,我们的设置如下: 我们有一个运行Ubuntu的本地开发服务器,其设置与我们的实时主机的设置相一致。 每个开发人员都在Windows计算机上工作,并从本地开发服务器访问文件 所讨论的项目是许多用PHP构建的网站。鉴于此,我们打算在服务器上安装并运行SVN、Git、Mercurial或其他东西 问题是,我们如何做到这一点,但从Windows计算机提交对其的更改,以及如何签出站点(项目)或整个站点的已完成区域,以上载到实时(远程)服务器上?为什么使用SVN: 成熟代码基 Windows上成熟的GUI

我们的设置如下:

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

所讨论的项目是许多用PHP构建的网站。鉴于此,我们打算在服务器上安装并运行SVN、Git、Mercurial或其他东西

问题是,我们如何做到这一点,但从Windows计算机提交对其的更改,以及如何签出站点(项目)或整个站点的已完成区域,以上载到实时(远程)服务器上?

为什么使用SVN:

  • 成熟代码基
  • Windows上成熟的GUI工具(如果您的团队喜欢的话):TortoiseSVN
  • 较浅的学习曲线(特别是如果您已经使用了CVS)
  • 稀疏签出
为什么使用git(可能也适用于mercurial):

  • 更容易的分支和合并
  • 开发人员可以与自己的本地存储库交互,而无需联系“主”存储库
  • 可以使用上游SVN或CVS存储库(但如果您有选择,如果开发人员使用git,我仍然会使用git上游)
  • “足够好”的Windows GUI工具(Ortoisegit现在可能实际上和Ortoisesvn一样好……一两年都没看过了)
  • 更强大的命令
处理用例的一种方法是: -每个开发人员都有自己的私有git存储库 -开发人员在测试代码并准备好用于生产时,将代码更改推送到开发服务器的存储库中。 -live server有一个签出,该签出可以定期更新、手动更新,也可以通过开发服务器存储库上的提交挂钩更新(提交时,“ssh live.server.com(cd/my/dir;git pull origin HEAD)”)

此过程也可以适用于SVN,但私有存储库将变成签出。

为什么使用SVN:

  • 成熟代码基
  • Windows上成熟的GUI工具(如果您的团队喜欢的话):TortoiseSVN
  • 较浅的学习曲线(特别是如果您已经使用了CVS)
  • 稀疏签出
为什么使用git(可能也适用于mercurial):

  • 更容易的分支和合并
  • 开发人员可以与自己的本地存储库交互,而无需联系“主”存储库
  • 可以使用上游SVN或CVS存储库(但如果您有选择,如果开发人员使用git,我仍然会使用git上游)
  • “足够好”的Windows GUI工具(Ortoisegit现在可能实际上和Ortoisesvn一样好……一两年都没看过了)
  • 更强大的命令
处理用例的一种方法是: -每个开发人员都有自己的私有git存储库 -开发人员在测试代码并准备好用于生产时,将代码更改推送到开发服务器的存储库中。 -live server有一个签出,该签出可以定期更新、手动更新,也可以通过开发服务器存储库上的提交挂钩更新(提交时,“ssh live.server.com(cd/my/dir;git pull origin HEAD)”)


此过程也可以适用于SVN,但私有存储库将变成签出。

Windows计算机应该能够使用您选择的客户端(例如,Windows)连接到更改控制服务器,没有问题


要从源存储库进行自动化构建,可以使用某种类型的持续集成(CI)软件。我对这些灯堆产品都不熟悉,但我肯定有很多。而且,如果是针对web的PHP,您实际上不需要构建,只需要某种类型的自动复制:-)

Windows计算机应该能够使用您选择的客户端(例如,Windows)连接到更改控制服务器,没有问题


要从源存储库进行自动化构建,可以使用某种类型的持续集成(CI)软件。我对这些灯堆产品都不熟悉,但我肯定有很多。而且,如果它是用于web的PHP,你并不真正需要构建,而是需要某种自动复制:-)

除非我误解了你的问题


您提到的每个源代码管理提供程序都有一个windows版本,或者在cygwin下工作,因此它们在windows下的工作方式应该与在*nix下的工作方式完全相同-因此,您应该根据您通常使用的相同标准来决定使用哪个源代码管理提供程序。

除非我误解了您的问题


您提到的每个源代码管理提供程序都有windows版本,或在cygwin下工作,因此,在windows下的工作方式应该与在*nix下的工作方式完全相同-因此,您应该根据使用与您通常使用的相同标准的源代码管理提供商来做出决定。

如何设置取决于您选择的源代码管理软件

我会在内部服务器上设置一个中央存储库。这是svn所必需的,如果您使用的是git或hg,那么它为您提供了一个规范的位置来获取更改

开发人员可以将存储库签出/克隆到其本地计算机,并提交/推送更改。我建议使用分支来区分生产代码和开发代码

要部署到web站点,您需要一个从中央存储库签出、更新生产分支或标记,然后将文件复制到live server的流程


具体细节在很大程度上取决于您使用的版本控制系统。

如何设置取决于您选择的源代码控制软件

我会在内部服务器上设置一个中央存储库。这是svn所必需的,如果您使用的是git或hg,那么它为您提供了一个规范的位置来获取更改

开发者可以结帐