1

我正在使用 CodeIgniter PHP 框架开发 Web 应用程序。我正在使用的服务器不支持任何类型的源代码控制(即 Subversion),除非您使用更高的价格层。

我仍然想将代码置于某种源代码控制之下。执行以下操作是否有意义:

  1. 在我的本地机器上安装 git 或 SVN 并在那里开发
  2. 将更改从我的本地机器复制到服务器上的开发目录(使用 FileZilla、WinSCP 等)并测试
  3. 将更改从开发目录复制到服务器上的生产目录

这听起来合理吗?有更好的选择吗?谢谢!

4

3 回答 3

2

如果您在本地使用 svn,这有点危险,因为您还需要保护您的计算机 - 我认为最好的方法是使用提供完全支持的 svn/git 的商业网站 - 比如http://www.beanstalkapp.com /http://www.github.com

于 2013-04-21T22:01:07.413 回答
1

您可以在本地计算机(SVN、Git 等)上使用源代码控制,并使用Capistrano等开源工具通过 SSH 将代码从本地源代码控制存储库部署到服务器。或者,如果您仅限于 FTP,这篇博文有一个潜在的解决方案。

使用 Capistrano 之类的工具而不是通过 FileZilla 或 WinSCP 直接将本地计算机上的文件镜像到服务器的一个优点是 Capistrano 将对您部署的文件进行版本控制,这样,如果您最终破坏了某些东西并需要快速回滚到以前部署的版本,它可以像更改符号链接到以前的部署目录一样简单。

于 2013-04-21T21:59:15.190 回答
1

这听起来合理吗?

部分,在第 1 页。但即使在这种情况下,我也会建议将您的存储库也放在一些存储库托管(BitBucket、GitHub、Assembla)上

对于第 2-3 页:您的部署必须是自动且非交互式的,因此 - 您必须选择其他工具(用于选择 SCM 的提交后挂钩)

不知何故,2-3 的更好替代方案可能是:

  • 使用 2 个不同的分支(DEVEL 和 PROD)作为 DEVEL 和 PROD 目录的来源
  • 提交后挂钩,仅将提交的修订文件中的更改上传到相应的目录(用于 FTP 的 NCFTP,用于 ssh 的场景的 SCP)
  • 主要开发发生在 DEVEL 分支
  • PROD只有来自 DEVEL 的合并集

工作流与 SCM 无关,并且可扩展到任何合理数量的分支和开发人员

于 2013-04-22T11:39:39.467 回答