2011-10-03 88 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(如果您不想在有人請求它之前主動導出修訂版)。