版本控制和在任何地方安装文件的复杂应用

时间:2010-09-27 15:36:10

标签: version-control packages installation-package

我必须处理Web应用程序。版本控件的目录结构如下:

appname/conf
appname/www
appname/etc
appname/keys
appname/lib
...

但是,要使应用程序正常工作,它目前必须存在于系统目录中:

/etc/httpd/conf.d
/var/www/html
/etc/appname
/etc/pki/tls/
/usr/lib/perl5/...
...

有一个RPM来获取VC代码并创建一个将代码放入生产地点的包(即/ var / www / html和其他)。没有安装说明,我应该使用RPM和即兴(我不知道)。

在这样的情况下,每个人如何编辑应用程序,维护版本控制功能(git diff等...),以及如何快速更改应用程序?该应用程序是用Perl编写的,因此没有预期的编译步骤。

我想到的方法是:

  • 在VC'ed目录上工作(代码不会立即执行,你必须有一些安装步骤)
  • 处理最终位置的代码(因此代码编辑会立即生效,但您必须手动将代码移回VC'ed dirs)
  • 编写一个文件系统观察程序,监视VC'ed目录的更改,并将更改的文件安装到最终位置(可能是这样的吗?)
  • 其他一些显而易见的方法,我希望有人可以告诉我: - )

每个人如何处理这样的案件?

2 个答案:

答案 0 :(得分:0)

我会在某种测试服务器上处理代码,但代码位于正确的位置。然后版本控制需要能够从各自的位置获取必要的文件,但是在准备好之前你不会部署到“最终”位置(所以这基本上是一个“安装”步骤,就像你说的那样)。

由于更改事物可能不是您的选择,您是否可以从系统目录符号链接到VC目录?

答案 1 :(得分:0)

之间有区别:

  • 版本控制:您管理源并构建交付的地方(在您的情况下可以是系统目录中需要部署的所有文件的tar.gz)
  • 发布管理:您在其运行环境中进行交付并复制/部署它。

某种持续集成流程(基于 Hudson 等调度程序)可以帮助您在新提交后立即监控VC并构建/部署。

相关问题