場景可以將zip文件作爲目錄和zip文件中的文件作爲blob處理?
想象,我不得不與我的一些文件總是存儲在內部.zip
文件的工作。 zip中的一些文件是小文本文件,並且經常更改,而其他文件較大,但幸運的是相當靜態(例如圖像)。
如果我想將這些壓縮文件放入git
存儲庫中,則每個壓縮文件都被視爲blob,因此每當我提交壓縮文件時,存儲庫都會增大...即使只有一個小文本文件變了!
爲什麼這是現實
的MS Word 2007/2010 .docx
和Excel .xlsx
文件是ZIP文件...
我想要什麼
是存在的,以任何機會,一種告訴git
不要將zip文件視爲文件的方式,而是將其視爲目錄並將其內容視爲文件?
優勢
- 小得多回購規模,即更快的傳輸/備份
- Display changes with Git to zip's將自動將工作
但它不能正常工作,你說呢?
我意識到,如果沒有額外的元數據,這將引起歧義的一些量:在git checkout
混帳必須決定是否要創建foo.zip/bar.txt
作爲普通目錄中的文件或zip文件。然而,這可以通過配置選項來解決,我想。
兩個想法如何可以做到(如果不存在的話)
- 使用圖書館內的git如
minizip
或IO::Compress::Zip
- 莫名其妙地增加了文件系統層,使得實際的git看到zip文件作爲目錄開始
用'.DOCX場景'文件是有道理的,但在其他許多情況下,您可能需要考慮使用git來正常跟蹤各個文件,並且只使用'make'等相應的構建工具*構建* .zip。 – pixelistik
考慮到兩個看起來不同的zip文件可以保存完全相同的數據(例如,使用兩個不同的壓縮級別壓縮兩次的文本文件),這變得更加棘手。雖然很容易在兩個版本的解壓縮文件之間用很少的信息來表示差異,但我猜想代表兩個版本的壓縮文件(這實際上是git必須做的)之間的區別,儘可能少的信息是非-不重要的。 – HelloGoodbye
你有沒有結束[Jeff's answer](https://stackoverflow.com/a/8001900/321973)或其他任何東西的實施解決方案?我想知道除了[對於tar檔案](https://stackoverflow.com/q/37000849/321973)基本相同,這應該產生兼容的答案... –