Документы Mercurial и Word или PDF
Можно ли использовать Mercurial контроль версий для отслеживания файлов Word или PDF? Есть ли какие-либо ограничения или проблемы?
4 ответа:
Да, но, конечно, вы не сможете отличить их каким-либо значимым образом. Поэтому при слиянии файлы будут рассматриваться как двоичные.
Mercurial прекрасно способен отслеживать двоичные файлы:
Mercurial обычно не делает предположения о содержании файла. Таким образом, большинство вещей в Mercurial работают нормально с любым типом файла.
Mercurial хранит двоичный diff независимо от типа файла. Проблема с файлами PDF / Word заключается в том, что немного изменение их обычно вызывает огромную разницу в их двоичном представлении на диске.
.docx
документы хранятся как сжатый xml, из-за того, что один перевернутый бит внутри архива может привести к тому, что zip-архив будет выглядеть совершенно по-другому.Если вы не увеличите свой репозиторий слишком большим, вы, вероятно, не испытаете никаких проблем с использованием Mercurial.
Да.
Вы будете иметь возможность делать значимые различия для документов MS Word.
Если у вас установлена TortoiseHg и вы создали хранилище, щелкните правой кнопкой мыши файл, для которого вы хочу проверить диффы.
В контекстном меню выберите TortoiseHg > Visual Diffs.
В диалоговом окне визуальные различия выберите docdiff, вместо kdiff3.
Дважды щелкните файл в визуальном окне Разницы диалог.
MS Word откроет документ Compare Result Word, в котором будут показаны различия между текущей версией документа и предыдущей версией в виде отслеживаемых изменений.
Остерегайтесь предложенного
cmd.pdfdiff = [\path\to\diffpdf.exe] opts.pdfdiff= -a $local $other
$local и $other не имеют значения в контексте extdiff. Литеральные строки " $local "и" $other", а не имена файлов, будут переданы в " diffpdf.исполняемый". Я нашел это трудным путем.
cmd.pdfdiff = [\path\to\diffpdf.exe] opts.pdfdiff= -a
Будет работать, и два файла будут переданы в качестве параметров после "- a". c. f. https://www.mercurial-scm.org/wiki/ExtdiffExtension где указано:
Каждая пользовательская команда diff может состоять из двух частей: "cmd" и "opts". часть. УМК.опция xxx определяет имя исполняемой программы, которая будет запущена, и выбирает.xxx определяет набор параметров командной строки, которые будут вставлены в команду между именем программы и файлами / каталогами в diff
Для Pdf-файлов я смог получить лицензию GPL DiffPDF, подключенную для сравнения версий pdf-файлов.
Я добавил в свой файл
mercurial.ini
следующее:Теперь, когда я нажимаю на pdf-файл в tortoisehg (или использую[extdiff] cmd.pdfdiff = [\path\to\diffpdf.exe] opts.pdfdiff= -a $local $other [diff-patterns] **.pdf=pdfdiff
hg pdfdiff
в строке cmd), он открывает два файла для сравнения. Поскольку мои pdf-файлы, как правило, содержат изображения, я использую внешний вид компаратор (-a
вopts
). Если у вас есть в основном текст, вы можете использовать-w
вместо этого.По умолчанию используется выделение , чтобы показать различия. Я предпочитаю опциюSrc Xor Dest для отображения различий, но я не думаю, что для этого есть опция cmd line.