TFS - Ramificação para desenvolvimento experimental:A solução não carrega

StackOverflow https://stackoverflow.com/questions/42490

  •  09-06-2019
  •  | 
  •  

Pergunta

Isenção de responsabilidade:Estou preso no TFS e odeio isso.

Minha estrutura de controle de origem é assim:

  • /dev
  • /lançamentos
  • /galhos
  • /atualização experimental

Passei do desenvolvimento para a atualização experimental e não toquei nisso.Em seguida, fiz mais alguns trabalhos em desenvolvimento e mesclei para atualização experimental.De alguma forma, o TFS reclamou que eu tinha alterações na origem e no destino e precisava resolvê-las.Eu escolhi "Copiar item do ramo de origem" para todos os 5 itens.

Eu verifico a atualização experimental para uma pasta local e tento abrir o arquivo da solução principal lá.O TFS me avisa:

"Projetos foram adicionados recentemente a esta solução.Você gostaria de obtê-los do controle de origem?

Se eu disser que sim, ele faz algumas coisas, mas acaba voltando sem conseguir carregar alguns projetos.Se eu disser não, obtenho o mesmo resultado.

Comparar meu sln em ambos os ramos me diz que eles são iguais.

Alguém pode me informar o que estou fazendo de errado?Esta deve ser uma operação direta de ramificação/mesclagem...

TIA.


ATUALIZAR:

Percebi que se eu clicar em "sim" na caixa de diálogo acima, os projetos serão baixados para a raiz $/ do controle de origem...(ou seja,fora das pastas dev & Branches)

Se eu abrir a solução no branch e remover os projetos mortos e tentar adicioná-los novamente (clicando com o botão direito do mouse em sln, adicionar projeto existente, escolher o projeto localizado na pasta do branch, isso me dá o erro...

Não é possível carregar o projeto c:\sandbox\my_solution\proj1\proj1.csproj, o arquivo foi removido ou excluído.O caminho do projeto que eu estava tentando adicionar é este:c:\sandbox\my_solution\branches\experimental-upgrade\proj1\proj1.csproj

O que no mundo está apontando esses projetos fora de sua raiz local?O arquivo de solução é idêntico ao da ramificação dev e esses projetos carregam perfeitamente.Também olhei os arquivos vspscc e vssscc, mas não encontrei nada.

Ideias?

Foi útil?

Solução

@Ben

Na verdade, você pode fazer uma exclusão completa no TFS, mas isso não é altamente recomendado, a menos que você saiba o que está fazendo.Você tem que fazer isso na linha de comando com o comando tf destroy

tf destroy [/keephistory] itemspec1 [;versionspec]
           [itemspec2...itemspecN] [/stopat:versionspec] [/preview]
           [/startcleanup] [/noprompt]

Versionspec:
    Date/Time         Dmm/dd/yyyy
                      or any .Net Framework-supported format
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner

Antes de fazer isso, experimente com o /preview.Além disso, todo mundo tem sua própria metodologia para ramificação.O meu é ramificar os lançamentos e fazer todo o desenvolvimento na pasta de desenvolvimento ou raiz.Também parecia que a ramificação funcionou bem para você, apenas o arquivo de solução estava bagunçado, o que pode ser devido a um problema de ligação e ao arquivo vssss.

Outras dicas

@Usuario:Nenhuma alteração foi feita nisso ainda.Talvez eu tenha que excluí-lo e ramificar novamente (no entanto, você realmente não pode excluir totalmente no TFS)

E eu tenho que discordar...ramificação é absolutamente uma boa prática para mudanças experimentais.As estantes são apenas armazenamento temporário do qual será feito backup se eu não quiser fazer o check-in ainda.Mas isso precisa ser desenvolvido enquanto desenvolvemos recursos reais.

Sem saber mais sobre a configuração da sua solução, não posso ter certeza.Mas, se você tiver alguma referência de projeto que possa explicar isso.Como você tem a subpasta "atualização experimental" em "ramos", seus caminhos relativos foram alterados.

Isso significa que quando o VS costumava procurar seus projetos referenciados em ..\..\project\whatever, agora ele precisa procurar em ..\..\..\project\whatever.Observe o extra ..\

Para corrigir isso, você deve adicionar novamente as referências do seu projeto.Eu não encontrei uma maneira melhor.Você pode removê-los e adicioná-los novamente ou ir para a janela de propriedades, alterar o caminho para eles e recarregá-los.De qualquer forma, você terá que refazer suas referências a eles em qualquer projeto.

Além disso, verifique suas pastas de trabalho para ter certeza de que nenhum de seus projetos foi baixado nas pastas erradas.Isso pode acontecer às vezes...

Um par de coisas.As estruturas de pastas são iguais?Você pode excluir e ler as referências do projeto com sucesso?

Se você criar uma solução e adicionar manualmente todos os projetos, isso funcionará.(Isso pode não ser viável – temos soluções para mais de uma centena de projetos).

Outra coisa (e pode ser bobagem) - depois de fazer o branch, você o cometeu?Estou me perguntando se você ramificou e não fez check-in, e depois mesclou, e quando tentou fazer check-in, o TFS ficou muito confuso.

@Kevin:

Isso significa que quando o VS costumava procurar seus projetos referenciados em ....\project\whatever, agora ele precisa procurar em ......\project\whatever.Observe o extra ..\

Você pode estar certo aqui, mas isso não explica por que alguns projetos são carregados e outros não.Ainda não encontrei uma correlação entre eles.

Acho que vou tentar adicionar novamente os projetos e ver se funciona.

@Cory:

Acho que é isso que vou tentar...Tenho cerca de 20 projetos e cerca de 8 não estão carregando.As estruturas de pastas são idênticas à raiz...ou seja:não há referências fora do DEV.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top