Erreur de subversion: (méthode 405 non autorisée) en réponse à MKCOL

65

J'obtiens l'erreur suivante en essayant de valider un nouvel ajout de répertoire.

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

Je n'ai jamais vu cette erreur auparavant. Comment puis-je résoudre ce problème?

Solution
j'ai réussi à résoudre le problème:

  • Supprimez le répertoire parent du dossier posant le problème.
  • Ne mise à jour SVN.
  • Un dossier portant le même nom que le nouveau existait déjà dans le référentiel.
  • Supprimer ce dossier.
  • SVN commet.
  • Copiez le nouveau dossier, planifiez l’ajout et la validation SVN.
Sergio del Amo
la source
Manque des informations, telles que votre configuration, votre transport (HTTP / HTTPS), les messages du journal des erreurs du serveur (le plus important), si vous exécutez un service de cache Web entre client et serveur, etc.
Juliano
7
S'il vous plaît ajouter des solutions comme réponses, plutôt que d'ajouter à la question
Sam Cogan
3
Je déteste donner svn erreur et arrêter. Cela ressemble à un enfant qui pleure tout le temps. J'ai annulé, puis ajouté et commis et le serveur magiquement accepté.
Pour le référentiel de code Google, voir stackoverflow.com/a/32636072/1406510
nanosoft

Réponses:

44

Cette erreur indique généralement que le dossier que vous essayez d'ajouter existe déjà dans le référentiel. Avez-vous récemment effectué une mise à jour ou avez-vous effectué une extraction non récursive?

J'ai déjà rencontré cette erreur - trouvé un blog qui m'a dit quel était le problème. La solution était un peu plus complexe: supprimez le répertoire en question de ma copie de travail (en le copiant ailleurs), exécutez une mise à jour récursive, puis fusionnez les deux répertoires manuellement.

Edit: Opps - déjà répondu dans le corps de la question. Et là, j'étais tout excité de connaître la réponse à une question sans réponse :)

andrewc
la source
@ Andrew - eh bien, vous avez répondu correctement à la question ... @Sergio aurait dû répondre à sa propre question.
Josh
8

J'ai eu un problème similaire avec MKACTIVITY sur googlecode. C’est parce que j’ai extrait le référentiel avec http :, mais l’archivage requis https :.

Troy Daniels
la source
Bonne chance - j'étais sur le point de libérer la fureur du programmeur impatient sur ma machine. :) Vous devez soit revérifier le dossier avec https: (ou, si vous êtes sournois, effacez le dossier à l’exception du fichier .svn, puis modifiez le contenu de .svn / qui contient l’url de http => https. l'écran de validation afficherait l'URL https.)
Gishu le
5

J'ai eu la même erreur et j'ai réussi à la résoudre:

  1. SVN Renommez le répertoire problématique en "foo", ou autre chose
  2. SVN Commit
  3. SVN Renommez le nom que vous voulez
  4. SVN Commit

Je ne sais pas si cela fonctionne dans tous les cas, mais c'est plus simple que de supprimer le répertoire parent.

Sam Dutton
la source
Cette solution simple a résolu mon problème. Merci beaucoup! :)
consuela
4

Votre référentiel svn autorise-t-il les commits via HTTP? Certains référentiels, tels que SourceForge, autorisent les extractions anonymes via HTTP, mais obligent les développeurs à s’enregistrer via svn et SSH.

Dave Cheney
la source
3

Dans mon cas, j'avais des problèmes pour archiver des fichiers dans un dossier. J'ai suivi les étapes décrites par Sergio avec quelques changements.

  1. Copié le répertoire parent posant problème.
  2. Fichiers .svn supprimés dans le répertoire copié
  3. svn delete / répertoire_parent
  4. Commettre
  5. Créer un nouveau répertoire dans le repo
  6. Commettre
  7. Déplacer les sous-répertoires du répertoire copié vers le référentiel
  8. Commettre
  9. Copier des fichiers individuels
  10. Commettre

J'ai eu quelques fichiers avec lesquels j'ai eu des problèmes. Je les ai laissés en dehors du référentiel, mais je les ai recréés avec un nouveau nom.

Dawn Green
la source
2

J'ai eu ce problème lorsque j'ai supprimé un répertoire SVN, puis que je l'ai recréé, lorsque j'ai validé le nouveau répertoire ajouté, SVN a généré cette erreur. J'ai résolu le problème en exécutant un SVN sur le nouveau répertoire ajouté, puis j'ai résolu les conflits manuellement .

imikay
la source
1

En utilisant Unfuddle, un service svn hébergé, je vois à plusieurs reprises cette erreur lorsque le fichier .svn est piétiné par la copie de fichier dans le Finder OS X. Le svn incantation qui a fonctionné pour moi:

  • revenir
  • mise à jour
  • supprimer le dossier en utilisant l'URL distante
  • ajouter et valider le dossier
xentek
la source
0

Dans mon cas, j’étais en train d’ajouter un nouveau répertoire que mes métadonnées locales (client) supposaient déjà se trouver sur le serveur et Cleanup ne l’a pas rectifié. J'ai sauvegardé tous les fichiers nouveaux et modifiés, tout supprimé (sauf le dossier racine .svn), exécuté Update pour restaurer les fichiers et copié dans le répertoire les fichiers nouveaux et modifiés que j'avais sauvegardés. J'ai ajouté les nouveaux fichiers à nouveau et commis avec succès.

stimpy77
la source
0

Dans Eclipse, il est facile de réparer.

Equipe> Basculer vers une autre balise / branche

Sélectionnez, entièrement récursif et cochez Changer la copie de travail à la profondeur spécifiée

appuyer sur OK

L'icône du dossier change. Faites un clic droit et (équipe>) Marquez résolu.

C'est ça, maintenant vous pouvez vous engager.

juliangonzalez
la source
N'oubliez pas qu'Eclipse est un outil de développement et non le centre de ServerFault.
Andrew B
0

Faites une sauvegarde du dossier.
Supprimez le dossier dans le référentiel (à l'aide de Repo-Browser).
S'engager à nouveau.

Fonctionne bien pour moi.
Marcus

Marcus
la source
0

J'ai eu un problème similaire, j'ai sauvegardé le répertoire (juste pour la sécurité) que de mettre à jour le dossier svn. après cela, je pourrais commettre à nouveau. (et pas utilisé ma sauvegarde)

Ohad Cohen
la source
-1

J'ai eu un problème avec e175002 200 OK. Mais j’ai lu que le chemin du message d’erreur parlait d’un mauvais serveur. L’URL de ma ligne n’était donc pas la bonne ( http: // localhost: 80 / path / to / my / trunk / )… attendez! LOCALHOST?! ... Et maintenant, je me rends compte que c’est parce que lors de mon premier tour, mes paramètres ont envoyé mes fichiers de projet à mon référentiel localement ... Donc, lors de votre premier tour, assurez-vous que vos paramètres pour l’IP de votre serveur ne sont pas erronés car après repo contiendra des informations erronées, et vous devrez trouver un moyen de modifier ces paramètres incorrects sur celui-ci ou sur tous les clients qui souhaitent utiliser votre référentiel pour la première fois.

Ma solution était de vérifier tous les dossiers de mon projet…. sur chaque dossier, il y a le dossier .svn qui stocke les informations, et sur chaque dossier .svn, un fichier appelé "entrées" ... Dans ce fichier, il y a un chemin d'accès au serveur, j'ai remplacé la mauvaise ligne par la bonne adresse IP dans chaque entrée stockée. dans tous les dossiers .svn. Et puis plus d'erreurs.

J'espère que ça aide. :) désolé s'il est difficile de comprendre mon post ^^ 'Je suis plus difficile à essayer.

Claod
la source