Попробуйте синтаксис @PEGREV
:
C:\>svn help switch
switch (sw): Update the working copy to a different URL.
usage: 1. switch URL[@PEGREV] [PATH]
2. switch --relocate FROM TO [PATH...]
Обновление
Обратите внимание, что системы branches
, tags
и trunk
являются всего лишь соглашением об именах. В Subversion нет ничего особенного: это только каталоги. Итак, у вас есть это:
r1: Add: /site/
Add: /site/css
Add: /site/img
Repo:
/site/
/site/css
/site/img
r2: Add: /branches
Add: /tags
Add: /trunk
Repo:
/branches
/site/
/site/css
/site/img
/tags
/trunk
r3: Copy: /site/ to /trunk
Delete: /site/
Repo:
/branches
/tags
/trunk
/trunk/site/
/trunk/site/css
/trunk/site/img
Если у вас есть рабочая копия, указывающая на /site r1
, вы не можете переключить ее /trunk/site r1
: этот путь не существует в дереве каталогов r1.
Как только вы решите выпустить новую версию, скажем, r4, вы сможете переключиться на /trunk/site r4
; не раньше.
ИМХО, вам, вероятно, следует создать ветвь (например, live
или release
) и заставить действующий сервер указывать на его последний выпуск. Когда вы хотите добавить новые изменения, вы объединяетесь с этой веткой.