2013-03-16 117 views
19

是什麼的Refspec分行符(預設爲空白)之間的區別:在下面的詹金斯作業配置:詹金斯的Git插件和Refspecs

enter image description here

我試圖設置的Refspec選擇在任務配置:

+refs/heads/master:refs/remotes/origin/master 

在我的構建從克隆的回購.git的/ config文件看起來是這樣的:

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "origin"] 
     url = https://user:[email protected]/scm/PROJECT/project.git 
     fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

似乎爲值取是不正確的(從詹金斯作業配置讀取)。此外,它對磁盤空間消耗沒有影響。

+0

顯然,存儲庫的配置不受影響。我不確定這是否是預期的行爲,但應該指出,這並不是嚴格要求,因爲refspec可以包含在git fetch命令中。因此,您應該嘗試檢查**執行的是哪個命令。 – bigge 2013-03-17 12:09:12

回答

20

的Refspec限定用於選項取操作(參見herehere),而分支指示符,其分支包含的代碼定義要由詹金斯內置。換句話說:Refspec僅定義如何檢索代碼,而分支說明符將編譯代碼的哪一部分。

[修改:]修復了無法鏈接到refspec

+0

好吧,如果我只需要建立例如。 ** my-feature **分支將refspec設置爲** my-feature **有意義嗎?這將節省一些空間,而不是獲取完整的存儲庫/所有分支機構? – u123 2013-03-16 15:17:46

+0

那麼,原則上這是真的,但請記住,git在保持分支輕量級方面做得非常好。也就是說,git只保存差異,因此,如果分支之間存在極其**差異,那麼獲取多個分支的開銷只會很大。 – bigge 2013-03-16 19:09:16

+0

它對磁盤空間消耗沒有影響,但似乎從未設置該選項 - 見編輯後。 – u123 2013-03-17 09:58:29