4

我正在构建一个基于 Web2Py 的 Web 应用程序,并且我的大部分开发工作都在远程 EC2 开发服务器上进行。我想对整个系统进行版本控制,包括所有 python 模块、网页和 Apache 配置文件。这些文件显然分散在我的 Linux 机器上,但我希望能够使用单个命令来签出/提交。我是命令行 SVN 的新手——有没有办法使用某种带有符号链接的虚拟目录来做到这一点?

欢迎任何想法。谢谢。

4

5 回答 5

3

如果您已经开始开发,最简单的方法是组织一个 SVN 树,然后符号链接模块和 httpd.conf。你也可以使用virtualenv并且只检查 virtualenv 配置。

于 2010-06-30T23:52:13.283 回答
3

对于单个开发人员,Git ( book ) 更适合方便。您可以非常轻松地在本地“提交”,并将更改推送到远程服务器,这可能是您的 EC2 实例,它只需要一个 SSH 连接即可工作。但我可能会选择像GitHub这样的托管解决方案或任何其他具有 SSH 并能够安装 Git 的托管解决方案。我将 GitHub 用于我的公共项目,将DreamHost用于我的“私人”项目。

您可以将所有文件放在一个目录结构中,然后使用一些自动化过程来部署它们。对于 Python,我会建议一些 Python 标准,比如distutils甚至是easy_install。对于更复杂的环境,您需要考虑类似Chef的东西,如果您开始向外扩展至多个 EC2 实例,这将非常重要。即使没有多台服务器,也需要像 Chef 这样的可重复自动化部署的工具,这也是高效开发人员所做的事情。

只是不要试图编写一个“快速而肮脏”的 shell 脚本来进行部署,它们很脆弱并且非常难以维护。如果您不喜欢 Chef,请研究替代方案并花时间学习一个。所花费的时间将被弥补。

于 2010-06-30T23:53:15.953 回答
1

像模糊棒棒糖一样,我也强烈建议使用 git。特别是因为它的污染足迹低。SVN.svn在你的 repo 的每个子文件夹中留下文件夹,如果你的自动化脚本复制/粘贴它们,这可能会变得很昂贵。

我建议你有一个中央 git repo 和一个发布脚本来检查一个版本,然后将文件复制到它们的位置。

或者

您可以将您的存储库分段并使用符号链接来连接您的网站,但是将您的生产源指向存储库可能是不好的做法,我仍然会利用上面列出的复制脚本方法。

于 2010-07-01T00:01:10.633 回答
1

我个人使用 git 来管理网站和配置文件。

我不确定我是否会将 apache 配置和网站混合在同一个 repo 中,但如果我采用这种方法,我会在单独的分支中进行并适当地设置遥控器。

根据您运行的操作系统,etckeeper 很不错,并且可以很好地与基于 debian/apt 的系统集成。

于 2010-07-01T00:09:24.127 回答
0

有没有想过将 VM 幻像到 S3?这几乎就像“可怜的版本控制”的云版本。

我已经完成了符号链接,虽然它是一个很好的解决方案,但起初并不是最容易使用的。

于 2010-06-30T23:59:06.190 回答