git merge: фильтруйте файлы, чтобы избежать глупых конфликтов (таких как пробелы или изменения регистра) - PullRequest
7 голосов
/ 01 февраля 2011

Я в настоящее время нахожусь в очень сложном слиянии в git, и у меня много конфликтов. Конфликт связан с двумя исходными файлами Ada.

Я хотел бы сделать слияние, которое бы игнорировало как изменения пробелов, так и изменения регистра (поскольку язык Ada не чувствителен к регистру). Вы знаете, есть ли способ заставить git игнорировать какие-либо изменения перед слиянием?

Мое решение в настоящее время - запустить красивую печать GNAT в обеих ветках до слияния, но если бы в git было общее решение, это мне очень помогло бы.

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011

из заметок о выпуске из git 1.7.4:

* «Рекурсивная» стратегия также научилась игнорировать различные пробелы изменения; наиболее заметным является -Xignore-space-at-eol.

Я не знаю, существует ли стратегия игнорирования изменений регистра

0 голосов
/ 27 июля 2014

Что касается проблемы с кейсом, которая является проблемной для нечувствительной к регистру ОС во время слияния, это не будет проблемой с git 2.0.1+ (25 июня 2014 г.).

См. commitae352c7f37ef2098e03ee86bc7fd75b210b17683 от Дэвид Тернер (dturner-tw)

merge-recursive.c: исправлена ​​ошибка слияния при изменении регистра

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

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

...