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