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

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

 ### Установите для diff3-has-program-arg значение yes, если ваша программа diff3
### принимает опцию --diff-program.
diff3-has-program-arg = [да | нет] 

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

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

2 ответа

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

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

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

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

--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", так что разница не будет выброшена из выравнивания. из-за проблем преобразования табуляции / пробела (и т.п.).

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

Другие вопросы по тегам