Итак, я уже знаком с этим:
http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.htmlКаков наилучший способ обработки ветвей ветвей поставщиков в SVN?
Мой вопрос, как вы справляетесь ветвь поставщика, который имеет как стабильный релиз и альфа/бета-ветвь, которую вы хотите включить?
Итак, скажем, вы следуете оригинальному примеру из книги SVN. Вы бы:
SVN: // локальный/дома/СВН/поставщика/libcomplex/ток
СВН: //localhost/home/svn/vendor/libcomplex/1.0
SVN: // локальный/дом /svn/vendor/libcomplex/1.1 (такой же, как ток)
Теперь у вас есть две версии вашей собственной «известково» приложение:
известково (это, по существу ствол == известково 2,0)
известково -1.0 (опубликовано для публики)
Предположим, что calc-1.0 использует libcomplex 1.0 и calc (в багажнике) используется libcomplex 1.1, который все еще разрабатывается.
В libcomplex 1.0 есть ошибка, и выпущена новая версия для исправления этой ошибки: libcomplex 1.0.1. Составители libcomplex также включили это исправление в libcomplex 1.1.
Вы не готовы к выпуску calc 2.0, поэтому вам нужно интегрировать libcomplex 1.0.1 в свою ветку поставщика и затем обновить calc-1.0, чтобы сделать исправление ошибок.
Куда деваться?
Вы не можете поместить его в svn: // localhost/home/svn/vendor/libcomplex/current, так как 1.1 там живет.
Вы скопируете svn: //localhost/home/svn/vendor/libcomplex/1.0 в svn: //localhost/home/svn/vendor/libcomplex/1.0.1, а затем принесете новую версию? Таким образом, вы можете использовать svn для объединения diff между 1.0 и 1.0.1 в calc-1.0.
В моем предыдущем примере у меня есть ветвь для моего выпуска: calc 1.0. Папки поставщика не содержатся под calc. Вы предполагаете, что/vendor также разветвлен? Чтобы быть ясным, вот пример, который я описываю: /vendor/libcomplex/ /calc/trunk/ /calc/branches/1.0/ Ваше предложение не использовать «текущий» и использовать структуры папок не позволит должным образом объединить изменения между версиями в багажник, тем самым побеждая цель. Вам нужна эта история изменений, чтобы разрешить слияние изменений в тулбар, где вы изменили исходный источник поставщика. –
Мой подход к работе, когда все, что вы делаете, это использование выпущенных версий. Если вы также изменяете источник, тогда может быть полезно обработать код поставщика как ваш собственный код (т. Е. Включить его в свою ветку соединительной линии, а не иметь поставщика как отдельную папку). Однако ваш подход имеет смысл. Создайте ветку vendor/libcomplex/1.0.1, объедините любые настройки и обновите выпуск calc 1.0, чтобы указать на vendor/libcomplex/1.0.1, затем отпустите calc 1.0.1. Всякий раз, когда libcomplex 1.1 готов, объедините настройки, постройте calc2.0, и вам хорошо идти. Багажник никогда не указывает на 1.0.1 –