Использование шкалы тофу с SVN - PullRequest
5 голосов
/ 21 августа 2009

Кто-нибудь пробовал использовать шкалу тофу, описанную в Practical Perforce Лоры Вингер вместе с svn?

Шкала тофу говорит нам, как распространять изменения между ветвями (кодовыми линиями). Изменения в стабильных ветвях должны быть объединены с менее стабильными ветвями (фирма-в-софт), а изменения в менее стабильных ветвях должны быть скопированы в стабильные ветви (со-в-фирму). См. Как программное обеспечение развивается

Это приводит к тому, что ветки разработки объединяют изменения, внесенные в более стабильные ветки, и, следовательно, улучшают код в ветке разработки, внося новые разработки и исправления ошибок.

Рисунок взят из Практического выступления (ISBN 10: 0-596-10185-6) http://dl.getdropbox.com/u/136976/tofu%20scale.png

Так что вопрос: вы можете сделать это в SVN и если; как вы обновляете от родителя при работе на ветке? Из CVS я знаю, что обновление из одной ветки в другую доставляет вам массу проблем, когда вы хотите объединить свои изменения с родительской ветвью (часто являющейся основной линией)

Ответы [ 3 ]

3 голосов
/ 10 сентября 2009

Читая больше по теме, я нашел то, что, как я считаю, является точным описанием того, что необходимо для того, чтобы сделать этот вид распространения изменений между ветвями в SVN.

Описано в книге Контроль версий с помощью Subversion . C. Michael Pilato et al. в подглаве Основное объединение - Синхронизация ветви

Следующее цитируется в книге.

Subversion знает историю вашей ветки и знает, когда она отделилась от ствола. Чтобы реплицировать последние, самые большие изменения ствола в вашу ветку, сначала убедитесь, что ваша рабочая копия ветки «чистая», что в ней нет локальных изменений, о которых сообщает svn status. Затем просто запустите:

$ svn merge http://svn.example.com/repos/calc/trunk

Как только у вас будет чистая рабочая копия ствола, вы готовы объединить в нее свою ветвь:

$ pwd
/home/user/calc-trunk

$ svn update  # (make sure the working copy is up to date)
$ svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch
$ svn commit -m "Merge my-calc-branch back into trunk!"

Пожалуйста, прочитайте всю главу (и, возможно, даже книгу), прежде чем начать это. Рекомендуется к прочтению.

3 голосов
/ 21 августа 2009
  1. Используйте стандарт trunk/, branches/, tags/ структура
  2. Используйте trunk/ в качестве основной линии
  3. Создание веток для разработки и выпуска в branches/ - вы можете различать их, используя соглашение об именах, или даже заменить branches/ на development/ и release/
  4. Используйте svn merge для выполнения слияний и копий - прочитайте Расширенное слияние сначала
2 голосов
/ 21 августа 2009

Да, вы можете сделать это в Subversion, это более или менее стандартная практика.

Идея состоит в том, чтобы перейти от более стабильного с меньшими изменениями к менее стабильному, чтобы минимизировать несвязанные изменения, которые затруднили бы объединение.

Слияние с основной линией выполняется путем объединения всех изменений из основной линии в ветвь, а затем копирование ветви, которая заменяет основную линию объединенной ветвью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...