Como mover um arquivo (ou pasta) de uma pasta para outra no TortoiseSVN?

247

Gostaria de mover um arquivo ou pasta de um local para outro no mesmo repositório sem precisar usar o Repo Browser para fazer isso e sem criar duas operações independentes de adição / exclusão. O uso do Repo Browser funciona bem, exceto que seu código ficará paralisado até que você verifique as alterações de suporte posteriormente (como o arquivo .csproj, por exemplo).

Atualização: as pessoas sugeriram "mover" na linha de comando. Existe um equivalente do TortoiseSVN?

jeremcc
fonte

Respostas:

448

Para mover um arquivo ou conjunto de arquivos usando Tortoise SVN, clique com o botão direito do mouse e arraste os arquivos de destino para o destino e solte o botão direito do mouse. O menu pop-up terá uma SVN move versioned files hereopção.

Observe que a pasta de destino já deve ter sido adicionada ao repositório para que a SVN move versioned files hereopção apareça.

Mark Embling
fonte
32
Eu precisava fazer o mesmo e isso funcionou perfeitamente. Nunca soube dessa opção. Muito obrigado!
16449 DavGarcia
4
Obrigado! Nota: Posteriormente, ele mostra no log de alterações vários arquivos e diretórios DELETED e ADDED, mas o histórico de revisões segue os arquivos. :)
Yoh Suzuki
1
O que devo fazer se já tiver movido o arquivo, mas o svn ainda achar que está em outro diretório?
Shawn Mclean
4
Você também (certamente no v1.7.6) necessidade de se certificar de que o diretório que você está movendo os arquivos já é adicionado subversão
icc97
Resposta lendária fez o meu dia, ty!
Cyril Gandon
22

No Windows Explorer, com o botão direito do mouse, clique e arraste o arquivo de onde está para onde deseja. Ao liberar o botão direito do mouse, você verá um menu de contexto com opções como "SVN Move versioned file here".

http://tortoisesvn.net/most-forgotten-feature

yknott
fonte
5

Se você deseja mover arquivos e manter os arquivos csproj atualizados, a maneira mais fácil é usar um plug-in do Visual Studio como o AnkhSVN . Isso confirmará automaticamente a ação de movimentação (como excluir + adicionar com histórico, porque é assim que o Subversion funciona) e uma alteração no arquivo .csproj

Sander Rijken
fonte
4

Na linha de comando, você pode digitar svn mv path1 path2. Isso criará uma operação de adição e exclusão, mas não há realmente uma maneira de contornar isso - até onde eu sei - no Subversion.

Clinton N. Dreisbach
fonte
3

O Subversion ainda não possui operações de renomeação de primeira classe.

Há um bug de 6 anos no problema: http://subversion.tigris.org/issues/show_bug.cgi?id=898

Está sendo considerado para a 1.6, agora que o rastreamento de mesclagem (uma prioridade mais alta) foi adicionado (na 1.5).

swmc
fonte
1

Use o comando RENAME do Tortoise e digite um caminho relativo ("pasta / arquivo.ext").

WhyNotHugo
fonte
0

Como mencionado anteriormente, você criará os comandos de adição e exclusão. Você pode usar o svn move na sua cópia de trabalho ou no URL do repositório. Se você usar sua cópia de trabalho, as alterações não serão confirmadas - você precisará confirmar em uma operação separada.

Se você mover um URL, precisará fornecer uma mensagem -, e as alterações serão refletidas no repositório imediatamente.

dwilkins
fonte
0

Use o svn movecomando para mover arquivo / pasta.

acemtp
fonte
0

Você precisa arrastar o arquivo usando o botão direito do mouse. No momento em que você libera o arquivo para o novo destino, você observa a opção:

O SVN move arquivos com versão para aqui.

Basta selecionar esta opção e pronto!

Manish Singhal
fonte