Извлечение рабочей копии

Для получения рабочей копии вам надо произвести извлечение из хранилища.

Выберите в Проводнике Windows папку, в которой хотите разместить вашу рабочую копию. Сделайте правый щелчок для вызова контекстного меню и выберите команду TortoiseSVNИзвлечь..., после чего появится следующий диалог:

Рисунок 5.7. Диалог извлечения

Диалог извлечения


Если ввести имя пока ещё несуществующей папки, то она будет создана.

Глубина извлечения

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

Полностью рекурсивно

Извлекает всё дерево целиком, включая все дочерние папки и подпапки.

Непосредственные потомки, включая папки

Извлекает указанную папку, включая все файлы и дочерние папки, но не включая содержимое дочерних папок.

Только потомки-файлы

Извлекает указанную папку, включая все файлы, но не включая дочерние папки.

Только этот элемент

Извлекает только указанную папку. Не извлекает в неё файлы и дочерние папки.

Рабочая копия

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

Если вы извлекли разреженную рабочую копию (т.е. выбрали для глубины извлечения значение, отличное от полностью рекурсивно), вы можете получить дополнительные неизвлечённые подпапки, используя обозреватель хранилища («Обозреватель хранилища») или диалог проверки на наличие изменений («Локальный и удалённый статус»).

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

В диалоге проверки на наличие изменений, сначала нажмите кнопку Проверить хранилище. Все существующие в хранилище файлы и папки, которые пока ещё не были вами извлечены, будут показаны в диалоге как добавлен отдалённо. Выполните правый щелчок на папке (папках), которую вы желали бы добавить в вашу рабочую копию, и примените команду Контекстное менюОбновить.

Эта возможность очень полезна, когда вы желаете извлечь только некоторые части из большого дерева, но при этом желаете сохранить удобство обновления одной рабочей копии. Предположим, у вас есть большое дерево, в котором есть подпапки от Проект01 до Проект99, и вы желаете извлечь только Проект03, Проект25 и Проект76/ПодПроект. Выполните следующие шаги:

  1. Извлеките родительскую папку с глубиной «Только этот элемент» Теперь у вас еть пустая папка верхнего уровня.

  2. Выберите новую папку и воспользуйтесь пунктом TortoiseSVNОбозреватель хранилища для отображения содержимого хранилища.

  3. Выполните правый щелчок на Проект03 и Контекстное менюОбновить элемент до ревизии.... Не изменяя настройки по умолчанию, нажмите на ОК. Теперь эта папка у вас полностью заполнена.

    Повторите ту же процедуру для Проект25.

  4. Перейдите к Проект76/ПодПроект и сделайте то же самое. На этот раз обратите внимание, что в папке Проект76 нет ничего, кроме ПодПроект, который полностью заполнен. Subversion создала для вас все промежуточные папки, не заполняя их.

Глубина рабочей копии не может быть уменьшена

После того, как вы извлекли рабочую копию на определённую глубину, вы позже можете увеличить глубину извлечения для получения дополнительного содержимого. Однако, вы не можете уменьшить эту глубину, чтобы убрать лишнее содержимое. Возможно, эта возможность будет добавлена в более позних версиях Subversion.

Использование старого сервера

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

Если проект содержит ссылки на внешние проекты, которые вы не хотите извлекать в этот раз, используйте флажок Пропустить внешние

Важно

Если отмечен флажок Пропустить внешние, или если вы желаете изменить значение глубины, то вы должны будете выполнить обновление вашей рабочей копии с использованием команды TortoiseSVNОбновить до ревизии... вместо TortoiseSVNSVN Обновить.... Стандартное обновление включает все внешние ссылки и сохраняет существующее значение глубины.

Рекомендуется извлекать только ствол (trunk) из дерева папок, или его подветку. Если вы в URL укажете родительский путь для дерева папок, это может привести к полному заполнению вашего жёсткого диска, поскольку вы получите копию всего дерева хранилища, включая каждое ответвление и метку вашего проекта!

Экспорт

Иногда бывает необходимо создать локальную копию без всех этих папок .svn, например, для создания запакованного архиватором файла (zipped tarball) исходного кода. Прочтите «Экспорт рабочей копии Subversion», чтобы узнать, как это сделать.