Récupération à partir d'une sauvegarde du référentiel Subversion légèrement obsolète

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

Question

Un problème que j'ai rencontré il y a quelque temps et pour lequel je n'ai jamais trouvé de bonne solution...

Supposons que vous ayez une copie de travail extraite de Subversion à la révision 7500 et que le disque contenant le référentiel actuel meurt.Vous disposez d'une sauvegarde du référentiel, par exemple, à la révision 7450.Il est facile de restaurer la sauvegarde du référentiel, mais toute tentative d'utilisation de la copie de travail génère une erreur indiquant que la révision 7500 n'existe pas dans le référentiel.

Quelle est la meilleure façon d'archiver une révision gigantesque pour amener le contenu du référentiel à correspondre au contenu de la copie de travail et remettre cette copie de travail à un état fonctionnel ?

(Idéalement, j'aimerais quelque chose de plus simple que de devoir extraire une toute nouvelle copie de travail, puis de copier tous les fichiers manuellement - je pense qu'à l'époque, les copies de travail étaient utilisées pour gérer la configuration des serveurs, donc c'était vraiment pénible d'avoir pour vérifier les copies de travail propres)

Était-ce utile?

La solution

Vous pouvez extraire une copie rev.7450 quelque part, puis exporter votre copie 7500 (pour supprimer les dossiers .svn).Faites glisser la copie exportée (qui est la dernière copie) sur la copie 7450.Tous les nouveaux fichiers doivent simplement écraser les anciens, en laissant les dossiers .svn identiques.

Subversion supposera que vous venez d'apporter de nombreuses modifications au 7450, et le prochain enregistrement le définira sur 7451.

Autres conseils

Effectuez une nouvelle extraction dans un autre dossier, puis utilisez un programme de comparaison pour créer un correctif.appliquez le correctif à votre nouvelle copie de travail.

Si vous êtes sûr d'avoir la dernière version dans votre répertoire, procédez comme suit :

  1. Supprimer l'élément du référentiel
  2. Supprimez les références SVN de votre copie
  3. Enregistrez votre code en tant que nouvelle copie.
  4. Vérifiez le code que vous venez d'enregistrer

Vous pouvez remplir les numéros de révision manquants en chargeant un fichier de vidage contenant un tas de révisions vides.Il y a des réponses expliquant comment procéder sur Comment puis-je changer le numéro de révision d'un référentiel.Chargez toutes les révisions sauf une de cette façon, vous pourrez alors simplement enregistrer toutes vos modifications dans une dernière révision géante.

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