#svn
#svn
Вопрос:
Я перенял веб-приложение, использующее Subversion. Когда код выпущен, в репозитории создается тег, а затем на сервере используется команда ‘svn update’ для обновления кода выпуска до последней версии.
Этот процесс отлично работает, но он продолжается уже более 2 лет, и теперь на веб-сервере более 100 тегов, что составляет более 10 гигабайт. Раздел, в котором они находятся, заполняется, и я хотел бы удалить старые теги и сохранить только текущую помеченную версию.
Насколько я понимаю, теги содержат информацию о версиях и зависят друг от друга. Я попытался просто удалить старые теги с сервера, но как только я запускаю «svn up», они возвращаются. Возможно ли то, что я хочу сделать? Могу ли я иметь только самый последний тег на сервере или мне нужно начать думать о новом процессе развертывания?
Комментарии:
1. вы не можете работать
svn up
в репозитории, так что, я думаю, вы хотите сказать, что у вас есть рабочая копия со всеми тегами внутри?2. Да, я думаю, именно так это и было реализовано. Я вроде как новичок, когда дело доходит до svn. Я буду придерживаться проверки последнего тега и переключения на него.
Ответ №1:
Почему у вас удалены все ваши теги? Извлеките текущий тег с svn co http://repo/tags/v1.0
помощью Когда вы хотите обновить веб-сервер, вы переключаетесь на новый тег, svn switch http://repo/tags/v1.1
Комментарии:
1. Вот каким был бы мой ответ, если бы он ответил на мой вопрос «да» :-). Основная практика: не проверяйте выше, чем магистраль, ветви / бранча, теги / тагА
Ответ №2:
Вы можете удалить теги с помощью svn rm http://repo/path/to/tag
. Это удаляет их из HEAD, но, очевидно, они все еще находятся в истории и могут быть восстановлены при необходимости. После этого ваш svn up
больше не будет извлекать старые теги и удалит удаленные из своей рабочей копии.
Другим возможным решением является наличие «движущегося тега», например tags/CURRENT
, который всегда указывает на последний тег. Ваш процесс выпуска выполнит svn cp new-prod-tag http://repo/tags/CURRENT
. Тогда вашему серверу потребуется только проверить и обновить этот ТЕКУЩИЙ тег, а не все теги. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: это не поощряемая практика с SVN, но я хотел бы использовать ее в качестве потенциального решения.