Как сказать Mercurial автоматически принимать «свою» версию во время конфликта слияния любых файлов в определенном каталоге? - PullRequest
4 голосов
/ 08 марта 2012

Прежде всего, я бы предпочел вообще не проверять сгенерированные файлы, но мой менеджер настаивает. Итак, учитывая эти ограничения, я хотел бы создать ртутные «шаблоны слияния», которые всегда будут брать «свои файлы» во всех каталогах с именем «сгенерировано» в моем рабочем репо. Я прочитал hgrc документацию и связанный пост , и вот как я думаю, он должен выглядеть следующим образом:

[merge-patterns]
generated/** = internal:other #keep their files

И это помещено в мой корневой файл .hg / hgrc. Когда я запускаю обновление hg с конфликтами слияния, вот что я получаю:

> hg update
couldn't find merge tool internal:other #keep their files specified for generated/**
merging generated/file.sv

Итак, я изменил «шаблоны слияния», чтобы они выглядели так:

[merge-patterns]
**/generated/** = internal:other #keep their files

И вот что я получаю:

> hg update
merging generated/file.sv

Итак, я больше не получаю предупреждение «Не удалось найти инструмент слияния внутри: другое», но оно все еще пытается объединить созданные файлы.

Есть идеи, как заставить это работать?

Дополнительные примечания:

  1. Мы используем Mercurial версии 1.7.5, поскольку у нас были проблемы с более новыми версиями и подпунктами.
  2. Я работаю с подпунктами, вот как выглядит структура моего основного репо:

enter image description here

1 Ответ

4 голосов
/ 08 марта 2012

Я считаю, что проблема просто комментарий! Mercurial ищет инструмент с именем

internal:other #keep their files

и этого вряд ли будет :-) Попробуйте переместить комментарий в строку выше:

[merge-patterns]
# keep their files
generated/** = internal:other

Я не проверял это, но я думаю, что вам все еще нужен первый шаблон, который вы использовали - предупреждение исчезло со второй попытки, потому что шаблон больше не соответствует внутри подпункта . Даже когда вы начинаете объединение с верхнего уровня, вложенные репозитории объединяются так, как если бы внутри подпрепарата было выполнено hg merge.

...