Otimizar seu workspace

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Se sua equipe tiver uma base de código grande e complexa, você poderá otimizar seu workspace para conter apenas os arquivos necessários. Otimizar seu workspace melhora o desempenho, reduz o tráfego de rede e reduz o espaço em disco necessário no computador de desenvolvimento.

Observação

Ramificar e suspender ou localizar são as maneiras preferenciais de isolar diferentes esforços de trabalho na mesma base de código. No entanto, se nenhuma dessas abordagens atende às suas necessidades, você pode mapear a mesma pasta de servidor em mais de um workspace. Na maioria dos casos, não é necessário fazer isso.

Se você mapear a mesma pasta de servidor em mais de um workspace, lembre-se de que poderá ter alterações pendentes separadas e diferentes para o mesmo arquivo armazenadas em cada workspace.

Otimizar seus nomes de pastas

Se você ainda não usar ramificações, coloque todo o código em uma subpasta chamada Main em seu servidor, por exemplo: $/TFVCTeamProject/Main/. Em seguida, você estará pronto quando sua equipe crescer o suficiente para exigir ramificações para gerenciar sua base de código. No computador de desenvolvimento, você deve usar um caminho de pasta curto e compreensível que corresponda à estrutura do projeto, como C:\Users\<YourName>\Source\Workspaces\TFVCTeamProject\Main\SolutionName.

Mais algumas dicas sobre nomes de pastas eficientes:

  • Mantenha todos os nomes de pastas, subpastas e arquivos curtos para simplificar seu trabalho e evitar possíveis problemas de caminho longo que possam ocorrer com alguns tipos de projetos de código.

  • Evite o espaço em branco em nomes de arquivo e pasta para facilitar o desempenho das operações de linha de comando.

Otimizar seu workspace

Se sua base de código for grande, você poderá evitar o desperdício de tempo, largura de banda de rede e espaço em disco local otimizando os mapeamentos de pastas de seu workspace. Você pode usar algumas ferramentas para criar um workspace utilizável com mais simplicidade e rapidez: mapeamentos explícitos, implícitos, encobertos e não recursivos de pastas.

Ao mapear uma pasta para seu workspace, escolha uma pasta alta o suficiente na árvore de código para obter todos os arquivos necessários para uma compilação local, mas baixa o suficiente para que você não obtenha mais arquivos que o necessário. No workspace de exemplo a seguir, você pode simplesmente mapear $/SiteApp/ para c:\code\SiteApp\. Um workspace simples como esse mapearia implicitamente todas as pastas em $/SiteApp/Main/ para seu workspace, incluindo os arquivos necessários.

O principal problema com essa abordagem é que ela fornece muitos arquivos que você não precisa e, portanto, perde tempo e recursos. Por exemplo, se você não desenvolver processos de build personalizados, não precisará do $/SiteApp/BuildProcessTemplates/.

Com o tempo, você espera que sua base de código de equipe cresça e não queira baixar automaticamente cada novo bit de código adicionado a $/SiteApp/Main/. À medida que as equipes que trabalham em outras pastas alteram esses arquivos, quando você obtém os arquivos mais recentes do servidor, você pode incorrer em longos atrasos aguardando atualizações nos arquivos de que não precisa.

Você pode otimizar seu workspace para criar mapeamentos de pastas mais personalizados.

  1. No Gerenciador de Controle do Código-Fonte do Visual Studio, selecione a seta suspensa ao lado de Workspacese selecione Workspaces.

  2. Na caixa de diálogo Gerenciar Workspaces, selecione o workspace que você deseja otimizar e, em seguida, selecione Editar.

  3. Na caixa de diálogo Editar Workspace, edite os mapeamentos de workspace.

    Captura de tela que mostra a edição de um workspace na caixa de diálogo Editar Workspace.

  4. Por exemplo, para desenvolver seu código, você precisa de projetos do projeto DinnerNow. Em vez de incluir explicitamente cada projeto de código na solução, como $/Fabrikam TFVC/DinnerNow/feature3, você pode mapear $/Fabrikam TFVC/DinnerNow e, portanto, mapear implicitamente todas as subpastas que contêm os projetos de código necessários.

  5. Você não precisa dos arquivos em $/Fabrikam TFVC/DinnerNow/feature1 ou $/Fabrikam TFVC/DinnerNow/feature2, mas como eles estão implicitamente mapeados, você pode usar dois mapeamentos camuflados para excluir essas pastas do seu workspace.

  6. Sua equipe mantém e, às vezes, aumenta um conjunto de algumas bibliotecas fundamentais. Você precisa de quase todas as bibliotecas atuais nesta pasta e espera precisar de bibliotecas que sua equipe adicione no futuro, para que você mapeie $/Fabrikam TFVC/Main/.

  7. Você precisa apenas de um pequeno segmento de uma pasta grande, $/Fabrikam TFVC/Main/ClassLibrary, para mapeá-lo como camuflado e mapear explicitamente apenas a subpasta necessária, $/Fabrikam TFVC/Main/ClassLibrary1.

  8. Você precisa de alguns dos arquivos imediatamente no ClassLibrary1, mas não precisa do conteúdo de suas subpastas, portanto, aplica um mapeamento não recursivo à pasta $/Fabrikam TFVC/Main/ClassLibrary1/.

Você também pode mapear pastas para workspaces clicando com o botão direito do mouse em uma ramificação ou pasta não mapeada no Gerenciador do Controle do Código-Fonte e selecionando Avançado>Mapa para pasta local. Ou selecione o link Não mapeado ao lado da pastaLocal na parte superior do Gerenciador do Controle do Código-Fonte. Na caixa de diálogo Mapa, selecione uma pasta local para a qual mapear e marque a caixa de seleção Recursiva se quiser tornar o mapeamento recursivo entre subpastas.

As capturas de tela a seguir mostram os resultados da aplicação dessas otimizações de workspace na árvore do servidor no Gerenciador do Controle do Código-Fonte e nos arquivos locais no computador.

Capturas de tela que mostram os efeitos dos mapeamentos de pastas.

Usar workspaces para isolar ramificações

Se sua organização usar ramificações para isolar o risco em sua base de código, você poderá criar um workspace separado para cada ramificação em que trabalha. Você continua seu trabalho em sua pequena equipe, mas usa alguns workspaces para gerenciar o trabalho que faz em vários ramificações.

Por exemplo:

Diagrama mostrando várias ramificações.

  • Desenvolver recursos: você modifica seu workspace padrão para trabalhar na ramificação Extranet no qual participa do desenvolvimento do site voltado para o cliente.

  • Integrar e estabilizar: você cria dois novos workspaces para trabalhar no Test e ramificações Dev, em que colabora com outros desenvolvedores e testadores para estabilizar o código durante a integração.

Você gerencia seu trabalho em três workspaces, cada um dos quais mapeia pastas em uma ramificação no servidor para as pastas em seu computador de desenvolvimento.

Diagrama mostrando ramificações de mapeamento para pastas.

Próximas etapas

Escolher uma estratégia de ramificações eficaz