2012-11-21 130 views
3

我的Git下(大)的Fortran項目。有不同的活動分支,對應於開發中的功能。我想找到維護每個分支的編譯版本的便捷方式。混帳:多個分支大廈項目

的代碼使用品牌和所有的目標文件都保存在與二進制文件一起,一個單獨的文件夾(如build_branch1)目前編制。目錄結構是這樣的:

的Makefile
./src
./build_branch1/objects
./build_branch1/bin
./build_branch2/objects
./build_branch2/bin
。 ..

原則上,我可以因此編譯所有這樣的分支:

git的結帳BRANCH1
做前綴= build_branch1
git的結帳BRANCH2
做前綴= build_branch2
等等

製作比較來源的時間戳(新鮮簽出通過GIT)與在build_branchN文件夾中的目標文件,並重新編譯那些改變。問題是,Git的改變了BRANCH1和BRANCH2之間的差異,使許多文件被重新編譯時,他們就不再需要將所有源文件的時間戳。由於代碼編譯需要很長時間(最長30分鐘),這可能是一個很大的不便。

我想知道什麼應該是在這種情況下,最好的策略。我在這篇文章想每個結賬後更新的時間戳,如:What's the equivalent of use-commit-times for git? 你會怎麼推薦?

回答

3

而不是modifying timestamp on each checkout,你可以使用一個機制,在這些答案時(但不包括mine):git notes

,你可以:

  • 每個生成後,記下犯了每個生成之前生成的時間戳
  • 建,尋找一個音符(分支命名的命名空間),最後構建時間戳和修改任何文件(根據git狀態,當前未被修改)與該時間戳。

的想法是記錄您所需要的信息:

    在GIT回購
  • (因此它可以持續)的方式不改變當前的歷史(的SHA1
  • 在提交沒有被修改)
+0

謝謝,這是一個不錯的主意。我並不是很喜歡在每次結賬時做某件事的想法(我做的大部分結賬都不是用於構建代碼的)。 – calys