2011-03-27 47 views
5

我目前正在爲一個LaTeX項目開發各種「論文」,並且我認爲使用Git跟蹤正在進行的工作將是一個安全的想法,因爲它可能是我遇到的最好的版本控制系統。現在,Git會精心處理源代碼文件,但它處理二進制文件有多好?使用Git或其他VCS管理PDF /二進制文件

我不確定是否跟蹤我生成的PDF以及* .tex源文件。儘管我可以從任何版本/分支重新生成我的PDF,但這可能會非常耗時,並且通常只需提供相關的PDF版本即可; Git會處理這個問題嗎?有沒有一種方法可以在Git倉庫中標記顯式版本,我可以設置它,例如,我可以快速比較今天版本的PDF輸出與上週的版本?

回滾到特定分支將覆蓋PDF,或者至少需要重新編譯;我只想記錄我的進度並有效地存儲它,並且在此過程中能夠備份我的工作。 Git可能是我的解決方案,但有更好的嗎?

編輯我的兄弟發給我一個關於tagging的一些文檔的鏈接,以便解決我的問題的版本控制部分。

+0

我想評估[git-annex](http://git-annex.branchable.com/)一段時間。它可能是一個intestig解決大二進制文件和git的問題 – 2011-03-27 15:42:18

回答

2

我認爲最好的解決方案將取決於你將如何使用VCS。如果你要經常在PDF之間做差異,git可能不是一個好的解決方案。

如果你打算在LaTeX源代碼上做差異,然後看看相關的PDF文件,git可能是一個不錯的選擇。我這樣做的方式是使用「平分」功能來做一種僞差異。 Bisect通常用於對修訂歷史進行二進制搜索以查找錯誤。它在bzr中的工作方式是,你可以給出一個命令在每個修訂版本上運行,告訴bzr該bug是否存在。只需給出你想要查看的兩個轉速,並使命令運行。

就我個人而言,我更傾向於只控制實際的來源。如果您的PDF需要很長時間才能編譯,請分別解決該問題。每次更改任何源文件時,是否生成所有PDF?也許一個makefile可以解決這個問題?

+0

它被稱爲'git bisect'。 http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html – 2011-03-27 12:37:28

+0

我使用make-like系統(latexmk)編譯PDF文件,它可以自動運行xelatex多次因此編譯只需要花費時間,而我等待它將所有組成我的主文檔的各種文件都拉出來。由於我的文檔相當複雜,有很多表格和浮點數,所以我通常會在每次重大更改後重新編譯PDF,因此我需要直觀地檢查輸出,因爲通常需要進行一些微調。我主要是快速直觀地比較兩個或更多版本,而不是差異。 – Robbie 2011-03-27 12:43:34

相關問題