Экспорт рабочей копии Subversion

Иногда вы желаете скопировать ваше рабочее дерево без всех этих папок .svn, например, для создания файла архива ваших исходных кодов, или для экспорта на веб-сервер. Вместо того, чтобы выполнить копирование и после этого удалять папки .svn вручную, TortoiseSVN предлагает команду TortoiseSVNЭкспорт.... Экспорт из источника, заданного адресом URL, и экспорт из рабочей копии, обрабатывается немного по-разному.

Рисунок 5.47. Диалог Экспорт-из-URL

Диалог Экспорт-из-URL


Если вы выполняете эту команду на неверсированной папке, TorotiseSVN предполагает, что выбранная папка является целевой, и открывает диалог для ввода URL и ревизии, из которых необходимо произвести экспорт. В этом диалоге присутствуют опции, при помощи которых можно экспортировать только папку верхнего уровня, пропустить внешние ссылки, и задать тип завершения строк для файлов, у которых установлено свойство svn:eol-style.

Конечно же, вы также можете экспортировать прямо из хранилища. Воспользуйтесь обозревателем хранилища для перехода к соответствующему поддереву в хранилище, после чего выберите Контекстное менюЭкспорт. Вы получите описанный выше диалог Экспорт из URL.

Если выполнить эту команду на рабочей копии, вас попросят указать место для сохранения чистой рабочей копии без папок .svn. По умолчанию, экспортируются только версированные файлы, но вы можете при помощи флажка Экспортировать также и неверсированные файлы включить также все неверсированные файлы, существующие в вашей рабочей копии и не существующие в хранилище. Внешние ссылки, заданные через svn:externals, могут быть опущены при необходимости.

Другой способ сделать экспорт из рабочей копии - правое перетаскивание папки с рабочей копией в новое место путём выбора Контекстное менюSVN Экспортировать сюда или Контекстное менюSVN Экспортировать всё сюда. Второй пункт включает также и неверсированные файлы.

Если целевая папка при экспорте из рабочей копии уже содержит папку с таким же именем, как и экспортируемая, вам будет дана возможность выбора: перезаписать ли существующее содержимое, или же создать новую паку с автоматически генерируемым именем, например, Целевая папка (1).

Выведение рабочей копии из-под управления версиями

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

Решение неожиданно простое - экспорт папки в саму себя! TortoiseSVN обнаруживает этот специальный случай и спрашивает, не желаете ли вы разверсировать рабочую копию. При ответе да управляющие папки будут удалены, и у вас будет простое неверсированное дерево папок.