Вы можете использовать один из ThreeWayMerger
s, чтобы определить, могут ли быть объединены два коммита.
По умолчанию MergeCommand
использует рекурсивный метод слияния. Поэтому вы, вероятно, захотите использовать это слияние.
Убедитесь создать в ядре слияния (установить второй параметр newMerger
к true
). В этом режиме слияние не касается рабочего каталога.
ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger(repository, true);
boolean canMerge = merger.merge(headCommit, commitToMerge);
Метод объединения возвращает true
если данные фиксаций могут быть объединены и false
иначе.
Базовая фиксация может быть явно задана с помощью setBase
или используется общий предок.
ResolveMerger
и RecursiveMerger
также предоставляют методы для запроса того, какие файлы (файлы) не могут быть объединены.
Я вижу, что вы новичок в SO. Если вы чувствуете, что ответ решил проблему, отметьте ее как «принятую», нажав зеленую галочку. Это помогает сосредоточиться на старых постах, у которых до сих пор нет ответов. –
Я понимаю, что @ RüdigerHerrmann, но спасибо за совет. Я еще не видел вашего ответа. Я пробовал нечто подобное, что я нашел в другом вопросе SO, в котором упоминались классы тестирования JGit. Кажется, что, пройдя по этому пути, я могу получить то, что хочу. Я отредактировал свой вопрос, поэтому представляю ближайший из моих целей. –
Пожалуйста, сначала ** ** искать решения до [задавать вопросы] (http://stackoverflow.com/help/how-to-ask), ответ на который вам не нужен, чтобы не тратить время на других. На самом деле ваше редактирование - это другой вопрос. Создайте новую запись, если у вас есть другое задание. –