Напротив "svn up"? - PullRequest
       2

Напротив "svn up"?

0 голосов
/ 20 марта 2012

У меня есть SVN-репозиторий на сервере, в / var / svn / repository, и несколько рабочих копий на сервере, одна «промежуточная» и одна «живая».Локальные рабочие копии dev отправляются на сервер с помощью 'svn commit' обычным способом.

У меня есть пара простых двухстрочных сценариев на сервере, которые идут в соответствующее местоположение и выполняют команду 'svnобновить », чтобы обновить содержимое до последней версии репозитория.

  • uplive:

    cd /usr/local/lib/Catalyst/proj/trunk
    svn up && echo 'go to proj.example.com to see changes'
    
  • upstage:

    cd ~/Catalyst/svn/proj
    svn up && echo 'go to proj.example.com:3001 to see changes'
    

Я хотел бы сделать пару сопутствующих скриптов 'downstage' и 'downlive', но наиболее близкая вещь, которую я могу найти в svn, требует переменного аргумента для номера ревизии: примеры, которые я нашел, включают такие вещи, как

$ svn merge -r HEAD: nnnn.

или

$ svn merge -c -303 http://svn.example.com/repos/calc/trunk --- обратное слияние r303 в 'integer.c ':

Я пытаюсь придумать простой способ сделать "D'Oh!"функция, то есть отмена последнего обновления SVN, которое может быть вызвано с помощью скрипта: например, ssh theServer downstage для отмены последнего 'svn up' и возврата системы live / staging к предыдущей версии.

Без сомнения, этоМожно получить последнюю версию из SVN, забрать ее и попросить SVN выполнить обратное слияние, но кажется, что это настолько очевидно, что хотеть сделать это, я немного удивлен, что нет более быстрого / простого способа.

Ответы [ 3 ]

4 голосов
/ 20 марта 2012

Как насчет обновления предыдущей версии с помощью:

svn up -r PREV
2 голосов
/ 20 марта 2012

Обновление рабочей копии ни в коем случае не является детерминированной операцией. Ваша рабочая копия может находиться в произвольном состоянии до и после. Если вы хотите отменить обновление, вам сначала нужно создать резервную копию. Достаточно чего-нибудь простого: tar + gz.

Если вы хотите делать предсказуемые обновления только для svn, вам, вероятно, придется создавать ветки и фиксировать / объединять в них вещи перед обновлением. Конечно, это не позаботится ни о чем не версированном материале.

1 голос
/ 20 марта 2012

Я думаю, что вы действительно хотите что-то похожее на git stash - возможность хранить ваши произвольные изменения рабочей копии и изолировать их от обновлений из хранилища.

Вот один из способов сделать это:

http://www.benrady.com/2009/09/svn-replacement-for-git-stash.html

и некоторые скрипты:

http://www.blisted.org/blog/bin/svn/stash

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