2013-01-24 41 views
18

我在模型上進行實驗的科學實驗,以這樣的工作流程:如何組織一組使用Git

  • 我在一個模型(在Python軟件)
  • 我改變一些參數並運行實驗
  • 然後,我將存儲實驗的結果(作爲泡菜)。
  • 然後,我會用另一個軟件(IPython筆記本)分析(醃製)結果。

我使用Git and Scientific Reproducibility作爲指導,其中實驗的結果存儲在提交的哈希表中。我想將結果存儲在目錄中,而不是將目錄命名爲散列。

關於版本控制的思考,我想分離出codeanalysis。例如,在analysis的顏色在一個IPython的筆記本情節的改變不應該改變code

的方法什麼我在想:

的目錄結構是這樣的:

model 
- code 
- simulation_results 
    - a83bc4 
    - 23e900 
    - etc 
- analysis 

codeanalysis的不同Git存儲庫,將simulation_results留在Git之外。

有何評論?更好的解決方案?謝謝。

+0

simulation_results下的十六進制數應該表示什麼? (我猜他們是提交ID,但我錯過了一些上下文。) –

+0

我維護子模塊是一種很好的方法。我編輯並詳細解答了我的答案。 – VonC

+0

嗨約瑟夫,是的,十六進制數字是提交id。 – Victor

回答

4

看起來很合理,你的結構很適合使用git submodules,model成爲父git回購。

這樣,您將在model回購庫內連接codeanalysis SHA1。

這意味着你可以在私人創建的目錄基礎上model回購(「父」回購)的SHA1目錄model/simulation_results(即未版本):這SHA1鏈接都projectanalysis子模塊的SHA1,這意味着您可以重現實驗剛好(基於projectanalysis的確切內容)。