Приносим извинения заранее, если это действительно очевидный вопрос - я новичок в SVN. Я сделал все возможное, чтобы найти ответ, но я не могу найти что-либо, что конкретно касается этого.Почему SVN думает, что это конфликт?
У меня возникают частые конфликты при слиянии филиалов только из-за блока комментариев в верхней части программы.
Мы используем блок комментариев в верхней части каждой программы, чтобы объяснить, что представляет собой программа, а также отслеживать изменения. Каждый раз, когда мы меняем программу, мы отмечаем наше новое изменение. Скажем, блок комментариев в прямом эфире программы заканчивается так:
* <developer 1> <date> <comment> *
* ******** END COMMENTS ******** *
Две новые разработчики начинают свои собственные филиалы и добавить свой собственный комментарий ниже разработчика 1. Когда разработчик 2 помещает свой код в прямом эфире, разработчик 3 сливает его обратно в отделение. Я вижу, что это очевидный конфликт, потому что они добавили другую новую строку.
Live:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
Разработчик 3'Отраслевая:
* <developer 1> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
Так разработчик 3 решает сам конфликт. Проблема возникает, когда он пытается объединить свои изменения в Live.
Live:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
Разработчик 3'Отраслевая:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
Конечно, это окончательный сценарий не конфликт? Код разработчика 3 имеет дополнительную строку, поэтому это должно быть простое слияние. Но это не раз будет помечен как конфликт, с этим результатом:
* <developer 1> <date> <comment> *
<<<<<<< .working
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
=======
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
>>>>>>> .merge-right
Так это на самом деле правильный конфликт, или SVN делает ошибку? Есть ли что-то, что я могу сделать, чтобы это не повторилось?
Спасибо!
Я бы предположил, что SVN правильно и исправить. Это не похоже на то, что «Это ошибка Subversion» собирается достать вас куда угодно. Лично я удалю эти блоки комментариев. Вот для чего предназначена система управления исходным кодом. Попросите разработчиков добавить описательную проверку в комментариях. – duffymo
Спасибо за ответ (и @Bathsheba). Мы используем сообщения о фиксации SVN с отдельными входами, поэтому я согласен, что блоки комментариев в верхней части кода не нужны. Это отсрочка до того, как мы использовали SVN. Мне было просто интересно, есть ли способ предотвратить возникновение этих конфликтов, поскольку они просты, но требуют много времени для исправления, когда они происходят так часто. – djchallis
Да. удалите комментарии. Прекратите использовать их. – duffymo