Как мне удалить версии с тегами svn с сервера и сохранить их в репозитории?

#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, но я хотел бы использовать ее в качестве потенциального решения.