Как избежать сложных слияний в Subversion? - PullRequest
8 голосов
/ 12 ноября 2009

Я новичок в Subversion (SVN), работающем в среде Visual Source Safe (VSS). В VSS человек, редактирующий файл, извлекает файл и блокирует других пользователей от редактирования через Visual Studio. Я понимаю, что SVN - это параллельная модель, позволяющая нескольким людям работать над одним файлом, а затем объединять изменения вместе. У меня вопрос такой:

  1. Каков наилучший способ избежать того, чтобы пользователи редактировали один и тот же файл (записывая тонны и тонны кода) и сталкивались со сложным слиянием для своих изменений или, что еще хуже, записывали тонну кода только для того, чтобы обнаружить, что файл заблокирован другим пользователем?

  2. Есть ли способ уведомить пользователя при получении файла о том, что он в данный момент редактируется другим пользователем или в данный момент заблокирован другим пользователем?

Другие детали:

Использование сервера VisualSVN в качестве сервера SVN.
Использование клиентов TortoiseSVN и AnkhSVN.

Ответы [ 11 ]

0 голосов
/ 12 ноября 2009

Краткий ответ:

  1. Обновление часто. Возвращаюсь рано, проверяю часто. Если вы работаете над чем-то дольше (более одного или двух дней), подумайте о создании ветви функций.
  2. Нет.

Несколько более длинный ответ:

Если более одного разработчика вносят «тонны и тонны изменений» в один и тот же файл, что-то не так с тем, как работают ваши разработчики, или с тем, как функции распределяются по разным файлам. Я работал с CVS и SVN в командах разных размеров, и в IME очень мало случаев, когда слияние становится реальной проблемой. (Обычно это изменения основных сервисов, таких как строки, ведение журналов, обработка ошибок и т. Д., Которые требуют изменения практически всего кода. Такие случаи требуют некоторого взаимодействия с человеком и планирования, чтобы все прошло гладко.)

...