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

Документы Mercurial и Word или PDF

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

Да.

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

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

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

  • В диалоговом окне "Визуальные различия" выберите docdiff, а не kdiff3.

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

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

Ответ 3

Остерегайтесь предлагаемого

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". c.f. https://www.mercurial-scm.org/wiki/ExtdiffExtension, где указано:

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

Ответ 4

Для файлов Pdf мне удалось получить лицензионный DiffPDF GPL, чтобы делать сравнения между версиями 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.