Форматы файлов различий

По умолчанию Mercurial показывает отличия между ревизиями файла в унифицированном формате GNU diff (unified diff), который может быть использован в GNU patch и многих других стандартных инструментах.

Хотя как правило стандартного формата достаточно, он не содержит следующей информации:

Mercurial также поддерживает расширенный формат diff VCS git, который исправляет эти недостатки. Этот формат не используется по умолчанию, потому что многие распространенные инструменты его не понимают.

Это значит, что при генерировании различий из хранилища Mercurial (например, с помощью 'hg export'), нужно быть осторожным с такими вещами как копирования и переименования и другими перечисленными выше, потому что при применении стандартного файла различий к другому хранилищу эта информация теряется. На внутренние операции Mercurial (как push или pull) это не влияет, потому что они используют внутренний бинарный формат для обмена изменениями.

Чтобы генерировать различия в расширенном формате git, используйте опцию --git, которая доступна для многих команд, или установите 'git = True' в секции [diff] в вашем конфиге. Эту опцию не обязательно указывать при импорте различий в этом формате или использовании расширения mq.