2010-08-01 70 views
3

我在git倉庫中有一個項目,它爲構建環境等使用了一些自定義(以及迄今爲止未版本化)的安裝腳本。我想將它們置於版本控制之下(希望是git),但將它們的版本與項目本身分開,同時仍然在項目的基本目錄中 - 我已經考慮過像本地分支這樣的選項,但這些似乎存在切換回master(或任何其他「真正的「分支)將丟棄安裝腳本的工作副本。在git倉庫中保留自定義構建配置文件

我在使用msysgit的Windows上,所以我有幾個工具可以使用;有沒有人有推薦或解決方案?

回答

1

如果你真的需要它們從你的主git倉庫分開,同時還直接在它的生活,你可以嘗試:

  • 在其中創建這些腳本一個新的回購

和:

  • 將新的repo添加爲您的回購子模塊。除了:
    • A /的腳本將不會直接在基本目錄生活,但在子文件夾代表子模塊
    • B /你當然需要不公佈(推)新的回購,爲了其他克隆你的主要回購協議不會受到這些安裝文件

或:

  • 合併新回購到主回購(與subtree project),但:
    • 需要分割回你的項目擺脫這些文件
    • 用於與大史的一個項目,並頻繁推,步驟(分裂)可能會很長和繁瑣。

我會考慮一個簡單的解決方案,涉及一些演變到當前的安裝文件:

  • 私人回購這些安裝文件
  • 環境(如「不推」)變量與你的主git回購的路徑,以便你的設置文件(這將不是直接在主要回購的基本目錄內)在正確的目錄中完成他們的工作(例如開始,例如'cd right_main_git_repo_dir')。
+0

我認爲簡單的解決方案可能是最好的,我已經創建了一個私人回購站作爲我的項目的兄弟姐妹,因此任何'cd ../ project /'都可以在這兩個環境中工作。似乎到目前爲止工作;謝謝! – Alphax 2010-08-01 16:01:06

0

我想分享一個額外的解決方案和一些樣本,從中開始。

我試圖用Buildbot構建Mozilla Firefox時遇到類似問題 - 我需要在根文件夾中有一些文件(即.mozconfig文件和一些幫助程序腳本),並且我想單獨對它們進行版本化。

我的解決方案如下:

  1. 結帳從Mercurial repository Firefox的代碼;
  2. 簽出額外的存儲庫,並附帶我需要的文件;
  3. 開始構建之前,我將這些文件複製到Firefox代碼文件夾中。

這種方法在下列信息庫實現的:

請注意,代碼可能不是很好的因素(例如路徑),但它應該是一個很好的起點。

該過程是爲Firefox量身定做的,但它可以應用於任何存儲庫。

相關問題