J'ai accidentellement supprimé un dossier dans SVN et je l'ai rajouté immédiatement. J'ai rencontré un problème avec cela et ma solution a fini par supprimer complètement le dossier de ma copie locale ainsi que la copie du serveur. Je peux effectuer des mises à jour et des validations sans problème sur tout autre fichier ou dossier, mais si j'essaie de créer un dossier du même nom, d'ajouter et de valider, l'erreur suivante s'affiche:
svn: le serveur a envoyé une valeur de retour inattendue (méthode 405 non autorisée) en réponse à la demande MKCOL de '/ svn/www /! svn/wrk/9de0d765-2203-456c-af16-58e792ec7ac0/trunk/htdocs/solutions/medical'
J'ai exécuté d'innombrables nettoyages, commits, mises à jour, etc. Rien ne résout le problème. Des idées?
Pour votre information, je n'ai pas la possibilité de renommer le dossier de niveau supérieur.
Mon hypothèse est que le dossier que vous essayez d'ajouter existe déjà en SVN. Vous pouvez confirmer en extrayant les fichiers dans un autre dossier et voir si le dossier contient déjà le dossier requis.
Le moyen le plus rapide pour résoudre ce problème était de dupliquer le dossier affecté et de le valider avec un autre nom. Ensuite svn mv duplicateFolder originalFolder
. Plutôt facile.
Alors, prenez folder1 et faites un folder1Copy:
svn delete folder1
svn add folder1Copy
S'engager et mettre à jour:
svn mv folder1Copy/ folder1/
S'engager à nouveau et c'est corrigé.
Mon dossier "disparu" était libraries/fof
.
Si je l'ai supprimé, puis exécuté une mise à jour, il ne s'afficherait pas.
cd libaries
svn up
(Rien ne se passe).
Mais mise à jour avec le nom actuel:
svn update fof
fait le tour et il a été mis à jour. J'ai donc explosé ma copie de travail (archivée manuellement) sur cette copie, puis je l'ai réengagé. La solution la plus simple.
Je viens de corriger cela dans mon propre référentiel. J'utilise TortoiseSVN sous Windows, je ne sais donc pas exactement à quelles commandes cela se traduit en ligne de commande, mais voici ce que j'ai fait:
Le dossier problématique s'appelle lib
et devait être ajouté.
libs
, ce n’est pas important) à l’aide du menu contextuel Windows, je l’ai ajouté et j’ai commis avec succès.lib
en utilisant le menu contextuel de TortoiseSVN (c'est probablement important), puis à nouveau validé.J'ai également rencontré ce problème tout à l'heure et l'ai résolu de cette façon. Alors je l'ai enregistré ici, et je souhaite que ce soit utile pour les autres.
Scénario:
L'erreur s'est produite.
Solution:
J'avais un problème similaire. J'ai fini par l'envoyer en orbite et j'ai perdu mon historique SVN. Mais au moins j'ai fait cette fichue erreur disparaître.
Il s’agit probablement d’une séquence de commandes sous-optimale à exécuter, mais elle doit suivre de près la séquence de commandes que j’ai réellement utilisée pour que les choses fonctionnent:
cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
Si tu utilises code.google.com
pour héberger votre référentiel Subversion.
Vous savez ci-dessous des choses, non?
If you plan to make changes, use this command to check out the code as yourself using HTTPS:
# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...
When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:
# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only
L'erreur que vous avez mentionnée exactement vous utilisez Non-members may check out a read-only working copy anonymously over HTTP
_ statut. Par conséquent, vous ne pouvez rien commettre ou faire jusqu'à présent.
Tu dois utiliser Project members authenticate over HTTPS to allow committing changes
chose.
Ce sera bien maintenant.
J'ai rencontré le même problème et j'ai pu le résoudre en:
Cela signifie que le dossier/fichier que vous essayez de mettre sur svn existe déjà là-bas. Mon conseil est que, avant de faire quoi que ce soit, cliquez avec le bouton droit de la souris sur le dossier/fichier et cliquez sur repo-browser. Ce faisant, vous pourrez voir tous les fichiers/sous-dossiers, etc. déjà présents sur svn. Si le fichier/dossier requis n'est pas présent sur le svn, il vous suffit de supprimer (après la sauvegarde) le fichier que vous souhaitez ajouter, puis d'exécuter une mise à jour.
Le répertoire actuellement ajouté est déjà validé dans le référentiel. Supprimez donc le répertoire du référentiel et validez le même répertoire.