我經常爲大型(ish)項目進行計算流體動力學(CFD)建模仿真,並且正在尋找管理不同文件版本的更好方法。 我有一些(只在一種工作流中)使用git和svn的經驗,雖然我相信他們不滿足我所有的需求。基於每個文件的版本控制
典型的工作流程是這樣的:
設置用於校準模擬的初始文件。
調整這個文件並重新運行(重複步驟1)
當幸福與校準,設定從參數
最好設置驗證運行時校準/驗證全部建成後,成立了設計運行文件: 即。方案A,方案B,方案C
哎呦,你忘了在方案C的輸出的東西的關鍵,所以你必須做出一個細微的變化,然後重新運行模擬
目前的做法是重新命名每次連續運行001,002等等。當「最佳」校準可能不是最高運行次數時,這使得事情不清楚,即,你測試了更多的東西,但他們並不一定會改進。或者,當您需要對最新場景模擬的結果進行比較時,這是令人困惑的,場景A和場景B都爲001,但場景C爲002.
理想情況下,版本控制系統將能夠記錄每個場景連續提交併顯示比較舊版本。獎金將能夠跟蹤分支中的'最佳'版本,即。迄今爲止最好的校準模擬,並能夠快速恢復到該版本。
其次,系統需要允許從現有文件的給定版本的模板創建新文件。 IE瀏覽器。在爲場景模擬創建文件AB和C時,從最新的校準/驗證設置副本開始,然後進行定義不同場景(不同時間模擬,不同幾何形狀等)的更改並提交這些場景 - 然後能夠快速比較兩種情況,並查看它們都具有哪些版本的共同點。
第三,可能會破壞許多系統的可能用途的最後一項功能是在任何時候都可以在文件夾中檢出多個版本的文件。 IE瀏覽器。在週末之前,我可能會設置10個具有稍微不同參數的模擬,並將它們全部批量運行,以便在星期一早上我可以選擇最好的,然後將樹倒塌到當前最好的一個。
理想情況下,這將有一個很好的圖形用戶界面(認爲github的Windows),可以看到任何文件的最新變化,並提交一個文件單獨更改,最重要的是單獨恢復單個文件到以前的版本。我希望在任何時候基本上只在文件夾中具有所需的校準,驗證,方案A,B和C文件,但可以選擇簽出多個版本,稍後將其摺疊。
網上看了一下,表明這樣一個利基系統並不存在,而且我並不反對自己創造一些東西。但是有沒有人對現有的系統(Git?)有很好的工作,可以覆蓋全部或至少大部分我的需求?或者,也許可以在線的任何工具,我可以開始並以某種形式在一起?或者最重要的是,這涵蓋了很多奇蹟系統...
分支問題是我最好在任何時候在一個文件夾中檢出多個分支。模擬通常是批量執行的,或者在Linux集羣上並行執行。顯然很可能在不同的文件夾中有多個分支/克隆。但是,提交作業變得複雜得多,需要一個全新的文件夾結構。 – TDevlin
@TDevlin - [Git-worktree](https://git-scm.com/docs/git-worktree)?另請參閱http://stackoverflow.com/a/30185564/960558(我不使用Git,未經測試的工作樹,只能閱讀)或[共享擴展](https://www.mercurial-scm.org/wiki/ShareExtension)在Mercurial,如果你**不會改變**檢查數據 –
@TDevlin - 但我的選擇(因爲我**憎惡** Git,更喜歡使用純香草解決方案,當它可能)將是1) Mercurial 2)使用'hg archive -r REV -t files destname-%R'(%R來區分哪個目錄是repo中的哪個版本)來準備每個集合3)運行測試 –