Я относительно новичок в Subversion, надеясь получить информацию от более опытных людей. Мы используем подход, заключающийся в том, чтобы выполнить основную часть работы по разработке (новые функции и исправления ошибок) в стволе и при необходимости объединить исправления ошибок в ветки выпуска. При таком подходе разработчики вообще не будут кодировать непосредственно ветки релизов, а только сливаются в них.
Моей первой мыслью было, что, возможно, разработчикам вообще не нужна рабочая копия веток релиза, и, возможно, изменения в стволе могут быть объединены в ветки непосредственно в репозитории. Но я быстро понял, что Subversion работает не так - вам нужна рабочая копия для объединения.
Таким образом, моя следующая мысль была о том, что разработчики могут по-прежнему сохранять только одну копию кодовой базы локально, указывать ее на ствол и делать svn-переключение на ветку релиза, когда им нужно выполнить слияние. Пара потенциальных проблем, которые я мог предвидеть:
- Может быть слишком легко забыть svn переключиться обратно на транк после слияния.
- Разработчик может иметь незафиксированные изменения в своей рабочей копии (что-то, над чем они работали в будущем выпуске до того, как его прервали для работы над исправлением ошибки), которые все еще будут присутствовать при переключении svn и случайно объединить изменения в ветке релиза.
Если бы я собрал несколько сценариев для этого процесса, я мог бы предотвратить появление проблемы № 1, но № 2 беспокоит меня немного больше. Мне интересно, не нарушит ли это подход.
В двух словах, мой вопрос таков: при объединении исправлений ошибок из ствола в ветку релиза, где у разработчика еще нет рабочей копии ветки релиза, считается ли это лучшей практикой для разработчика Переключатель SVN, чтобы сделать слияние, или проверить рабочую копию ветки релиза в другом месте локально? Заранее спасибо!