Я ищу лучший инструмент для патчей, чем встроенный в Mercurial, или визуальный инструмент, который поможет мне редактировать патчи, чтобы они были приняты в Mercurial или Gnu patch.
В Mercurial Wiki есть тема HandlingRejects , в которой показано, как просто избежать Patching. Я рассчитываю реализовать рабочий процесс на основе Mercurial для управления версиями ветвей функций, основанный на ветвях функций и основанный на экспорте и проверке исправлений до их интеграции. В моем первоначальном тестировании этой идеи самым слабым звеном в моих «заплатках» и «проверять, принимать и изменять» исправления является способ, которым отказ от исправления закрывает меня.
Вот некоторые распространенные случаи, когда импорт меркуриальных патчей не удался мне:
Тривиальные изменения как в repoA восходящего потока, так и в repoB ветви компонентов, где где-то в одной ветке добавляется одна строка Поскольку обе ветви имеют историю, инструмент слияния должен иметь возможность видеть, что «кто-то добавил одну строку в repoA, а кто-то добавил одну строку в repoB». Однако в случае импорта исправлений это приводит к отклонению импорта исправлений и появлению в вашем хранилище файла .rej, который вы должны исправить вручную (редактируя файл .rej, пока он не будет применен).
На странице вики выше упоминается инструмент mpatch, который можно найти здесь . Я ищу другие инструменты Better Merge, которые (а) работают с Mercurial и (б) могут обрабатывать тривиальный случай, упомянутый на вики-странице Обработка отклонений выше. Обратите внимание, что mpatch не работает для моих целей, мне кажется, что мне нужно нечто большее, чем инструмент перебазирования, а не инструмент исправления, и в моем случае мне, возможно, придется заставить инструмент исправления учитывать синтаксис (и, таким образом, специфичный для единый язык программирования).
Я ищу инструменты, доступные для работы в Windows, как изначально, так и даже через что-то вроде cygwin. Я не использую среду Unix / Linux, хотя мне удобнее использовать инструменты в стиле Linux / Unix.
В настоящее время я не использую расширения mq
, просто экспортирую диапазоны изменений с помощью hg export и импортирую с помощью hg import, а остальная часть работы - мои собственные изобретения, однако я пометил это mq
как Пользователи mq будут знакомы с этой проблемой обработки .rej
.
Смежный вопрос здесь показывает способы решения таких проблем при использовании TortoiseHg.