Que signifie "obstrué" quand vous essayez de vous connecter à Subversion? Je vois deux dossiers en rouge avec le statut de texte "obstrué". Je ne vois pas ce que cela signifie nulle part dans la documentation.
Lorsque j'essaie la commande cleanup
, le message "le nom du dossier n'est pas un répertoire de travail". C’est un dossier que je viens de créer dans VS, et quand j’essaie de l’ajouter à Subversion, cela me donne cette erreur. Tous les autres dossiers vont bien.
cela se produit lorsque vous avez supprimé ou déplacé les sous-répertoires .svn (sans passer par les commandes SVN). SVN a donc une vue corrompue de la copie de travail.
Essayez d’abord un nettoyage et, si cela ne résout pas le problème, rétablissez (ou mettez à jour) le répertoire pour restaurer les dossiers du sous-répertoire .svn.
Sans savoir quoi cela en est la cause, la solution peut consister à exporter la copie de travail (la totalité de la commande que vous avez localement) vers un autre emplacement.
Si vous utilisez tortoisesvn, vous avez la possibilité "d'exporter des fichiers sans version", mais je pense que si vous le faites depuis la ligne de commande, cela n'exportera que les fichiers versionnés. .
Une fois cela fait, extrayez une copie de travail vierge, puis déposez la sauvegarde exportée que vous avez par dessus. Il est très important que la sauvegarde ne contienne aucun dossier .svn.
J'ai déjà vu ces erreurs lorsque des personnes ont extrait des copies de travail dans d'autres copies de travail ou quoi que ce soit d'autre qui corrompt les entrées .svn.
Avait le même problème et résolu comme ça:
Si vous êtes sur un système * nix, assurez-vous de ne pas créer de fichier, ajoutez-le à SVN, puis supprimez-le en le remplaçant par un dossier du même nom. N'aide pas OP, mais j'espère que cela évitera à quelqu'un beaucoup de stress.
Rien n'a fonctionné pour moi alors j'ai fait ce qui suit:
Face à ce problème sur une machine Windows.
J'avais jeté un coup d'œil à l'annuaire avant d'avoir emprunté tout le projet auquel il appartenait. Cela a provoqué pour moi le problème «obstrué».
J'ai simplement supprimé ce dossier et lancé une mise à jour à partir de la racine (de ce dossier). Cela a bien fonctionné.
Des commandes comme le nettoyage, etc. ne fonctionnaient pas pour moi.
Un mot d'avertissement:
Bonne chance.
Cela signifie que, pour une raison quelconque, un conflit est survenu pendant l'opération. Vérifiez s'il existe un fichier ou un dossier non versionné portant le même nom qu'un fichier versionné.
(Paraphrasé à partir du fichier d'aide du client Tortoise SVN)
Je l’ai aussi vu sous Windows après avoir créé un lien symbolique vers un répertoire de référentiel; dans ce cas, la racine du référentiel est vue comme "obstruée". Cela ne semble pas avoir d'effet, cependant.
Étapes à suivre pour reproduire:
Commander votre repo
svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir
Vérifiez que votre répertoire est OK
cd plugin_dir
svn st -u
La sortie devrait être
Status against revision: 1234
Créez le lien symbolique (qui montre le problème)
cd ..
mklink /d link_dir plugin_dir
cd link_dir
svn st -u
La sortie sera
~ 1234 .
Status against revision: 1234
Il existe différentes variantes de scénario pouvant provoquer cette situation . En voici un exemple:
J'ai fini avec le! marquer sur un répertoire renommé de www à www_a sans utiliser la commande 'svn rename':
Vous devriez obtenir un répertoire de travail svn correct à ce stade. Et apprenez une ou deux choses sur la façon de résoudre la confusion dans le répertoire svn.
J'obtiens ce statut "obstrué" sur les répertoires lorsque je mets à jour un CMS (WordPress ou Drupal) via l'interface Web - l'application ne sait pas que son code est en réalité une copie de travail Subversion; répertoire (y compris le répertoire .svn
) et vous place dans un nouveau répertoire à partir de la nouvelle version du plugin.
Pour récupérer ce répertoire .svn
, à partir du répertoire contenant le répertoire obstrué. Je fais une caisse avec --force
. Par exemple, si plugin_dir
est marqué "~", à partir de son répertoire parent, je lance:
svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir
Tous les fichiers déjà présents sont laissés seuls et marqués "E" sur le résultat de la commande d'extraction (marqués par "M" lorsque j'exécute svn status
).
Je dois parfois revenir en arrière et ajouter des fichiers nouveaux avec la mise à jour; ou supprimer des fichiers qui devraient être supprimés dans le cadre de la mise à jour, car ils sont réapparus lorsque j'ai effectué le paiement. Je crois que ceux-ci sont marqués "A" à la caisse, mais un svn status
ultérieur ne les mentionnera pas.
Cela peut également se produire lorsque vous mettez à niveau votre Subversion vers une version non prise en charge par XCode.
J'ai rencontré ce problème dans Eclipse où certains fichiers étaient marqués d'un point d'exclamation rouge. Le problème était un dossier .svn errant dans le répertoire source. J'ai supprimé le dossier .svn, actualisé Eclipse et réussi à archiver les fichiers.
J'ai rencontré ce problème lorsque j'ai collé un dossier avec des sous-répertoires dans ma copie de travail à l'aide de mon client FTP - je savais que je me suis trompé dès que j'ai cliqué sur le bouton de transfert ... les risques de travailler trop tard.
J'ai essayé toutes les suggestions ci-dessus et d'autres trouvées en ligne sans succès. Chaque option produisait l'erreur que mon répertoire était verrouillé et que l'opération ne pouvait pas être effectuée.
Je suis allé dans ma copie Time Machine, j'ai restauré le répertoire et j'étais prêt à partir. J'ai nettoyé la copie de travail par précaution, mis à jour correctement mes fichiers et je suis retourné dans les affaires.
Voici le moyen le plus simple (et le plus sûr) que j'ai trouvé pour résoudre ceci:
.svn
du répertoire renommé (le cas échéant).svn revert
l'objet renommé (et maintenant manquant) de l'étape 1.svn delete
l'objet retourné.Nous avons souvent plusieurs succursales en même temps en même temps, afin de me sauver de la commutation ou de la gâchis avec IIS - configuration, je vérifie chaque branche dans un dossier séparé. J'utilise ensuite la liaison de répertoire pour relier ces dossiers au chemin principal configuré dans IIS.
Donc, pour moi, le répertoire lié a toujours une exclamation jaune et est marqué comme obstrué. Je pense que c’est parce qu’il a été techniquement créé/déplacé en dehors de SVN.
Cela m’est arrivé lorsque j’ai remplacé un fichier par un dossier portant exactement le même nom . Résolu en supprimant l’ancien fichier, commit, puis en ajoutant le nouveau . Un petit hacky, mais qui a fonctionné pour moi: )