Оптимизация рабочей области
Опубликовано: Апрель 2016
У вашей команды большая и сложная база кода? Хотите ли вы, чтобы ваша рабочая область содержала только файлы, необходимые для повышения производительности, уменьшения сетевого трафика и сокращения места на диске, требуемого на компьютере разработки?
Оптимизация имен папок
Оптимизация рабочей области с помощью явных, неявных, замаскированных и нерекурсивных сопоставлений папок
Использование рабочих областей для изоляции работы и управления работой в разных ветвях
Оптимизация имен папок
Если вы еще не используете ветви на своем сервере, следует помещать весь свой код во вложенную папку с именем Main (например: $/TFVCTeamProject/Main/). Если это сделать, вы будете готовы, когда ваша команда вырастет настолько, что для управления базой кода потребуются ветви. На компьютере разработки необходимо использовать короткий и понятный путь к папке, который соответствует структуре проекта, например C:\Users\YourName\Source\Workspaces\TFVCTeamProject\Main\SolutionName\.
Некоторые дополнительные советы по эффективному именованию папок:
Следите за тем, чтобы все имена папок, вложенных папок и файлов были короткими, чтобы упростить работу и избежать потенциальных проблем, связанных с длинными путями в проектах кода некоторых типов.
Старайтесь не использовать пробелы, чтобы было проще выполнять операции командной строки.
Оптимизация рабочей области с помощью явных, неявных, замаскированных и нерекурсивных сопоставлений папок
При работе с большой базой кода избежать лишних затрат времени, сэкономить пропускную способность сети и место на локальном диске можно, оптимизировав сопоставления папок рабочей области.
При сопоставлении папки убедитесь, что выбранная папка находится достаточно высоко в дереве кода, чтобы загружались все файлы, необходимые для создания локальной сборки, и в то же время достаточно низко, чтобы не загружались лишние файлы. Можно также использовать некоторые средства для упрощения и ускорения создания удобного рабочего пространства: явные, неявные, замаскированные и нерекурсивные сопоставления папок.
Если посмотреть на показанную ниже рабочую область вымышленного разработчика Раисы, может возникнуть вопрос: почему она просто не сопоставила $/SiteApp/ объекту c:\code\SiteApp\ и все? Простая рабочая область, такая как эта, неявно сопоставила бы все необходимые ей папки в $/SiteApp/Main/.
Основная проблема этого подхода в том, что в результате она также получит множество ненужных файлов, что является напрасной тратой времени и ресурсов. Поэтому Раиса создает несколько специальных сопоставлений папок.
Раиса не разрабатывает настраиваемые процессы сборки, поэтому ей не нужна папка $/SiteApp/BuildProcessTemplates. Она предполагает, что со временем база кода будет расти, и ей не хотелось бы автоматически загружать каждый новый бит кода, добавляемый в $/SiteApp/Main/. Команды, работающие в этих других папках, изменяют эти файлы, и при получении Раисой последних файлов с сервера она может столкнуться с длительными задержками, ожидая обновления файлов, которые ей не нужны. Для разработки своего кода Раисе нужны все проекты кода, составляющие решение FabrikamFiber. Вместо явного включения каждого проекта кода (например, $/SiteApp/Main/FabrikamFiber/FabrikamFiber.DAL) она сопоставляет $/SiteApp/Main/FabrikamFiber/ и, следовательно, неявно сопоставляет все вложенные папки, содержащие нужные ей проекты кода. |
|
Раисе не нужны файлы в $/SiteApp/Main/FabrikamFiber/3DModels или $/SiteApp/Main/FabrikamFiber/Docs, а поскольку они неявно сопоставлены за счет |
|
Раиса и другие члены ее команды поддерживают и иногда расширяют набор некоторых фундаментальных библиотек. Ей нужны почти все текущие библиотеки в этой папке, и будут нужны библиотеки, которые ее команда добавит туда в будущем, поэтому она сопоставляет $/SiteApp/Main/libraries/Common. |
|
Раисе необходим только небольшой сегмент большой папки $/SiteApp/Main/libraries/Common/LibraryC, поэтому она сопоставляет ее как замаскированную, а затем явным образом сопоставляет только нужные ей вложенные папки: $/SiteApp/Main/libraries/Common/LibraryC/Sub-Library1. |
|
Раисе нужны некоторые файлы непосредственно внутри LibraryD, но ей не требуются большие объемы вложенных папок, поэтому она применяет нерекурсивное сопоставление к этой папке: $/SiteApp/Main/libraries/Specialized/LibraryD/*. |
Использование рабочих областей для изоляции работы и управления работой в разных ветвях
Если ваша компания использует ветви для изоляции риска в базе кода, следует создать отдельную рабочую область для каждой ветви, в которой вы работаете.
Например, в Fabrikam Fiber база кода и штат сотрудников выросли. Чтобы изолировать риск между несколькими командами, базу кода разветвили. Раиса продолжает работать в своей небольшой команде, но теперь она использует несколько рабочих областей для управления работой, которую она теперь выполняет в нескольких ветвях.
Разработка функций Она изменяет свою рабочую область по умолчанию, чтобы работать в ветви экстрасети, где она участвует в разработке веб-сайта для клиентов в этой ветви. |
|
Интеграция и стабилизация Она создает две новые рабочие области для выполнения работы в ветвях "Тест" и "Разработка", где она взаимодействует с другими разработчиками и тест-инженерами, чтобы стабилизировать код в процессе интеграции. |
Раиса управляет своей работой в трех рабочих областях, в каждой из которых папки в ветви на сервере сопоставлены с папками на ее компьютере разработки.
Примечание
Ветвление или приостановка (откладывание) — предпочтительные способы для изоляции разных направлений работы в одной базе кода.Однако если ни один из этих подходов не соответствует вашим нуждам, можно сопоставить одну и ту же папку на сервере в нескольких рабочих областях.В большинстве случаев делать это не требуется.При сопоставлении одной и той же папки на сервере в нескольких рабочих областях помните, что в каждой из рабочих областей могут быть свои ожидающие изменения для одного и того же файла.