Subversion и переключение между тегами - PullRequest
5 голосов
/ 11 октября 2008

Моя автоматизированная система развертывания обновляет последнюю версию моего сайта через подрывную деятельность. Вместо того, чтобы мой действующий сайт указывал на транк (что всегда является почти незавершенной версией), у меня есть действующий сайт, указывающий на тег.

например. Я работаю над транком, и когда мой v1.0 закончен, я создаю тег с именем 1.0 и делаю проверку этого тега, который затем является моим живым сайтом. Теперь я продолжаю работать над транком, и через некоторое время появляется версия 2.0. Я создаю тег с именем 2.0 и хочу, чтобы мой живой сайт напоминал этот тег 2.0.

Я мог бы стереть текущий сайт и проверить этот тег 2.0. Что звучит достаточно легко, однако. Мой сайт размером около 1 ГБ, потому что в нем есть все виды документов PDF и видео. Я могу с уверенностью сказать, что большую часть времени я делаю обновления, это будет копировать изменения или исправлять ошибки. Это означает, что, возможно, только 1% моего сайта изменяется за обновление. И так как мой контроль версий доступен только для моего веб-сервера через http-соединение вне сайта, это означает, что мне нужно загружать весь этот сайт снова и снова.

Есть ли простой способ переключаться между тегами, а Subversion обновляет только различия между этими тегами?

Ответы [ 3 ]

7 голосов
/ 11 октября 2008

На самом деле есть функция переключения, которая делает именно это. Я использую TortiseSVN, который является оболочкой / графическим интерфейсом Windows для Subversion, поэтому я не знаком с тем, как сделать это вручную, но похоже, что это должно помочь:

http://svnbook.red -bean.com / о / 1,1 / ch04s05.html

6 голосов
/ 11 октября 2008

Командная строка: svn switch URL

Используйте переключатель справки SVN для более подробной информации.

Однако я рекомендую делать все наоборот. Ваш производственный сайт всегда находится на внешней линии, в то время как вы разрабатываете ветки, которые объединяются с внешней веткой, когда они готовы к выпуску. После любого выпуска вы можете сделать тег для исторических целей. После слияния вам нужно только выполнить svn-обновление, чтобы ваш сайт запустил новый код.

DivMod доводит эту идею до логического завершения, создавая ветку для каждого работающего вопроса / тикета. Вы можете прочитать описание их системы ; он предлагает несколько убедительных аргументов.

1 голос
/ 11 октября 2008

Я использую аналогичные настройки, за исключением того, что я использую живую ветку, а не тег. Это больше работы для фиксации, так как теперь мне нужно объединить изменения из транка в живую ветку, но затем я могу просто выполнить «svn up» в webroot для его обновления. Это также дает мне немного лучший контроль, если я хочу объединить выбранные изменения из разных веток в живую.

Если бы я делал это снова, я бы использовал Mercurial (или аналогичный), так как ветки гораздо проще поддерживать, но вышеописанная методика работала для 3-х живых сайтов уже около двух лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...