2010-07-21 9 views
27

Ich habe mit git und hg in letzter Zeit herum spielen und dann plötzlich fiel mir ein, dass diese Art der Sache für Dokumente groß sein.Versionskontrolle für DOCX und PDF?

Ich habe ein Dokument, das ich in DOCX und Export als PDF bearbeiten. Ich versuchte es sowohl git und hg zur Versionskontrolle mit und stellt sich heraus, mit hg Sie nur binäre und diff-ing-Tracking am Ende ist nicht sinnvoll. Obwohl ich mit git DOCX sinnvoll vergleichen kann (habe noch kein PDF probiert), habe ich mich gefragt, ob es einen besseren Weg gibt, es zu tun als jetzt. (Idealerweise mit Word nicht zu diff verlassen die beste Lösung sein.)

- Ashish Gandhi

Antwort

13

Es gibt zwei verschiedene Konzepte hier - ist „kann das Versionskontrollsystem einige intelligente Entscheidungen darüber, der Inhalt von Dateien? " - so dass nur Delta-Informationen zwischen Revisionen gespeichert werden können (und beispielsweise die Verantwortung für einzelne Teile einer Datei zuweisen).

Die andere ist ‚ich ein Datei-Vergleichs-Tool habe, die für die Arten von Dateien nützlich ist, ich in dem Versionskontrollsystem habe.‘ Versionskontrollsysteme neigen dazu, mit Dateivergleichstools zu kommen, die dedizierten Alternativen unterlegen sind. Aber sie können immer mit besseren Diff-Programmen verknüpft werden - entweder für alle Dateitypen oder für bestimmte Dateitypen.

So ist es üblich, zu verwenden, zum Beispiel, Beyond Compare als allgemeinen vergleichen Werkzeug, mit Word als dediziertem Word-Dokument Vergleich.

Verschiedene Versionskontrollsysteme unterscheiden sich darin, wie gut sie Menschen bei der Verarbeitung von "Binärdateien" wahrnehmen, aber das hat oft genauso viel mit der Verarbeitung großer Dateien zu tun und bietet exklusive Sperren wie beim Dateivergleich.

+0

Ja, mir sind die "binären" Fähigkeiten Diskussionen bekannt. Was würdest du vorschlagen - wie sollte man die Geschichte ihrer DOCXs aufzeichnen? –

+1

Ich würde sie in jede Art von VCS einfügen und dieses VCS so konfigurieren, dass Word zum Vergleichen von DOCX-Dateien verwendet wird. –

+0

Wie konfiguriere ich TortoiseHg, um dies automatisch zu tun, wenn ich auf eine alte Version der DOCX doppelklicke? –

4

können Sie verwenden darüber hinaus als externes Diff-Tool für hg vergleichen. Hinzufügen/ändern Ihre Benutzer Mercurial.ini als:

[extdiff] 
cmd.vdiff = c:/path/to/BCompare.exe 

Dann Jenseits file viewer rule für docx Vergleichen bekommen.

Jetzt sollten Sie in der Lage sein, zwei Versionen von docx in Beyond Compare zu vergleichen.

3

Nur für docx, ich kompilierte Anweisungen für mehrere Orte hier: https://gist.github.com/nachocab/6429893

# download docx2txt by Sandeep Kumar 
wget -O docx2txt.pl http://www.cs.indiana.edu/~kinzler/home/binp/docx2txt 

# make a wrapper 
echo '#!/bin/bash 
docx2txt.pl $1 -' > docx2txt 
chmod +x docx2txt 

# make sure docx2txt.pl and docx2txt are your current PATH. Here's a guide 
http://shapeshed.com/using_custom_shell_scripts_on_osx_or_linux/ 
mv docx2txt docx2txt.pl ~/bin/ 

# set .gitattributes (unfortunately I don't this can't be set by default, you have to create it for every project) 
echo "*.docx diff=word" > .git/info/attributes 

# add the following to ~/.gitconfig 
[diff "word"] 
    binary = true 
    textconv = docx2txt 

# add a new alias 
[alias] 
    wdiff = diff --color-words 

# try it 
git init 

# create my_file.docx, add some content 

git add my_file.docx 

git commit -m "Initial commit" 

# change something in my_file.docx 

git wdiff my_file.docx 

# awesome! 

Es funktioniert auf OSX

2

Wenn Sie einen Mac verwenden passieren, schrieb ich Fahrer ein git zusammenführen, die verwendet werden können Microsoft Word und verfolgte Änderungen zum Zusammenführen und Anzeigen von Konflikten zwischen beliebigen Dateitypen, die Word lesen kann & schreiben.

http://github.com/jasmas/wordMerge

Ich sage ‚wenn Sie einen Mac verwenden passieren‘, da der Treiber ich Apple schrieb verwendet, in erster Linie diese Aufgabe zu erfüllen.

Es wäre nett, dem Projekt eine VBScript-Version hinzuzufügen, aber im Moment habe ich keine Windows-Umgebung zum Testen.Jeder, der ein grundlegendes Skriptwissen hat, sollte in der Lage sein, einen Blick darauf zu werfen, was ich mache, und es in vbscript, powershell oder was auch immer unter Windows zu duplizieren.

Verwandte Themen