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

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

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

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

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


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

Важно

При настройках по умолчанию пункт меню "Извлечь" размещён не в подменю TortoiseSVN, а показан на верхнем уровне меню проводника. Команды TortoiseSVN, которые находятся не в подменю начинаются с SVN: SVN Извлечь...

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

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

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

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

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

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

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

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

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

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

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

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

Исключить

Используется для уменьшения глубины рабочей копии после того, как папка уже была заполнена. Эта опция доступна только в диалоге Обновить до ревизии.

Для легкого выбора элементов, которые вы хотите фиксировать, и заставить получаемую рабочую копию хранить только эти элементы, кликните кнопку Choose items.... Это действие откроет новый диалог, в котором вы можете отметить все элементы, которые вы хотите хранить в вашей рабочей копии и снять пометку для остальных. Получаемая рабочая копия будет неполным извлечением. Обновление такой рабочей копии не будет получать отсутствующие файлы и папки, а только обновлять существующие в рабочей копии.

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

Неполное извлечение используя Обновить до ревизии

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

Неполное извлечение используя Обозреватель хранилища

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

Неполное извлечение используя Проверить на наличие изменений

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

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

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

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

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

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

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

Изменение глубины рабочей копии

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

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

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

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

Важно

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

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

Экспорт

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