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