web-dev-qa-db-fra.com

SVN X reste en conflit d'arborescence

J'utilise VisualSVN (qui utilise Tortoise). J'ai accidentellement déplacé un dossier vers un autre emplacement. Quand essaye de le déplacer en arrière, SVN vomit avec cette erreur. C'est arrivé une fois auparavant et j'ai réussi à faire des mises à jour/commits aléatoires, ne sachant pas ce que je faisais et cela a été "corrigé". Je ne peux plus utiliser la même magie et j'ai donc besoin de savoir comment récupérer mes fichiers, mon répertoire et les conflits d'arbres.

Merci! 

24
Paul Knopf

J'ai eu la même erreur (conflit d'arbre), mais d'un flux de travail différent.

Trouvez quel processus a le verrou. Téléchargez Handle.exe et ouvrez le dossier dans lequel vous avez extrait le fichier. Ensuite, lancez "C:\path\handle.exe" "C:\path\FileOrFolder".

https://technet.Microsoft.com/en-us/sysinternals/bb896655.aspx

Workflow à reproduire:

- delete folder (having one of the files locked by a program that is within this folder)
- commit parent folder of folder you deleted, and look for red text of the folder you deleted (it should be brown, not red if there aren't issues in SVN)

Pour réparer:

- forcefully kill the lock (or close the program so it releases the lock)
- run cleanup command on folder you deleted
- revert folder you deleted
- delete folder you deleted
- commit parent folder of folder you deleted
15
MacGyver

Je ne sais pas dans quel état il se trouve maintenant, mais votre meilleur pari serait probablement de:

  1. Déplacez complètement le dossier de votre référentiel
  2. Faire un svn cleanup
  3. Faire un svn update
  4. Copiez les fichiers du dossier (sans les fichiers .svn) en écrasant les anciens fichiers source qui venaient d'être mis à jour.
17
Brian R. Bondy

http://rubyjunction.us/Subversion-hell-sh

Modifier

Voici le script Shell du lien, qui pourrait être utile aux utilisateurs de Linux/Unix ...

#!/bin/sh

if [ "" == "$1" ] ; then
  echo "Usage: Subversion-hell.sh A_PROJECT"
  echo "A_PROJECT should be a Subversion folder you are having problems with,"
  echo "and you should be in the folder above A_PROJECT"
fi

DIR=`pwd`
PWD=$DIR
DIR=`echo $DIR | sed s/^.*\\\/trunk/trunk/`

mkdir ~/tmp/       2>/dev/null
rm -Rf ~/tmp/$1   2>/dev/null
mv ~/$DIR/$1 ~/tmp/
find ~/tmp/$1/ -iname '.svn*' -exec rm -Rf {} \; 2>/dev/null
cd $PWD
echo svn co YOUR_URL_HERE/$DIR/$1 $1
svn co YOUR_URL_HERE/$DIR/$1 $1
cp -Rf ~/tmp/$1/* $PWD/$1/

# YOUR_URL_HERE can be found by looking in file .svn/entries, near the top
2
Rod McLaughlin

J'ai eu le même problème lorsque j'ai essayé de supprimer une branche sur l'environnement Linux. Ce que j'ai fait était:

  1. svn revert branch 
  2. svn up
  3. svn nettoyage
  4. svn remove branch - marque à nouveau la branche pour suppression
  5. svn ci

Je ne sais pas quel était le problème, mais je l’ai vécu deux fois en deux semaines.

1
satmovi

Conservez une sauvegarde du dossier que vous avez déplacé. Maintenant dans SVN, cliquez sur TortoiseSVN >> Résolu. Sélectionnez les fichiers/dossiers et résolvez-les. Maintenant, mettez à jour/validez les données svn.

0
Shravan Hosamani