Оптимизация рабочей области

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

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

Примечание.

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

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

Оптимизация имен папок

Если вы еще не используете ветви, поместите весь код в вложенную папку с именем Main на сервере, например $/TFVCTeamProject/Main/. Затем вы будете готовы, когда ваша команда растет достаточно большой, чтобы требовать ветвей для управления его базой кода. На компьютере разработки следует использовать короткий понятный путь к папке, соответствующий структуре проекта, например C:\Users\YourName>\Source\<Workspaces\TFVCTeamProject\Main\SolutionName.

Дополнительные советы по эффективным именам папок:

  • Оставьте все имена папок, вложенных папок и файлов короткими, чтобы упростить работу и избежать потенциальных проблем с длинным путем, которые могут возникать с некоторыми типами проектов кода.

  • Избегайте пробелов в именах файлов и папок, чтобы упростить выполнение операций командной строки.

Оптимизация рабочей области

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

При сопоставлении папки с рабочей областью убедитесь, что вы выбрали папку достаточно высокого уровня в дереве кода, чтобы получить все файлы, необходимые для создания локальной сборки, но достаточно низко, что вы не получаете больше файлов, чем вам нужно. В следующем примере рабочей области можно просто сопоставить $/SiteApp/c:\code\SiteApp\. Простая рабочая область, как это, неявно сопоставляет все папки в $/SiteApp/Main/ с рабочей областью, включая необходимые файлы.

Основная проблема с этим подходом заключается в том, что он предоставляет вам множество файлов, которые вам не нужны, и поэтому тратит время и ресурсы. Например, если вы не разрабатываете настраиваемые процессы сборки, вам не нужно $/SiteApp/BuildProcessTemplates/.

С течением времени вы ожидаете, что база кода команды будет расти, и вы не хотите автоматически скачивать каждый новый бит кода, добавленный в $/SiteApp/Main/. Так как команды, работающие в других папках, изменяют эти файлы, при получении последних файлов с сервера могут возникнуть длительные задержки в ожидании обновлений файлов, которые вам не нужны.

Вы можете оптимизировать рабочую область для создания более специализированных сопоставлений папок.

  1. В Обозреватель системы управления версиями Visual Studio щелкните стрелку раскрывающегося списка рядом с рабочими областями и выберите рабочие области.

  2. В диалоговом окне "Управление рабочими областями" выберите рабочую область, которую требуется оптимизировать, и нажмите кнопку "Изменить".

  3. В диалоговом окне "Изменить рабочую область" измените сопоставления рабочих областей.

    Снимок экрана: редактирование рабочей области в диалоговом окне

  4. Например, для разработки кода требуется проект кода из проекта DinnerNow . Вместо явного включения каждого проекта кода в решение, например $/Fabrikam TFVC/DinnerNow/feature3, можно сопоставить $/Fabrikam TFVC/DinnerNow и таким образом неявно сопоставить все вложенные папки, содержащие необходимые проекты кода.

  5. Вам не нужны файлы в $/Fabrikam TFVC/DinnerNow/feature1 или $/Fabrikam TFVC/DinnerNow/feature2, но поскольку они неявно сопоставлены, можно использовать два скрытых сопоставления, чтобы исключить эти папки из рабочей области.

  6. Ваша команда поддерживает и иногда расширяет набор некоторых фундаментальных библиотек. Вам потребуется почти все текущие библиотеки в этой папке, и ожидается, что вам нужны библиотеки, которые ваша команда добавляет туда в будущем, поэтому вы сопоставляете $/Fabrikam TFVC/Main/.

  7. Вам нужен только небольшой сегмент большой папки , $/Fabrikam TFVC/Main/ClassLibrary, поэтому вы сопоставляете ее как закрытую, а затем явно сопоставляете только нужную вложенную папку, $/Fabrikam TFVC/Main/ClassLibrary1.

  8. Вам нужны некоторые файлы непосредственно в ClassLibrary1, но не требуется содержимое вложенных папок, поэтому примените не рекурсивное сопоставление к папке $/Fabrikam TFVC/Main/ClassLibrary1/ .

Вы также можете сопоставить папки с рабочими областями, щелкнув правой кнопкой мыши ветвь или папку в Обозреватель системы управления версиями и выбрав "Дополнительное>сопоставление" с локальной папкой. Или выберите ссылку "Не сопоставлено" рядом с локальной папкой в верхней части Обозреватель системы управления версиями. В диалоговом окне "Карта" выберите локальную папку для сопоставления и выберите поле "Рекурсивный проверка", если вы хотите сделать сопоставление рекурсивным в вложенных папках.

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

Снимок экрана, показывающий эффекты сопоставлений папок.

Использование рабочих областей для изоляции ветвей

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

Например:

Схема с несколькими ветвями.

  • Разработка функций: вы изменяете рабочую область по умолчанию, чтобы работать в Extranet ветви, где вы участвуете в разработке веб-сайта, доступного для клиентов.

  • Интеграция и стабилизация: вы создаете две новые рабочие области для работы в TestDev и ветвях, где вы сотрудничаете с другими разработчиками и тестировщиками для стабилизации кода во время интеграции.

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

Схема сопоставления ветвей с папками.

Следующие шаги

Выбор эффективной стратегии ветвления