Я разработал своего рода шаблон веб-сайта с брошюрой, на котором базируется большинство веб-сайтов моих клиентов. Шаблон и производные сайты хранятся вместе в репозитории Subversion. Передовой (но стабильный) код живет в /trunk
; и у каждого веб-сайта есть собственная ветка, чтобы упростить настройку. Теперь, когда я приближаюсь к выпуску 2.0, я чувствую, что мне нужно примириться с тегами.
Насколько я понимаю, значимые релизы нужно маркировать. Тег - это просто указатель на конкретную версию, и его нельзя никогда изменять. Итак, предположим, у меня есть тег для версии 2.0 моего шаблона, и в стволе уже есть новый код. Если я хочу создать новую ветку на основе кода 2.0, как мне это сделать?
Могу ли я отойти от /tags/2.0
? Это не может быть правдой. Где бы я зафиксировал свои изменения? Мне пришлось бы сознательно обойти родословную моей ветви. Должен ли я вручную искать ревизию ствола, которой соответствует /tags/2.0
, а затем разветвлять эту ревизию в стволе? Это кажется ... громоздким. Я считаю, что до недавнего времени Subversion даже не хранила эту информацию!
Ясно, что я упускаю кое-что принципиальное. Краткое изложение того, как на самом деле используются теги (в отличие от что они em >) было бы полезно. Спасибо.
Изменить: где я сказал «ответвление /tags/2.0
», я имел в виду «проверить /tags/2.0
». Но эта ошибка была и ответом на мой вопрос. По какой-то причине я никогда не думал о копировании тега. Глупо, правда? Но на мой взгляд, теги были «окончательными».
И, кстати, я полностью понимаю, что теги - это просто соглашение. Меня смущала сама конвенция, а не ее основная реализация.