Конфигурация Subversion: для чего используется diff3-has-program-arg? - PullRequest
1 голос
/ 14 апреля 2011

Subversion имеет опцию diff3-has-program-arg

### Set diff3-has-program-arg to 'yes' if your 'diff3' program
###   accepts the '--diff-program' option.
diff3-has-program-arg = [ yes | no ]

Мой diff3 поддерживает опцию --diff-program, но я не вижу, гденастроить вызываемую программу.

  • Как мне это сделать?
  • Зачем мне это делать?

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

diff3-has-program-arg кажется грубым. Ссылка на опцию указана в libsvn_subr/io.c, но код, использующий эту опцию, отключен SVN_DIFF3_HAS_DIFF_PROGRAM_ARG ifdef.

Логика конфигурации для установки этого макроса была удалена в этой ревизии .

Из старой почты в списке svn dev похоже, что первоначальная потребность в HAS_DIFF_PROGRAM_ARG заключалась в поддержке версии diff, для которой требовался параметр --diff-program, и версии, которая его отклонила, к реализации внутренней поддержки diff Subversion.

1 голос
/ 22 апреля 2011

--- Отредактировано после некоторого тестирования ---

Опция --diff-program=value в основном указывает diff3, какую программу проверки различий в двух файлах использовать.diff3 затем возьмет выходные данные из нескольких запусков программы проверки различий в двух файлах и перемежит их в трехсторонний вывод различий.

Использование diff3 --diff-program=diff a b c эффективно говорит diff3 об использовании diff какпрограмма двухсторонней разницы файлов.Аргумент конфигурации Subversion diff3-has-program-arg - это флаг для Subversion для добавления параметра --diff-program=xxx при вызове программы 3 way diff.Могу поспорить, что где-то есть еще один вариант, который позволяет вам также установить двухсторонний инструмент.

Полагаю, что седобород не тянул меня за ногу (в то время), но было веселее, когда он был.Просто спросите любого, кто запрограммировал бомбу-снаряд, и они согласятся (после того, как боль пройдет).

--- Исходный пост следует ---

Из старого страницы diff3 (спасибо GNU).

--diff-program=program
    Use the compatible comparison program program to compare files instead of diff. 

, который активирует способность diff использовать внешнюю программу сравнения (вместо ее внутреннего средства сопоставления текста).Я никогда не видел, чтобы он использовался, но старый серый борода однажды объяснил мне, что это было предназначено для программ сравнения текста лучше, таких как программы, которые нормализуют пробелы между различными входами "C", так что разница не будет выброшена из выравниванияиз-за проблем преобразования табуляции / пробела (и тому подобного).

Мне любопытно узнать, правда ли это, или просто фантастический миф, рассказанный человеку, который в то время был «зеленым».

...