Como removo uma pasta do controle de origem com o TortoiseSVN?

129

Como faço para remover uma pasta do controle de origem com o TortoiseSVN ?

Chance
fonte
10
Boa pergunta. Isso é ridiculamente complicado para o que deveria ser uma tarefa simples.
Paul Suart
Uma observação para quem usou "Atualização do SVN para revisão" (em vez de verificação do svn): tente usar o Atualização do SVN para revisar novamente, mas desta vez com o Profundidade da atualização definido como Excluir.
Wallace Brown
você pode excluir uma .svnpasta relacionada
ahmednabil88
Eu sempre me perguntei se tudo bem, no Windows / Tortoise, EXCLUIR muito simplesmente uma pasta local no PC. Portanto, há um repo REPO no seu servidor. E você tem uma versão dele no seu PC, LOCALFOLDER. Você simplesmente não precisa mais dessa versão local naquele PC. Neste caso, simplesmente apago a pasta LOCALFOLDER no PC. (Não faço nada no menu do Tortoise antes de jogar o LOCALFOLDER no lixo.) Para ficar claro, não quero afetar o REPO de forma alguma - simplesmente não quero / preciso da versão do LOCALFOLDER. Eu sempre me perguntei se não há problema em fazer isso?
Fattie 23/08/16
Ou o Tortoise mantém "algo mais" em algum lugar do PC, para que a partir de então o Tortoise sinta que LOCALFOLDER está faltando?
Fattie 23/08/16

Respostas:

56

Há um item dedicado no menu de contexto estendido:

  • Mantenha a Shifttecla pressionada e clique com o botão direito na pasta.
  • No menu do TortoiseSVN, clique em "Excluir (manter local)"

insira a descrição da imagem aqui

Imagem cortada da página do menu de contexto estendido do TortoiseSVN .
Exclua a documentação (mantenha local) .

Bob Esponja
fonte
4
Na verdade, é CTRL + SHIFT ao clicar com o botão direito do mouse na pasta. Vamos Stackoverflow por que encontrei esta resposta na parte inferior?
hollystyles
4
Qual versão vocês estão usando? A versão 1.6.12 não possui a opção Excluir (manter local). Nem Shift nem CTRL + Shift ajudam.
thehhv
1
Acabei de verificar novamente e apenas Shift + clique direito funciona para mim. @thehhv versão 1.6.10 ainda tem a opção.
22811 Bob
1
Resposta incrível. Shift + clique realmente funciona com 1.6.10. Depois de fazer isso, você ainda precisará confirmar o arquivo para que ele desapareça do repositório remoto.
Hotshot309
2
Este deve ser marcado como a resposta, pois é a maneira mais fácil usando TortoiseSVN
alejosoft
176

A maneira mais fácil é descrita aqui: http://tortoisesvn.net/unversion.html

Esse artigo é um pouco prolixo e alguns dos métodos não funcionaram para mim (como arrastar a pasta para si mesma - o Windows 7 não permitiria).

Aqui está o que, no artigo funcionou para mim:

Simples: quando você clica com o botão direito do mouse em uma cópia de trabalho e escolhe " Exportar ..." no menu de contexto, é exibida uma caixa de diálogo de pesquisa de pastas onde é possível escolher a pasta para a qual deseja exportar a cópia de trabalho. Se você agora selecionar o mesmo caminho em que sua cópia de trabalho está como destino (ou seja, você está exportando a cópia de trabalho para si mesma), o TortoiseSVN removerá todas as pastas .svn dessa cópia de trabalho.

Stefan
fonte
3
Stefan, tentei o procedimento que você descreveu e o TSVN me mostra a caixa de diálogo "Unversion" (com uma barra de progresso mostrando o progresso), mas depois de concluir o processo, a pasta é a mesma de antes. Eu tenho o Win7 e a pasta está em um compartilhamento de rede - isso pode ter algo a ver com o procedimento falhando (silenciosamente)? (+1 qualquer maneira, porque este procedimento é exatamente o que eu preciso)
Heinrich Ulbricht
Não deve falhar silenciosamente. Tem certeza de que as pastas .svn ocultas ainda estão lá?
Stefan
Sim, eu posso vê-los. Meu problema original é que eu quero me livrar de um diretório inteiro com check-out (incluindo subdiretórios) no compartilhamento de rede. Isso falhou porque o Windows diz que alguém está usando os arquivos. Então eu pensei que poderia ser o cache svn e que, usando um método do TSVN-world, eu poderia resolver esse problema de acesso. Mas sem sorte :(
Heinrich Ulbricht
1
Para evitar a necessidade de seguir um link, o procedimento é repetido aqui: Simples: quando você clica com o botão direito do mouse em uma cópia de trabalho e escolhe "Exportar ..." no menu de contexto, é exibida uma caixa de diálogo de pesquisa de pastas onde é possível escolher a opção pasta para a qual você deseja que a cópia de trabalho seja exportada. Se você agora selecionar o mesmo caminho em que sua cópia de trabalho está como destino (ou seja, você está exportando a cópia de trabalho para si mesma), o TortoiseSVN removerá todas as pastas .svn dessa cópia de trabalho.
Charley Rathkopf
Quando tentei, comecei a receber erros que o diretório para o qual eu havia exportado agora não era "um diretório de trabalho" e estava "obstruído" e eu deveria limpar, mas quando tentei (IIRC), recebi um erro de que o diretório diretório raiz foi bloqueado. Finalmente fiz um MOVE (arraste a pasta para uma pasta que não seja SVN e, no menu suspenso, escolha "Exportar ...") e, em seguida, exclua (ambos com o Tortoise).
Clay Nichols
12

Se você deseja remover a pasta do controle de origem, mas mantê-la localmente, a maneira mais fácil seria:

  1. crie um backup da pasta (basta copiá-lo em outro lugar)
  2. siga as instruções para excluí-lo
  3. restaurar a pasta
  4. diga ao subversion para "Ignorar" a pasta

Você também deve excluir o .svndiretório que está circulando na pasta que está removendo ou acabará confundindo svn / tortoise. Você também pode fazer uma "Exportação" para a etapa 1, que removerá todos os .svndiretórios para você (se você estiver fazendo isso para uma árvore de diretórios inteira, em vez de um único diretório, isso é muito mais conveniente do que limpar as pastas manualmente) .

AwesomeTown
fonte
1
Para (1) você pode Exportar para se livrar dos dados SVN da cópia.
Dahlbyk 02/02/09
Certo - você precisa excluí-lo através do TortoiseSVN, restaurá-lo e depois excluir todas as pastas svn contidas nele (assim como o arquivo .version).
Chance
* E depois ignorá-lo - ele trabalhou como um encanto embora (obrigado)
Possibilidade
Para mim, a exportação acabou com o repositório SVN e as marcas de verificação verdes na pasta que eu queria.
27911 Hammad Khan
7

O menu TortoiseSVN possui uma opção Exportar, que fornece uma cópia da pasta desanexada do repositório. Como alternativa, você pode clicar com o botão direito do mouse + arrastar uma pasta e escolher "Exportar SVN para aqui" ou "Exportar tudo SVN para aqui".

"Exportar tudo" é equivalente a selecionar "Exportar arquivos não versionados também" na caixa de diálogo Exportar, que efetivamente clona a cópia de trabalho sem as pastas .svn.

dahlbyk
fonte
6

Clique com o botão direito do mouse no diretório, vá para TortoiseSVN -> Excluir . Em seguida, clique com o botão direito do mouse no diretório pai e no SVN Commit ... e isso removerá a pasta.

Sean Bright
fonte
2
Isso excluirá a pasta também.
tunnuz
Esta foi a resposta que eu estava procurando ... Também a encontrei aqui: tortoisesvn.net/docs/release/TortoiseSVN_en/…
Altamente Irregular
2

Windows Search, defina sistema e sinalizadores de arquivos ocultos ... nome do arquivo ".svn" ... depois de pesquisar - classifique para que todos os diretórios .svn sejam agrupados ... destaque - pressione delete :)

Jason P Sage
fonte
2

Executei o comando tartaruga "Atualizar para SVN 1.7", que pegou todas as pastas .svn e as combinou em uma única pasta. Pude excluir apenas a pasta .svn e estava tudo pronto!

jhilden
fonte
2

Vejo que existem três métodos simples para desvendar e manter uma versão local de um arquivo (ou diretório) com o TortoiseSVN:

  1. Exportando no mesmo caminho que Stefan escreveu ;
  2. Função "delete (Keep local)" acessada com a tecla Shift como resposta de bob esponja ;
  3. Unversion e opção add to ignore list que estou relatando com esta resposta

Acho o último método o mais fácil dos três, enquanto o primeiro (o mais votado) é o mais longo em termos de operações a serem executadas.

Zac
fonte
2

Exclua a pasta .svn dentro da pasta que deseja remover do controle de versão.

akerra
fonte
1

Isto é o que funcionou para mim:

  1. Clique com o botão direito do mouse na pasta / filial que deseja excluir e use o TortoiseSNV-> Excluir
  2. Faça uma limpeza. Eu fiz isso na linha de comando svn cleanup <path to the folder to delete including folder name>; caso contrário, você pode fazer o mesmo clique com o botão direito na pasta e executar uma limpeza.
  3. Vá para o diretório pai da pasta que você deseja excluir e confirme as alterações.

Isso deve remover a pasta do seu diretório de trabalho e do Subversion.

zen
fonte
1

Exportar a pasta para um novo local enquanto a opção "Exportar arquivos não versionados para" selecionada funcionou muito bem para mim. O TortoiseSVN remove todas as configurações específicas do Subversion e você obtém uma pasta limpa. Agora você pode excluir o original e mover a nova pasta exportada para lá.

Rehan Farooq
fonte
0

De vez em quando eu corro para pastas de cópias de trabalho do Subversion que eu sei que mais querem sob controle de versão. Eu quero "desversão" deles. Normalmente, eu localizo e excluo todas as pastas relacionadas .svn, mas existe uma maneira mais fácil se você tiver o TortoiseSVN instalado.

Você deve estar familiarizado com o comando "Exportar". Isso fará uma cópia dos arquivos em um novo local sem todas as pastas .svn traquinas. Se você quiser 'unversion' alguma coisa, mas não quiser uma cópia - simplesmente faça uma “exportação” e quando o Tortoise solicitar a “pasta para a qual exportar”, basta selecionar a mesma pasta em que sua cópia de trabalho está! O Tortoise continuará removendo todas as pastas .svn.

Citação: http://thecrumb.com/2008/09/25/removing-svn-files-with-tortoisesvn/

ganhar
fonte
-1

Clique com o botão direito do mouse em uma cópia de trabalho e escolha "Exportar ..." no menu de contexto. Uma caixa de diálogo de navegação na pasta é mostrada.

Você deve escolher o mesmo caminho em que sua cópia de trabalho está como destino. O TortoiseSVN perguntará se você deseja remover todas as pastas .svn dessa cópia de trabalho. Apenas diz que sim!

Heyjee
fonte