Контроль версий для DOCX и PDF?
В последнее время я играл с git
и hg
, а затем вдруг мне пришло в голову, что это будет отлично для документов.
У меня есть документ, который я редактирую в DOCX и экспортирую как PDF. Я попытался использовать как git
, так и hg
, чтобы управлять версией, и получается с hg
, в конечном итоге отслеживание только двоичных и diffing не имеет смысла. Хотя с git
я могу осмысленно различать DOCX (еще не пробовал PDF). Мне было интересно, есть ли лучший способ сделать это, чем я делаю это прямо сейчас. (В идеале, не нужно оставлять Word для diff будет лучшим решением.)
-
Ашиш Ганди
Ответы
Ответ 1
Здесь есть два разных понятия: один - "может ли система управления версиями сделать некоторые разумные суждения о содержимом файлов?" - чтобы он мог хранить только дельта-информацию между ревизиями (и делать такие вещи, как назначать ответственность отдельным частям файла).
Другой: "У меня есть инструмент сравнения файлов, который полезен для типов файлов, которые у меня есть в системе управления версиями". Системы управления версиями, как правило, поставляются с инструментами сравнения файлов, которые уступают выделенным альтернативам. Но они могут быть всегда связаны с лучшими программами diff - либо для всех типов файлов, либо для определенных типов.
Таким образом, он распространен для использования, например, Beyond Compare в качестве общего инструмента сравнения, с Word в качестве выделенного документа Word.
Различные системы управления версиями отличаются тем, как хорошие люди считают, что они работают с "двоичными файлами", но которые часто так же важны для обработки огромных файлов и обеспечения исключительной блокировки, поскольку это связано с сопоставлением файлов.
Ответ 2
http://tortoisehg.bitbucket.io/ содержит плагин под названием docdiff, который объединяет Word и Excel.
Ответ 3
Вы можете использовать Beyond Compare в качестве внешнего инструмента diff для hg. Добавить/изменить пользователя mercurial.ini как:
[extdiff]
cmd.vdiff = c:/path/to/BCompare.exe
Затем получите Beyond Compare правило просмотра файлов для docx.
Теперь вы можете сравнить две версии docx в Beyond Compare.
Ответ 4
Эта статья описывает решение для Docx, используя Pandoc
В то время как этот пост описывает решение для PDF, используя pdf2html.
Ответ 5
Только для 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 $1 -' > docx2txt
chmod +x docx2txt
# make sure docx2txt.pl and docx2txt are your current PATH. Here 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
Ответ 6
Если вы используете Mac, я написал драйвер слияния git, который может использовать Microsoft Word и отслеживать изменения, чтобы объединить и показать конфликты между любыми типами файлов, которые Word может читать и писать.
http://github.com/jasmas/wordMerge
Я говорю "если вы используете Mac", потому что драйвер, который я написал, использует AppleScript, прежде всего для выполнения этой задачи.
Было бы неплохо добавить версию vbscript для проекта, но на данный момент у меня нет среды Windows для тестирования. Любой, у кого есть некоторые базовые знания сценариев, должен иметь возможность взглянуть на то, что я делаю, и дублировать его в vbscript, powershell или что-то еще в Windows.