Comment puis-je réparer & # 8220; mis à niveau & # 8221; répertoires de travail de subversion?

StackOverflow https://stackoverflow.com/questions/135543

  •  02-07-2019
  •  | 
  •  

Question

Cela peut sembler stupide, mais je rencontre parfois 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 subversions telles que la mise à jour, la validation, etc., je ssh sur le serveur et 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, lorsque j'essaie de faire la même chose sur le serveur de développement dans ma session SSH, Subversion indique que la version / répertoire de travail a une mauvaise version. La version de subversion sur le serveur est plus ancienne que la version de mon ordinateur portable. Je suppose donc que ma version (la plus récente) met à niveau les répertoires de travail de manière à ce qu'ils soient incompatibles avec l'ancienne version sur le serveur de développement. Il est parfois utile de supprimer les fichiers .svn / lock, mais uniquement si je le fais juste après avoir exécuté la commande Subversion sur mon bloc-notes. Lorsque j'exécute ensuite la commande sur le serveur de développement, les fichiers de verrouillage disparaissent et je ne vois aucun moyen de récupérer le paiement. Ce ne serait pas si grave si le référentiel n'était pas si grand. Surtout quand j'ai fait beaucoup de changements et que je ne peux pas les valider.

La seule solution que je vois pour le moment consiste à copier les fichiers que j'ai modifiés quelque part, à supprimer la commande, à effectuer une nouvelle commande complète et à copier les fichiers à nouveau.

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

MISE À JOUR La FAQ liée à Mikael Sundberg contenait la réponse. Je l'écris ici, car il ne le mentionne pas explicitement. Il existe un script qui peut rétrograder les référentiels mis à niveau lorsqu'il est sûr:

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

Était-ce utile?

La solution

Peut-être que cette entrée de FAQ pourrait être utile: http://subversion.tigris.org/faq.html#working- changement de format de copie

Autres conseils

Je ne suis pas sûr de bien comprendre votre problème, mais voici quelques astuces:

Premier conseil - avez-vous essayé la commande Nettoyer de SVN?

Le prochain est probablement inutile pour vous :), mais beaucoup de gens qui utilisaient CVS ne réalisaient pas que SVN avait une telle fonctionnalité, alors je l'écris.

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

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

Le prochain conseil pourrait vous aider à éviter de mélanger vos coquilles.

Vous avez écrit que vous utilisiez le shell SSH - pour éviter les problèmes de mixage de sessions shell, j’utilise toujours une couleur d’arrière-plan différente pour chaque serveur (et compte), que je me connecte (c’est-à-dire blanc sur noir pour le développement, jaune sur marine sur le serveur de test et jaune sur le vert sur le serveur de production).

Cela me sauve plusieurs fois:).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top