2016-07-14 2 views
0

Приносим извинения заранее, если это действительно очевидный вопрос - я новичок в 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 делает ошибку? Есть ли что-то, что я могу сделать, чтобы это не повторилось?

Спасибо!

+1

Я бы предположил, что SVN правильно и исправить. Это не похоже на то, что «Это ошибка Subversion» собирается достать вас куда угодно. Лично я удалю эти блоки комментариев. Вот для чего предназначена система управления исходным кодом. Попросите разработчиков добавить описательную проверку в комментариях. – duffymo

+0

Спасибо за ответ (и @Bathsheba). Мы используем сообщения о фиксации SVN с отдельными входами, поэтому я согласен, что блоки комментариев в верхней части кода не нужны. Это отсрочка до того, как мы использовали SVN. Мне было просто интересно, есть ли способ предотвратить возникновение этих конфликтов, поскольку они просты, но требуют много времени для исправления, когда они происходят так часто. – djchallis

+0

Да. удалите комментарии. Прекратите использовать их. – duffymo

ответ

2

Это поведение по дизайну.

Учтите использование SVN таким образом, чтобы оно было предназначено для использования. Разработчики обязуются использовать логин, специфичный для них, и настаивают на фиксации сообщений. Там мало смысла внедрять это в источник программы.

Смежные вопросы