2010-08-12 122 views
2

我正在寫一套django應用程序,並希望使用Hg進行版本控制。我希望每個應用程序獨立於其他應用程序,因此在每個應用程序中都可能有一個靜態媒體目錄,其中包含我不想在版本控制下使用的圖像。換句話說,二進制文件不會全部在一箇中心位置水銀(Hg)和二進制文件

我想找到一種方法克隆存儲庫,其中將包括圖像文件的副本。如果我進行合併時,如果在一個倉庫中有一個圖像文件,而另一個倉庫中沒有圖像文件,那麼這將會很棒,因爲會有某種警告。

目前我使用python腳本來查找圖像和其他二進制文件在一個回購,但不是其他。但很多人必須面對這個問題,所以必須有一個更強大和更優雅的解決方案。

還有一件事...由於我不想進入的原因,通常我的一個回購站位於Windows機器上,另一個位於Linux上。所以跨平臺解決方案會很好。

回答

2

Mercurial可以跟蹤任何類型的文件,對於二進制文件如果有變化,那麼整個文件將被替換,而不僅僅是更改。

如果一個回購沒有包含文件就會得到一個警告,這就是DVCS的一點,就是回購相關但是是自治的。您可以隨時查看並查看在同步或合併操作期間添加了哪些文件。

+0

謝謝。是的,我知道我可以將任何文件類型放入Hg中。但是,我相信當二進制文件發生變化時,舊的二進制文件將被Hg保留。如果您想恢復之前狀態下的文件,這很好。但也可以使回購巨大。 因此,現在,我將繼續使用python來管理圖像文件。這裏有一個有趣的片段,我從中吸取了一些想法: http://code.activestate.com/recipes/576777-simple-ftp-mirror/ 如果我得到時間,我會發布我的版本到activestate。 – Chuck 2010-08-20 15:18:19

7

由於Mercurial 2.0擴展largefiles現在已包含在主要發行版中。該擴展可以保存和管理「正常」存儲庫以外的大型文件,從而獲得DCVS的好處,但沒有指數大小和處理時間增長的好處。

沿着類似路線工作的其他分機是SnapExtensionBigFilesExtension。但是,這兩個不與Mercurial一起發佈(您必須手動獲取它們)。

0

當前Mercurial book(by Bryan O'Sullivan)表示,Mercurial商店也會針對二進制文件進行區分。這很有效,顯然取決於二進制文件變化的性質。