1

我必须在 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 的目录上工作(并且代码不会立即执行,你必须有一些安装步骤)
  • 在最终位置处理代码(因此代码编辑立即生效,但您必须手动将代码移回 VC'ed 目录)
  • 编写一个文件系统监视程序,监视对 VC 目录的更改,并将更改的文件安装到它们的最终位置(可能存在这样的东西?)
  • 我忘记了其他一些明显的方法,我希望有人能告诉我:-)

大家是怎么处理这种情况的呢?

4

2 回答 2

0

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

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

于 2010-09-27T15:51:20.343 回答
0

两者之间有区别:

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

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

于 2010-09-27T15:53:38.077 回答