Контроль версий для DOCX и PDF?
Я играл с git
и hg
в последнее время, а затем внезапно мне пришло в голову, что это будет здорово для документов.
у меня есть документ, который я редактирую в DOCX и экспортирую как PDF. Я попытался использовать оба git
и hg
для управления версиями и получается с hg
вы в конечном итоге отслеживаете только двоичный файл, а diff - ing не имеет смысла. Хотя с git
Я могу многозначительно diff DOCX (еще не пробовал PDF) мне было интересно, есть ли лучший способ сделать это, чем я делаю это сейчас. (В идеале, не нужно оставлять слово diff будет лучшим решением.)
-- Ашиш Ганди
6 ответов
здесь есть две разные концепции-одна из них: "может ли система управления версиями сделать некоторые интеллектуальные суждения о содержании файлов?"- чтобы он мог хранить только Дельта-информацию между ревизиями (и делать такие вещи, как назначение ответственности отдельным частям файла).
другой -" есть ли у меня инструмент сравнения файлов, который полезен для типов файлов, которые у меня есть в системе управления версиями". Системы контроля версий, как правило, поставляются с инструментами сравнения файлов которые уступают специализированным альтернативам. Но они всегда могут быть связаны с лучшими программами diff - либо для всех типов файлов, либо для конкретных.
поэтому обычно используется, например, Beyond Compare в качестве общего инструмента сравнения, а Word-как выделенный Word document comparer.
различные системы управления версиями отличаются тем, как хорошие люди воспринимают их при обработке "двоичных файлов", но это часто так же связано с обработкой огромных файлов и предоставлением эксклюзивная блокировка, как и при сравнении файлов.
http://tortoisehg.bitbucket.io/ включает плагин под названием docdiff, который объединяет Word и Excel diff'ING.
вы можете использовать Beyond Compare в качестве внешнего инструмента diff для hg. Добавьте / измените пользователя mercurial.ini as:
[extdiff]
cmd.vdiff = c:/path/to/BCompare.exe
тогда выходите за рамки сравнения правило просмотра файлов для docx.
теперь вы сможете сравнить две версии docx в Beyond Compare.
только для docx, я скомпилировал инструкции для нескольких мест здесь: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 -' > 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!
Он отлично работает на OSX
Если вы используете Mac, я написал драйвер слияния git, который может использовать Microsoft Word и отслеживал изменения для слияния и отображения конфликтов между любыми типами файлов, которые Word может читать и писать.
http://github.com/jasmas/wordMerge
Я говорю "если вы используете Mac", потому что драйвер, который я написал, использует AppleScript, в первую очередь для выполнения этой задачи.
было бы неплохо добавить версию vbscript в проект, но на данный момент у меня нет Среде Windows для тестирования. Любой человек с некоторыми базовыми знаниями сценариев должен иметь возможность взглянуть на то, что я делаю, и дублировать его в vbscript, powershell или любом другом в Windows.