Другие полезные команды

Притом, что эти команды используются не так часто как те которые рассматривались ранее в этой главе, иногда эти команды вам все-таки понадобятся.

svn cleanup

Когда Subversion изменяет рабочую копию (или любую информацию в области .svn) она пытается делать это безопасно настолько, насколько это возможно. Перед изменением рабочей копии Subversion записывает свои намерения в лог файл. Затем для выполнения запрошенных изменений она выполняет команды из лог файла. И в конце Subversion удаляет лог файл. Архитектурно, это напоминает журналируемую файловую систему. Если работа Subversion была прервана (в результате того, что процесс был убит или, например, из-за машинного сбоя) лог файлы остаются на диске. Перезапустив выполнение лог файлов, Subversion может завершить предварительно начатые операции и рабочая копия снова вернется в согласованное состояние.

Что собственно делает svn cleanup: в рабочей копии выполняет поиск и выполнение незавершенных лог файлов, удаляя походу блокировки. Если Subversion когда-нибудь говорила вам о том, что часть рабочей копии «заблокирована» тогда вам нужно запустить эту команду. Кроме того svn status покажет для заблокированных элементов букву L:

$ svn status
  L    somedir
M      somedir/foo.c

$ svn cleanup
$ svn status
M      somedir/foo.c

svn import

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

$ svnadmin create /usr/local/svn/newrepos
$ svn import mytree file:///usr/local/svn/newrepos/some/project \
             -m "Initial import"
Adding         mytree/foo.c
Adding         mytree/bar.c
Adding         mytree/subdir
Adding         mytree/subdir/quux.h

Committed revision 1.

В предыдущем примере выполняется копирование содержимого директории mytree в директорию some/project хранилища:

$ svn list file:///usr/local/svn/newrepos/some/project
bar.c
foo.c
subdir/

Обратите внимание на то, что после завершения импорта, оригинальное дерево файлов не конвертируется в рабочую копию. Для того, чтобы начать работать вам необходимо создать новую рабочую копию (svn checkout) дерева файлов.