2014-05-07 53 views
1

我希望在我的應用程序中有一項功能,允許用戶在不同版本之間進行更改,特別是查看衝刺之間應用程序的差異。用戶只需從下拉列表中選擇一個版本(Sprint A,Sprint B等),頁面就會刷新,顯示當時的應用程序狀態。在單一服務器上單獨部署Git

這本身不應該是太多的問題。我想我們會有一個Git部署框架來檢查服務器上相應的分支。

問題是我想允許,例如,企業中的某人能夠查看Sprint B的應用程序,而開發人員可以演示他爲Sprint C所做的工作時間,沒有一個分支結賬折扣另一個。

每次更改分支以查看版本時,都會影響查看該服務器的每個人。

有沒有辦法允許一個用戶查看服務器上的另一個分支,而不會影響其他人,並且可能不會對該服務器上的文件進行持久更改?

+0

這不是一個編碼的問題,而是一個服務器工程和概念問題。我會推薦在Server Fault上發佈。 – JakeGould

回答

0

我想我們會有一個Git部署框架來檢查服務器上相應的分支。

這是一個很好的方法,但它需要結帳/更新在不同的文件夾中適當分支(和你的web應用需要根據用戶選擇重定向頁)

一個後收到鉤一般爲了用於觸發每個分支流程:例如見「how to process files on a branch in post-receive hook in git

#!/bin/bash 

while read oldrev newrev ref 
do 
    branch=`echo $ref | cut -d/ -f3` 

    if [ "master" == "$branch" ]; then 
    .... 
+0

我不確定我完全明白你在說什麼。你能詳細說明嗎? –

+0

@ user2747911我說鉤子可以幫助自動化更新幾個工作樹的過程,每個分支一個,以便您的Web服務器根據要顯示的視圖顯示它們(在不同的url下)。 「更新工作樹」是您在http://stackoverflow.com/a/11323004/6309 – VonC

+0

中提到的腳本中看到的'git checkout'感謝VonC,我喜歡將這些分支部署到不同URL的想法。 --work-tree選項有點棘手,它沒有記錄在git-checkout手冊頁上[1],我想我能夠得到它的工作一次,但我主要得到的錯誤不是一個有效的選項。 –