Kontrola wersji dla DOCX i PDF?

Bawiłem się ostatnio git i hg i nagle przyszło mi do głowy, że takie rzeczy będą świetne do dokumentów.

Mam dokument, który edytuję w DOCX i eksportuję jako PDF. Próbowałem używać zarówno git jak i hg do kontroli wersji i okazało się, że z hg w końcu śledzisz tylko binarne i różnicowanie nie ma sensu. Chociaż z git mogę znacząco diff DOCX (nie próbowałem jeszcze na PDF) zastanawiałem się, czy jest lepszy sposób, aby to zrobić niż jestem robię to teraz. (Najlepiej, jeśli nie trzeba zostawiać Worda diffowi, będzie to najlepsze rozwiązanie.)

-- Ashish Gandhi

Author: Jungle Hunter, 2010-07-21

6 answers

Istnieją tu dwie różne koncepcje-jedną z nich jest " czy system kontroli wersji może inteligentnie oceniać zawartość plików?"- tak, że może przechowywać tylko informacje delta między wersjami (i zrobić rzeczy jak przypisać odpowiedzialność do poszczególnych części pliku).

Drugi to "czy mam narzędzie do porównywania plików, które jest przydatne dla typów plików, które mam w systemie kontroli wersji". Systemy kontroli wersji zazwyczaj są wyposażone w narzędzia do porównywania plików, które są gorsze od dedykowanych alternatyw. Ale praktycznie zawsze można je powiązać z lepszymi programami różnicowymi - zarówno dla wszystkich typów plików, jak i dla konkretnych.

Dlatego często używa się na przykład programu Beyond Compare jako ogólnego narzędzia porównującego, A programu Word jako dedykowanego narzędzia porównującego dokumenty Word.

Różne systemy kontroli wersji różnią się tym, jak dobrzy ludzie postrzegają je jako obsługę 'binariów' , ale często ma to tyle wspólnego z obsługą dużych plików i zapewnianiem wyłącznego blokowania, co ma to związek z porównywaniem plików.

 14
Author: Will Dean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-21 11:13:35

Http://tortoisehg.bitbucket.io / zawiera wtyczkę o nazwie docdiff, która integruje Word i Excel diff ' ING.

 6
Author: Joshua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 11:21:09

Możesz użyć Beyond Compare jako zewnętrznego narzędzia diff dla hg. Dodaj do / Zmień użytkownika mercurial.ini as:

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

Następnie uzyskaj poza Compare regułę przeglądarki plików dla docx.

Teraz powinieneś być w stanie porównać dwie wersje docx w Beyond Compare.

 4
Author: Geoffrey Zheng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 01:15:49

Ten Artykuł przedstawia rozwiązanie dla Docx za pomocą Pandoc Podczas gdy ten post przedstawia rozwiązanie dla PDF za pomocą pdf2html.

 4
Author: Daniil Shevelev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-28 17:43:11

Tylko dla docx, skompilowałem instrukcje dla wielu miejsc tutaj: 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!

Działa świetnie na OSX

 3
Author: nachocab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 17:09:31

Jeśli zdarzy ci się używać komputera Mac, napisałem sterownik Git merge, który może używać programu Microsoft Word i śledziłem zmiany, aby scalić i pokazać konflikty między dowolnymi typami plików, które Word może odczytywać i zapisywać.

Http://github.com/jasmas/wordMerge

Mówię "jeśli zdarzy ci się użyć Maca", ponieważ sterownik, który napisałem, używa AppleScript, głównie do wykonania tego zadania.

Byłoby miło dodać wersję vbscript do projektu, ale w tej chwili nie mam środowiska Windows do testowania. Każdy, kto ma podstawową wiedzę na temat skryptów, powinien być w stanie rzucić okiem na to, co robię i powielić to w vbscript, powershell lub cokolwiek innego w systemie Windows.

 2
Author: user3294264,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-10 19:08:35