Притом, что эти команды используются не так часто как те которые рассматривались ранее в этой главе, иногда эти команды вам все-таки понадобятся.
Когда 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 это быстрый способ скопировать не версионированное дерево файлов в хранилище, Создавая при необходимости промежуточные директории.
$ 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) дерева файлов.