2008-09-25 8 views
1

Cela peut sembler stupide, mais parfois je rencontre des conflits de version entre deux versions de subversion. Je monte un répertoire sur un serveur de développement avec sshfs puis édite le code avec mon Vim local. Pour les trucs de subversion comme la mise à jour, la validation etc. Je ssh sur le serveur et je le fais là. Cependant, parfois je mélange mes shells et fais accidentellement une mise à jour ou une validation dans mon shell local dans le répertoire monté. Subversion se termine avec une erreur, ce qui est bien. Cependant, quand j'essaie de faire la même chose sur le serveur de développement de ma session ssh, subversion dit que le répertoire de travail/subversion a une mauvaise version. La version subversion sur le serveur est plus ancienne que la version sur mon portable, donc je suppose que ma version (plus récente) met à jour les répertoires de travail de sorte qu'ils sont incompatibles avec l'ancienne version sur le serveur de développement. Parfois, la suppression des fichiers .svn/lock aide, mais seulement si je le fais juste après avoir exécuté la commande subversion sur mon ordinateur portable. Lorsque j'exécute la commande sur le serveur de développement par la suite, les fichiers de verrouillage disparaissent et je ne vois pas comment sauver la commande. Ce ne serait pas si mauvais si le dépôt n'était pas si gros. Surtout quand j'ai fait beaucoup de changements et que je ne peux pas les commettre.Comment réparer les répertoires de travail subversion "mis à jour"?

La seule solution que je vois en ce moment est de copier les fichiers que j'ai changés quelque part, d'enlever la caisse, de faire une nouvelle vérification complète et de recopier les fichiers.

Existe-t-il une meilleure solution pour sauver une caisse cassée et/ou mes changements?

MISE À JOUR La FAQ Mikael Sundberg liée contenait la réponse. Je l'écris ici, parce qu'il ne le mentionne pas explicitement. Il y a un script qui peut déclasser des dépôts mis à niveau, quand il est sûr:

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

Répondre

0

Je ne sais pas si je comprends bien votre problème, mais ici sont quelques conseils:

Premier conseil - avez-vous essayé SVN Commande propre? Le prochain est probablement inutile pour vous :), mais beaucoup de gens qui utilisent CVS ne se rendent pas compte que SVN a une fonctionnalité comme ça, donc je l'écris.

Si vous utilisez Windows et Tortoise SVN client, vous pouvez choisir la commande Afficher le journal depuis le menu contextuel (bouton droit de la souris). Lorsque la liste des enregistrements apparaît, choisissez le dernier bon et choisissez dans la commande du menu contextuel revenir à cette révision.

Dans les autres cas (ne pas Windows ni Tortoise SVN), recherchez documentation pour la version de ligne de commande des commandes décrites ci-dessus.

La prochaine astuce pourrait vous aider à éviter de mélanger vos coquilles. Vous avez écrit que vous utilisez le shell SSH - pour éviter les problèmes de mixage des sessions shell, j'utilise toujours une couleur d'arrière-plan différente pour chaque serveur (et compte), auquel je me connecte (blanc sur noir pour le développement, jaune sur la marine sur le serveur de test et jaune sur le vert sur le serveur de production).

Cela me sauve plusieurs fois :).

+0

Merci, mais malheureusement après la mise à niveau du référentiel, Subversion ne fait plus aucune commande *, pas même «log» ou «status», donc votre solution ne fonctionnera pas. – jkramer

Questions connexes