Pergunta

Criei uma filial de um projeto SVN chamado 'Recursos' e agora sempre que tento atualizar o referido projeto, ele traz consigo uma pasta de recursos, que contém outra cópia do projeto da filial. Existe uma maneira de remover completamente o ramo do repositório para que isso não aconteça mais?

Foi útil?

Solução

Claro: svn rm a pasta indesejada e se compromete.

Para evitar essa situação no futuro, eu seguiria o layout recomendado Para projetos SVN:

  • Coloque seu código no/someproject/trunk pasta (ou apenas/trunk Se você quiser colocar apenas um projeto no repositório)
  • Criou ramos como /someproject/branches/somebranch
  • Coloque tags em /someproject/tags

Agora, quando você conferir uma cópia de trabalho, não deixe de conferir apenas trunk ou algum ramo individual. Não Verifique tudo em uma enorme cópia de trabalho contendo todas as filiais.1

1A menos que você saiba o que está fazendo, nesse caso, você sabe como criar cópias de trabalho superficiais.

Outras dicas

Supondo que esse ramo não seja um link externo ou simplório, remover o ramo deve ser tão simples como:

svn rm branches/< mybranch >

svn ci -m "message"

Se você quiser fazer isso no repositório, atualize -o para removê -lo da sua cópia de trabalho, você pode fazer algo como:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

Então corra:

svn update

Para aqueles que usam Tortoisesvn, você pode fazer isso usando o navegador do repositório (é rotulado como "Repo-Browser" no menu de contexto.)

context menu

Encontre a pasta da filial que você deseja excluir, clique com o botão direito do mouse e selecione "Excluir".

deleting the folder

Digite sua mensagem de confirmação e terminará.

committing

Você também pode excluir a filial diretamente no controle remoto. Tendo feito isso, a próxima atualização o removerá da sua cópia de trabalho.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

o ^ é abreviado para o URL do controle remoto, como visto em 'Info SVN'. As cotações duplas são necessárias na linha de comando do Windows, porque ^ é um personagem especial.

Este comando também funcionará se você nunca tiver conferido a filial.

Você pode excluir a pasta Recursos como qualquer outra no seu checkout e cometer a alteração.

Para evitar isso no futuro, sugiro que você siga as convenções de nomenclatura para o layout do SVN.

Dê a cada projeto uma pasta de porta -malas, ramificações e tags quando forem criadas.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags

Da cópia de trabalho:

svn rm branches/features
svn commit -m "delete stale feature branch"

O comando para excluir um ramo é o seguinte:

SVN delete -m "u003Cyour message> "u003Cbranch url>

Se você deseja não buscar/fazer checkout todo o repositório, execute o seguinte comando no seu terminal:

1) Obtenha o caminho absoluto do diretório que conterá sua cópia de trabalho
> PWD
2) Iniciar o checkout de código SVN
> checkout svnu003Cbranch url>u003Cabsolute path from point 1>

As etapas acima levarão os arquivos dentro da pasta da ramificação e não a pasta inteira.

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