A infraestrutura de controle de versão legada (TFVC) no Azure DevOps está passando por uma transição crítica. Após o anúncio de depreciação das políticas de check-in legadas em abril de 2025, o cenário agora caminha para a fase final de descontinuação. Para empresas que ainda mantêm workflows baseados em TFVC, este não é apenas um aviso de atualização, mas uma medida preventiva contra interrupções no fluxo de desenvolvimento.
O Cenário de Transição
Atualmente, o Azure DevOps encontra-se na Fase II de transição. Durante este período, as políticas obsoletas ainda podem ser gerenciadas via Team Explorer, embora o sistema já emita notificações de falta de conformidade no momento do check-in. No entanto, o cronograma impõe um corte definitivo: uma vez atingida a fase final, as políticas remanescentes bloquearão qualquer check-in no repositório e deixarão de ser visíveis ou gerenciáveis via interface gráfica do Visual Studio.
Ignorar esse movimento significa colocar em risco a capacidade de merge e commit dos times, transformando uma dívida técnica em um bloqueio operacional total.
Removendo as Políticas via Visual Studio
Se a sua equipe ainda trabalha com estas políticas, a recomendação estratégica é a substituição imediata pelas equivalentes modernas. O processo é direto dentro do IDE:
- Conecte-se ao projeto via Visual Studio.
- Navegue até Team Explorer > Settings > Source Control.
- Acesse a aba Check-in Policy.
- Remova as políticas marcadas como obsoletas e adicione as novas versões disponíveis.
Abordagem Programática: Quando a UI não responde
Como o TFVC é um sistema legado, algumas instâncias podem apresentar comportamentos inesperados ao tentar remover políticas diretamente pela interface, especialmente se os code paths estiverem muito defasados. Se o bloqueio já tiver ocorrido, será necessário utilizar uma intervenção via código.
Para administradores de projeto, a solução consiste em um pequeno console app (utilizando .NET Framework) capaz de interagir com o VersionControlServer via Microsoft.TeamFoundationServer.ExtendedClient:
// Exemplo de implementação para remoção de políticas via C#
var collectionUri = "https://contoso.visualstudio.com/";
var currentProjectName = "fabrikam";
using (TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(collectionUri)))
{
var versionControlServer = tpc.GetService<VersionControlServer>();
TeamProject teamProject = versionControlServer.GetTeamProject(currentProjectName);
// Limpa as políticas obsoletas
teamProject.SetCheckinPolicies(null);
}
Pontos de atenção para Gestores de TI:
- Permissões: Apenas Project Administrators possuem privilégios para executar este script.
- Dependência: O projeto deve estar configurado no ecossistema .NET Framework.
- Continuidade: Após a limpeza, o time deve reconfigurar as políticas no Visual Studio seguindo os padrões atuais para manter a integridade do código.
Sugerimos que as lideranças de engenharia auditem seus projetos em TFVC imediatamente. A migração para Git-based workflows (Azure Repos Git) continua sendo a recomendação de longo prazo para eliminar a dependência de componentes legados de versionamento.
Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.