2016-11-25 48 views
0

我想保存的Microsoft Visio在我的Git倉庫2013點圖。這些圖表稍後將轉換爲SVG和PDF,供Sphinx構建的軟件文檔使用。如何在Git上存儲打開的文檔(.docx,.vsdx,...)?

不幸的是,開放式的文檔文件是二進制文件(其實他們是ZIP檔案)和Git不會很想二進制文件。

我意識到如果我解壓縮我的vsdx文件,我會得到大量使用Git更易於管理的xml文件。

的問題是,我需要以某種掛鉤腳本的Git只存儲在庫中的解壓打開文檔文件,但保留壓縮版本上的工作目錄。減少總體資源庫佔用情況是否可行和可取?

我們的目標是,如果我移動形狀我的Visio圖表上我不想幾乎重複我的兆字節VSD文件在我的倉庫。我想象一個換行的2兆字節XML文件有更好的機會在Git Packfiles上進行壓縮。

這是正確的嗎?

+1

你見過這個:http://stackoverflow.com/questions/17501146/uncompressing-zipped-data-files-before-committing-to-repository –

+0

我同意你說的每一句話。什麼阻止你在結帳前解壓文件並添加組件XML文件? –

回答

1

如果您擔心處理大型Visio文件的內存問題,爲什麼不利用git的分佈式特性並設置多個存儲庫?像這樣。


Root Folder (Git Repo) 
    .gitignore (that ignores the Visio Folder) 
    Visio Folder (Also a Git Repo) 

工作自由,無需擔心提交您的Visio文件。然後,當您對更改感到滿意時,只需將目標文件放在目錄下即可。提取並提交它。這似乎不雅,但如果您的Visio文件夾中獲得超過內存的擔憂行不通,你可以打破它,因爲你需要的一切是在它下面的混帳回購協議。 (保留大的二進制文件免於回收空間的唯一真正方法是不提交它們。)

如果此解決方案過於粗糙,請將您的Visio文件夾設置爲根文件夾的遠程文件夾。讓您的Visio文件夾包含兩個獨立的分支,一個包含提交,其中包含您的巨型文件,另一個則不包含。只需從沒有Visio文件的分支中獲取。如果仍然無法控制,則需要安裝遠程控制檯,子文件夾等,直到獲得能夠爲您生成有意義的工作流程和歷史記錄的存儲庫結構。

添加本地遠程


cd 'Root Folder' 
git remote add visiofiles 'Visio Folder' 

如果你感到冒險精神,你可以調查Git的「乾淨」和「塗抹」過濾器(它們被調用的文件,當你提交和結帳 - 他們」重新打算讓你使用與你的團隊不同的縮進規則,但你可能能夠壓縮和解壓縮東西)。如果您要提取Visio文件以更好地檢查更改,則可以利用git的textconv配置文字。 Git讓我們在文件上調用自定義差異,一種方法是將該文件轉換爲字符串並在其上運行差異。這確實需要您對.gitconfig和.gitattributes文件感到滿意,併爲字符串轉換找到合適的程序。

但您所描述的問題,是一個記憶的關注,所以鉤子和配置您可用可能沒有必要。

相關問題