2011-10-03 63 views
0

我正在为一个包含纯粹静态文件的项目设置一个QA环境。我希望QA能够测试我们标记为“准备测试”的特定版本。服务特定的git分支

我的想法是,我希望能够从QA的网站上投放任何的Git分支,可能通过类似的URI:

381dc1a.qa.somesite.com其中381dc1a引用git的UID。

我知道这样做的唯一方法是通过git show代理所有文件,考虑到QA网站上非常非常轻的负载,这并不是一个问题,但我想知道是否有人有更好的主意。

我想避免的是有200个不同的目录,每个目录都有自己的结帐。

回答

0

我建议设置一个post-receive挂钩,使用git archive将每个需要的修订版本归档到磁盘上的目录中,然后使用普通的网络服务器来提供这些文件。

对于非压缩的目录:

git archive SOMEREF | tar -xC /path/to/folder/revision 

对于压缩包:

git archive SOMEREF > /path/to/folder/revision.tar 

对于zip文件:

git archive --format=zip SOMEREF > /path/to/folder/revision.zip 

既然你说你不想一一堆目录,虽然...

您的另一种选择是编写一个小应用程序,该应用程序根据需要运行git archive(如果您不想在有人请求它之前主动导出修订版)。