Подтвердить что ты не робот

Контроль версий для DOCX и PDF?

В последнее время я играл с git и hg, а затем вдруг мне пришло в голову, что это будет отлично для документов.

У меня есть документ, который я редактирую в DOCX и экспортирую как PDF. Я попытался использовать как git, так и hg, чтобы управлять версией, и получается с hg, в конечном итоге отслеживание только двоичных и diffing не имеет смысла. Хотя с git я могу осмысленно различать DOCX (еще не пробовал PDF). Мне было интересно, есть ли лучший способ сделать это, чем я делаю это прямо сейчас. (В идеале, не нужно оставлять Word для diff будет лучшим решением.)

- Ашиш Ганди

4b9b3361

Ответ 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.

Ответ 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.