我正在將我的持續測試移至專用服務器(自動測試會讓我的本地筆記本電腦速度變慢)。我想要的是我的測試服務器(正好運行CruiseControl.rb)不斷通過Git獲取我最新(已提交)的更改 - 理想情況下,我的工作流程沒有任何更改。我是這個項目的唯一開發人員。遠程跟蹤Git中的當前分支
此前獲得的測試服務器,我有:
- 我的筆記本電腦作爲我的主要開發系統
- 多個分支在我的本地庫。
- 本地工作副本,指向其中一個分支。我經常在分支之間切換(通常用於新功能)。
- 我經常將本地分支推送到鏡像遠程分支的GitHub帳戶。 (這主要是爲了使用非現場備份;我沒有爲我當前的項目共享任何代碼)。至少在每個工作日結束時我都會嘗試推送GitHub,儘管我偶爾會忘記。
我想保留所有這些完好無損。最重要的是,我現在有:
- 測試服務器
- ...運行CruiseControl.rb
- 我的筆記本電腦資料庫我的測試服務器上的克隆。 (目前它不克隆GitHub)
- 測試服務器上的一個本地工作副本,CC正在其中進行構建/測試。
- 這個工作拷貝到一個特定的Git分支
我一直在試圖讓我的測試服務器自動獲得我工作的任何分支在我的筆記本電腦工作拷貝,並從建設(當然) 。 (這會模仿自動測試的持續測試而不會消耗系統資源)。
事情我已經嘗試沒有成功:
- git的結帳出身/ HEAD:此獲取文件不錯,但打破CruiseControl的,因爲它不喜歡的「網點」工作副本。
- git checkout --track -b a_branch origin/a_branch:這對於獲取文件很好,而CC喜歡它,但它將測試服務器粘貼到特定分支。當在筆記本電腦上切換分支時,我將有效地停止測試當前的工作。
- git checkout --track -b my_testing_branch origin/HEAD:這也可以獲得可構建的文件,但它遭受與上述命令相同的問題。從原點/ HEAD創建分支只會獲得「默認」分支的HEAD,因此它也很粘。
有沒有什麼辦法可以得到一個好的遠程連續測試系統(有或沒有git分支機構),它不涉及我的工作流程的重大變化?
爲了讓測試服務器獲得最新的測試代碼,你必須將它推到某個服務器可以抓取它的地方,我不相信git中有一個後推鉤,而且我也認爲掛鉤會在執行推送的機器上運行(例如,您的筆記本電腦,而不是具有存儲庫的服務器)。 – 2009-11-23 14:06:54
最初,我完全是無推動,並從我的筆記本電腦拉服務器。 Pat的後置提交鉤子的建議可以起作用,如果它引發了一個消息到服務器(例如:一個ssh遠程命令),導致服務器開始拉動。但是,我現在正在靠向推送路線。 – 2009-11-23 18:26:41
事實上,在git-push – 2009-11-23 18:27:47