Mercurial и Word или PDF документы - PullRequest
31 голосов
/ 17 марта 2010

возможно ли использовать Mercurial контроль версий для отслеживания файлов Word или PDF? Есть ли ограничение или проблема?

Ответы [ 4 ]

57 голосов
/ 25 ноября 2010

Да.

Вы сможете сделать значимые различия для документов MS Word.

  • Если у вас установлен TortoiseHg и у вас естьустановите репозиторий, щелкните правой кнопкой мыши файл, для которого вы хотите проверить различия.

  • В контекстном меню выберите TortoiseHg> Visual Diffs.

  • В диалоговом окне Visual Diffs выберите docdiff вместо kdiff3.

  • Дважды щелкните файл в диалоговом окне Visual Diffs.

MS Word откроет документ сравнения результатов Word, который покажет различия между текущей версией документа и предыдущей версией в виде отслеженных изменений.

7 голосов
/ 17 марта 2010

Да, но, конечно, вы не сможете отличиться каким-либо значимым способом. Поэтому файлы будут обрабатываться как двоичные файлы во время слияния.

Mercurial отлично способен отслеживать двоичные файлы:

Mercurial вообще не делает предположения о содержимом файла. Таким образом, большинство вещей в Mercurial работают нормально с любым типом файла.

Mercurial сохраняет двоичные различия независимо от типа файла. Проблема с файлами PDF / Word заключается в том, что небольшие изменения в них обычно вызывают огромную разницу в их двоичном представлении на диске. .docx Документы хранятся в виде zip-файла xml, поскольку сжатие одного перевернутого бита внутри архива может привести к тому, что zip-архив будет выглядеть совершенно иначе.

Если вы не увеличите хранилище слишком большим, вы, вероятно, не столкнетесь с какими-либо проблемами при использовании Mercurial.

6 голосов
/ 12 февраля 2013

Остерегайтесь предложенных

cmd.pdfdiff = [\path\to\diffpdf.exe]
opts.pdfdiff= -a $local $other

$ local и $ other не имеют значения в контексте extdiff.Буквенные строки «$ local» и «$ other», а не имена файлов, будут переданы в «diffpdf.exe».Я нашел это трудным путем.

cmd.pdfdiff = [\path\to\diffpdf.exe]
opts.pdfdiff= -a

будет работать, и эти два файла будут переданы в качестве параметров после "-a".cf https://www.mercurial -scm.org / wiki / ExtdiffExtension , где указано:

Каждая пользовательская команда diff может состоять из двух частей: «cmd» и «opts»часть.Параметр cmd.xxx определяет имя исполняемой программы, которая будет запускаться, а opts.xxx определяет набор параметров командной строки, которые будут вставлены в команду между именем программы и файлами / каталогами для diff

.
1 голос
/ 13 июля 2012

Для файлов PDF я смог получить лицензию GPL DiffPDF , чтобы сделать сравнение между ревизиями файлов PDF.

Я добавил следующее в мой mercurial.ini файл:

[extdiff]
cmd.pdfdiff = [\path\to\diffpdf.exe]
opts.pdfdiff= -a $local $other

[diff-patterns]
**.pdf=pdfdiff

Теперь, когда я нажимаю на файл PDF в tortoisehg (или использую hg pdfdiff в строке cmd), он открывает два файла для сравнения. Поскольку в моих файлах PDF есть изображения, я использую внешний вид компаратор (-a в opts). Если у вас есть в основном текст, вы можете использовать -w.

По умолчанию выделяет для отображения различий. Я предпочитаю Src Xor Dest для отображения различий, но я не думаю, что для этого есть опция строки cmd.

...