CVS и Subversion имеют удобную функцию слияния, поэтому при обновлении исходного файла, который вы изменили, он объединяется с изменениями, внесенными другими в один и тот же файл.
Однако, если ваши изменения и другие несовместимы - как правило, если вы оба изменили одни и те же части кода, это создаст конфликт. Оба фрагмента исходного кода будут включены в объединенный файл, и вам нужно вручную определить, какие изменения сохранить. Пока все хорошо.
Моя проблема в том, что некоторые из нас используют разные среды разработки (Netbeans versus vi, если вы должны знать), а Netbeans имеет функцию автоотделания, которая переустанавливает код. Поэтому, когда мы объединяем изменения, мы иногда получаем огромные конфликты, которые в основном вызваны простыми изменениями в отступе и не являются подлинными изменениями в коде. Часто они создают сотни строк видимых конфликтов, которые должны быть разрешены вручную, но обычно они сводятся к нескольким строкам реальных изменений. Аналогичная ситуация возникает, когда кто-то редактор меняет unix на новые строки Windows или наоборот.
Итак - могу ли я установить merge, чтобы игнорировать эти "конфликты" при сравнении двух версий? Diff имеет параметр -ignore-space-change или -b, и я хотел бы иметь по существу ту же функцию, что и в cvs или svn. Мы используем каждый инструмент для разных проектов, поэтому я был бы счастлив получить ответ для одного или обоих.
Две последние заметки:
- ясно, что процесс слияния должен был бы сделать произвольный выбор в отношении того, какую версию пробела использовать в объединенном файле. Я в порядке с этим - мы всегда можем переформатировать его позже.
- Я мог бы избежать некоторых из этого, будучи более дисциплинированным и проверенным чаще - признанным и понятным. Но я не совершенен.