Основные операции в Subversion

Операция Официальный клиент TortoiseSVN
checkout
(создание новой рабочей копии репозитария) (*)
svn checkout https://svn.local/svn/test/trunk
(svn co [URL])
  1. Create directory
  2. Navigate it with explorer
  3. Click Right Mouse Button
  4. Choose "SVN Checkout" from pop-up menu
  5. Fill "URL" field and other values
  6. Click OK
update
(обновление рабочей копии) (*)
svn update (svn up)
  1. Right Mouse Button
  2. "SVN Update" in pop-up menu
commit
(запись изменений рабочей копии в репозитарий) (*)
svn commit (svn ci)
  1. Right Mouse Button
  2. "SVN Commit" in pop-up menu
stat
(просмотр состояния рабочей копии) (*)
svn status (svn st)
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Check for modification" in pop-up menu
diff
(просмотр изменений)
svn diff (svn di)
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Create patch" in pop-up menu
switch
(переключение рабочей копии на другой URL) (*)
svn switch [новый URL] (svn sw)
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Switch" in pop-up menu
  4. Enter new URL
  5. Click OK
add
(добавление файла/каталога в рабочую копию)
svn add [файл/каталог]
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Add" in pop-up menu
  4. Select files
  5. Click OK
remove
(удаление файла/каталога из рабочей копии) (*)
svn remove [файл/каталог] (delete, del, remove, rm)
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Delete" in pop-up menu
copy
(копирование - например, создание ветки / тага) (*)
svn copy [URL1] [URL2] (svn cp)
svn copy \
  https://svn.local/svn/test/trunk \
  https://svn.local/svn/test/branches/private_vnaum
          
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Branch/Tag" in pop-up menu
  4. Enter new repository URL
  5. Enter commit message
  6. Click OK
revert
(откат локальных изменений)
svn revert
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Revert" in pop-up menu
log
(просмотр истории изменений)
svn log
  1. Right Mouse Button
  2. "TortoiseSVN" in pop-up menu
  3. "Show Log" in pop-up menu
merge
(применение на рабочую копию изменений из репозитария) (*)
svn merge -r N:M SOURCE[@REV] To merge revisions you need to go to a working copy of the branch in which you want to receive the changes, often the trunk. Select Merge... from the context menu.
  1. In the From: field enter the full folder url of the branch or tag containing the changes you want to port into your working copy. You may also click ... to browse the repository and find the desired branch.
  2. Because you are porting a range of revisions from the same branch into your working copy, make sure the Use "From:" URL checkbox is checked.
  3. In the From Revision field enter the initial revision number. This is the revision before the changes you want to merge. Revision numbers are auto-incremented after each commit. You want to start merging the changes before the revision number is auto-incremented. For example, if your log messages look something like this:
    Rev Comments
    39. Working on MyBranch
    38. Working on trunk
    37. Working on MyBranch
    36. Create branch MyBranch
    35. Working on trunk
    34. Working on trunk
             ...
                

    If you now want to merge the changes from MyBranch into the trunk you have to choose 36 as the From Revision. Not 37 as you might think.

    The easiest way to find the revision you need is to click on Show Log, as this will list recent changes with their log comments. Select the revision you require in the Show Log dialog, then click on OK.

  4. In the To Revision field enter the last revision number in the range you want to merge. Often this will be the HEAD revision, although it doesn't need to be - you can just want to merge a single revision.
  5. Click OK to complete the merge.

Официальный клиент

Брать с http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe .

Замечательно описан в книге Version Control with Subversion. Одинаково хорошо работает под всеми ОС. Именно этот клиент будет установлен на боевых и разработческих серверах. Имеет встроенную справку для всех команд (для "svn checkout" - "svn help checkout" и т. д.).

Настоятельно рекомендую начать именно с этого клиента.

TortoiseSVN

Брать с http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.1.7992-win32-svn-1.4.2.msi?download

Популярный windows-клиент. Выполнен в виде windows shell extension (надо тыкать правой кнопкой). Содержит весьма неплохой help в виде chm. С выдержками из Великой Книги Version Control with Subversion.


Примечания:

checkout:

Очевидно, вы можете достать любой каталог / любую ветку из репозитария. Вы даже можете вытащить ВЕСЬ репозитарий (svn co https://svn.local/svn/test/), но тут осторожнее - если в репозитарии cheap copies (хранятся только изменённые файлы), то на диске у вас окажутся все ветки кода. Десять веток по сто мегабайт - гиг.

update:

update, как и почти все операции, по умолчанию работает на текущем каталоге рекурсивно. Как и почти любой операции, ему можно явно указать что и докуда обновлять: svn up -r 10 file - обновить файл file до 10 ревизии. Так же достаются и старые версии.

commit:

По умолчанию коммитит все изменённые файлы в текущем каталоге и глубже. Можно явно перечислить, какие файлы/каталоги вы желаете закоммитить. Перед коммитом настоятельно рекомендую с помощью svn diff ещё разок пересмотреть ваши изменения - и поподробнее описать из в commit message. Вот так я сам делаю коммиты: svn diff | gview - ; svn ci

stat:

Там много буковок разных. Если вкратце, то M - изменённый файл, A - добавленный, D - удалённый. Полностью тут: http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.examine.status

switch:

Посмотрите, чем завершилась эта операция! Весьма неприятно внести нехорошие изменения не на ту ветку.

remove:

Эта операция может быть и server-side, для этого ей надо указать не путь в рабочей копии, а URL в репозитарии.

copy:
Эта операция может быть и на рабочей копии, для этого ей надо указать не URL в репозитарии, а путь в рабочей копии.

merge:

См. "Курс Молодого Бойца".