Movendo vários arquivos no Controle de Origem TFS

172

Estou usando o Team Foundation Server 2008 (SP 1) e preciso mover vários arquivos de uma pasta para outra (para manter o histórico do arquivo). Além do Team Explorer (com SP 1), também tenho as mais recentes TFS Power Tools (outubro de 2008) instaladas (para integração com o Windows Shell).

Agora, o problema é que não consigo selecionar e mover vários arquivos pela janela do shell ou do Source Control Explorer. Posso mover arquivos individuais (clicando com o botão direito do mouse + "Mover") e posso mover pastas inteiras (mesma operação), mas quando seleciono vários arquivos (em uma pasta), o item de contexto "Mover" fica acinzentado / desativado.

Alguém sabe se isso é possível .. e se não .. por que não !?

Alguém pode sugerir uma solução alternativa que não seja excessivamente complicada?

Vote aqui: https://connect.microsoft.com/VisualStudio/feedback/details/715041/support-moving-multiple-files-in-tfs-source-control-explorer e aqui http: //visualstudio.uservoice. com / forums / 121579-visual-studio / suggestions / 2271540-permita-mover-mais-que-um-arquivo-de-uma-vez-em-tfs-so

insira a descrição da imagem aqui

insira a descrição da imagem aqui

RobS
fonte

Respostas:

144

Use a ferramenta tf.exe na linha de comando do Visual studio - ela pode manipular curingas:

tf.exe move <olditem> <newitem>

Exemplo:

tf.exe move "$/My Project/V*" "$/My Project/Archive"

[EDIT] Como observado nos comentários: move é um alias para renomear. Ambos os comandos movem o histórico.

Kurt Schelfthout
fonte
7
Essa outra resposta é a melhor aqui. O moveparâmetro não está documentado e não move o histórico, enquanto o renameparâmetro da outra resposta está documentado e também move o histórico.
Alex Angas
12
Para o registro, parece que no TFS 2010 o comando move executa uma renomeação que move o histórico.
John John Bledsoe
10
da ajuda do TF.EXE: Você pode usar o comando renomear ou o alias move, para mover um arquivo ou pasta para um novo local. então mover e renomear são exatamente a mesma coisa.
precisa saber é o seguinte
1
outra coisa, execute-o a partir do caminho mapeado, usando a linha de comando do visual studio. caso contrário, ele se cala para não conhecer o espaço de trabalho e oferece a você uma maneira (inútil) de descobrir quais espaços de trabalho você possui (e depois o que não tem nada .. - então execute-o no diretório mapeado e você ficará bem (trabalhou para eu)
Mickey Perlstein
Também funciona com caminhos relativos. cdpara a pasta onde você deseja mover os arquivos e dizer tf move V* Archive.
nalply
56

Use renomear em vez de mover

tf.exe rename "$/PROJECT/SharedLibs/Log4Net/*.*" "$/PROJECT/SharedLibs/3rdParty/"
tf.exe rename "$/PROJECT/SharedLibs/ZipLib/*.*" "$/PROJECT/SharedLibs/3rdParty/"

Confira a documentação da ajuda: Referência da linha de comando do TFS

Titwan
fonte
O link acima está lançando um HTTP500; em caso ele permanece baixo, aqui é a referência de linha de comando TFS da MSDN: msdn.microsoft.com/en-us/library/z51z7zy0.aspx
Joisey Mike
12
moveé apenas um alias para rename, por isso realmente não importa o que você usa
Jeff Olson
Eu uso o controle de fonte TFS do meu Visual Studio Online, por exemplo, namgivu.visualstudio.com . E listar o espaço de trabalho chamando tf workspacesnão tem a entrada para o meu mapeamento de repositório.
Nam G VU
"Não é possível renomear $ / X / Y / Z quando há um mapeamento de pasta de trabalho atribuído a ele." Além disso; Curingas *. * Não são mais permitidos.
Christian
"Você não pode especificar um curinga como fonte se o destino não for uma pasta no controle de origem." Eu não sei o que isso significa. Apenas mova-o para o nome que estou apontando.
Christian
38

Holan Jan escreveu uma Extensão do Visual Studio que fornece 'movimento' para vários arquivos dentro do explorador de controle de origem (ou seja, usando uma GUI). É um tratamento, também tem suporte para versões recentes.

para VS2019: https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-2019

para VS2017: https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-18397

para VS2015: https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-13343

para VS2013: https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-11508

para VS2012: https://marketplace.visualstudio.com/items?itemName=HolanJan.TFSSourceControlExplorerExtension-8896

Sob o capô, ele usa os mesmos comandos mencionados acima, mas é um pouco mais amigável de usar. Cada uma das versões listadas requer a versão RTM do Visual Studio.

Sid James
fonte
Excelente! Esta é a única coisa que funcionou para mim, usando VS2010: visualstudiogallery.msdn.microsoft.com/...
Ian Campbell
Essa extensão é fantástica - permite várias funcionalidades adicionais no explorador de controle de origem, das quais mover vários arquivos ao mesmo tempo é apenas uma peça. Eu recomendo.
SqlRyan
-9

Cole todos os arquivos que você deseja mover, em uma pasta e mova-a.

Merrick Chaffer
fonte