Erro de subversão: (Método 405 não permitido) em resposta ao MKCOL

65

Estou recebendo o seguinte erro ao tentar confirmar uma nova adição de diretório.

svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '....

Eu nunca vi esse erro antes. Como posso resolver este problema?

Solução
que consegui resolver o problema:

  • Exclua o diretório dos pais da pasta que está causando o problema.
  • Faça a atualização do SVN.
  • Uma pasta com o mesmo nome que a nova já existia no repositório.
  • Exclua esta pasta.
  • Confirmação de SVN.
  • Copie a nova pasta, agende a adição e confirme o SVN.
Sergio del Amo
fonte
Faltam informações, como sua configuração, seu transporte (HTTP / HTTPS), as mensagens no log de erros do servidor (as mais importantes), se você estiver executando um serviço de cache da web entre cliente e servidor, etc ...
Juliano
7
Por favor, adicione soluções como respostas, em vez de adicionar à pergunta
Sam Cogan
3
Eu odeio svn dando erro e pare. Parece uma criança choramingando o tempo todo. Eu reverti, do que acrescentou, em seguida, comprometido e servidor mágico aceito.
Para o repositório de código do google, consulte - stackoverflow.com/a/32636072/1406510
nanosoft

Respostas:

44

Esse erro geralmente indica que a pasta que você está tentando adicionar existe no repositório - você fez uma atualização recentemente ou fez um checkout não recursivo para começar?

Eu já encontrei esse erro - encontrei um blog que me dizia qual era o problema. A solução foi um pouco mais complexa, remova o diretório em questão da minha cópia de trabalho (copiando-o para outro lugar), execute uma atualização recursiva e mescle os dois diretórios manualmente.

Edit: Opps - já respondeu no corpo da pergunta. E aqui estava eu ​​todo empolgado por saber a resposta para uma pergunta sem resposta :)

andrewc
fonte
@ Andrew - bem, você respondeu a pergunta corretamente ... @Sergio deveria ter respondido sua própria pergunta.
26410 Josh
8

Eu tive um problema semelhante com o MKACTIVITY no googlecode. Foi porque eu havia feito o check-out do repositório com http :, mas os check-ins exigiam https :.

Troy Daniels
fonte
Ótima captura - eu estava prestes a provocar a fúria do impaciente programador em minha máquina. :) Você precisa verificar novamente a pasta com https: (ou, se estiver furtivo, limpe a pasta, exceto o .svn, modifique o conteúdo de .svn / entradas que possui o URL de http => https. A tela de confirmação mostraria a URL https.) #
306
5

Eu recebi o mesmo erro e consegui resolvê-lo:

  1. SVN Renomeie o diretório problemático para 'foo' ou qualquer outra coisa
  2. Commit SVN
  3. SVN Renomeie de volta para o nome que você deseja
  4. Commit SVN

Não tenho certeza se isso funciona em todos os casos, mas é mais simples do que excluir o diretório pai.

Sam Dutton
fonte
Essa solução simples resolveu meu problema. Muito obrigado! :)
consuela
4

O seu repositório svn permite confirmações via HTTP? Alguns repositórios, como o SourceForge, permitem check-out anônimo via HTTP, mas exigem que os desenvolvedores façam check-in via svn e SSH.

Dave Cheney
fonte
3

No meu caso, estava com problemas para fazer o check-in de arquivos dentro de uma pasta. Segui os passos descritos por Sergio com algumas alterações.

  1. Copiou o diretório pai do problema.
  2. Arquivos .svn excluídos no diretório copiado
  3. svn delete / parent_directory
  4. Cometer, entregar
  5. Crie um novo diretório no repo
  6. Cometer, entregar
  7. Mover subdiretórios do diretório copiado para repo
  8. Cometer, entregar
  9. Copiar arquivos individuais
  10. Cometer, entregar

Eu tinha alguns arquivos com os quais tive problemas. Deixei-os fora do repositório, mas os recriei com um novo nome.

Dawn Green
fonte
2

Eu tive esse problema ao remover um formulário de diretório SVN e, em seguida, recriá-lo. Quando confirmei o novo diretório adicionado, o SVN gerou esse erro. Resolvi o problema executando um SVN no novo diretório adicionado e resolvi os conflitos manualmente .

imikay
fonte
1

Usando Unfuddle, um serviço svn hospedado, vejo repetidamente esse erro quando o .svn é atropelado pela cópia de arquivos no localizador do OS X. O encantamento svn que funcionou para mim:

  • reverter
  • atualizar
  • exclua a pasta usando o URL remoto
  • adicionar e confirmar a pasta
xentek
fonte
0

No meu caso, eu estava adicionando um novo diretório que meus metadados locais (cliente) supunham já estar no servidor e a Limpeza não o corrigiu. Fiz backup de todos os arquivos novos e modificados, apaguei tudo (exceto a pasta .svn raiz), executei o Update para restaurar os arquivos e copiei no diretório os arquivos novos e modificados dos quais fiz backup. Adicionei os novos arquivos novamente e confirmei com sucesso.

stimpy77
fonte
0

No Eclipse, é fácil de corrigir.

Equipe> Mudar para outra tag / filial

Selecione, totalmente recursivo e marque Alterar cópia de trabalho para a profundidade especificada

pressione OK

O ícone da pasta é alterado. Clique com o botão direito do mouse e (equipe>) Marcar Resolvido.

É isso, agora você pode se comprometer.

juliangonzalez
fonte
Lembre-se de que o Eclipse é uma ferramenta de desenvolvimento e não é realmente o foco do ServerFault.
Andrew B
0

Faça um backup da pasta.
Exclua a pasta no repositório (usando o Repo-Browser).
Confirme novamente.

Funciona bem para mim.
Marcus

Marcus
fonte
0

tive um problema semelhante, fiz backup do diretório (apenas por segurança) do que atualize a pasta svn. depois disso eu poderia cometer novamente. (e não usou meu backup)

Ohad Cohen
fonte
-1

Eu tive um problema com o e175002 200 OK. Mas eu li que o caminho na mensagem de erro estava falando sobre um servidor errado, então a URL do meu tronco não era boa ( http: // localhost: 80 / caminho / para / meu / tronco / ) ... espere! LOCALHOST ?! ... E agora percebo que é porque na minha primeira rev, minhas configurações enviaram meus arquivos de projeto para o meu repositório localmente ... Então, na sua primeira rev, verifique se as configurações do IP do seu servidor não estão erradas, porque depois disso ... O repo conterá informações incorretas e você terá que encontrar uma maneira de modificar essas configurações ruins ou em todos os clientes que desejam usar seu repo pela primeira vez.

Minha correção foi verificar todas as pastas do meu projeto…. em todas as pastas existe a pasta .svn que armazena informações e em todas as pastas .svn um arquivo chamado "entradas" ... Nesse arquivo existe um caminho para o servidor, substitui a linha incorreta pelo bom IP em todas as entradas armazenadas em todas as pastas .svn. E então não há mais erros.

Espero que ajude. :) desculpe se é difícil entender meu post ^^ 'Eu estou tentando mais.

Claod
fonte