2012-04-16 4 views
2

Мы объединяем файлы Maven pom.xml из одного хранилища в другой.Меркуриальное слияние - автоматическое слияние определенных шаблонов конфликтов

В pom.xml файлы перечисляют версию в таком виде:

<version>5.0.17-SNAPSHOT</version> 

Где у нас есть конфликт на этой линии, мы всегда хотим использовать версию локального файла конфликта. Есть ли способ автоматически взять локальную версию файла изменения?

Для любых других конфликтов мы хотели бы продолжать использовать стандартный процесс ручного слияния.

ответ

2

Несомненно. Просмотрите страницу wiki-страницы Merge Tool Configuration, и вы увидите, что что-то вроде этого должно сделать это:

[merge-patterns] 
pom.xml = internal:local 
+0

Право. Но это будет работать на весь файл pom.xml. Мы просто хотим применить это к одному типу конфликта в файлах pom.xml - ' xxx' –

+0

А, я прочитал «для любых других конфликтов» как «для любых других файлов, которые конфликтуют» –

+2

Вы можете легко написать слияние -pom.sh с логикой вроде: если ** только ** конфликты - это '' строки, то используйте internal: local, else запустите инструмент ручного слияния. Это спасло бы вас от просмотра инструмента слияния в общем случае, когда единственными изменениями были версии. С некоторой дополнительной работой вы можете пропустить свой скрипт и «выбрать локальную» строку, когда строка будет «» и ** затем ** запустить слияние на уже частично объединенной строке, но вы, вероятно, возвращается с таким уровнем сложности. –

Смежные вопросы