2010-03-16 9 views
0

Hier soir, j'ai fait un peu de ménage sur notre dépôt de code - j'ai essentiellement déplacé le code de/repo/trunk vers/repo/projectname/trunk.Trac: les modifications ont été perdues après le changement du chemin du référentiel SVN

J'ai modifié le chemin du repo sur mon trac.ini - après quoi trac s'est plaint que le référentiel devait être resynchronisé. Donc j'ai couru:

trac-admin /var/trac/projectname resync 

et tout allait bien.

Puis j'ai vérifié les changesets par rapport au ticket et j'ai trouvé que trac n'avait plus de lien pour montrer le code contre changesets - dit "No changeset XXX in repository".

Est-ce que quelqu'un ici a eu le même problème qu'ils ont réussi à résoudre? J'ai besoin des liens cassés pour le changeset fixe.

Merci

Répondre

2

me semble que vous avez fait:

svn mv <repobaseurl>/trunk <repobaseurl>/projectname/trunk 

ensuite changé trac.ini de

repository_dir = /path/to/repo 

à

repository_dir = /path/to/repo/projectname 

Ce que vous avez fait est de p oint Trac à un sous-ensemble de votre référentiel ... à savoir, seulement les changesets qui affectent le sous-répertoire projectname du référentiel. Ceci est généralement appelé référentiel "délimité".

Vous avez deux choix:

  1. Vous pouvez changer le repository_dir à ce qu'elle était et vous verrez tous vos changesets, et verra l'histoire remontant à travers votre reorg. Correctif simple.
  2. Vous pouvez utiliser svndumptool.py pour déplacer de manière rétroactive tous vos changesets pour qu'ils aient toujours été sous projectname au lieu de la racine du référentiel et laisser repository_dir comme vous l'avez. Plus difficile, peut-être même pas ce que vous voulez.
+0

Merci pour cette explication détaillée. Je l'ai signalé à mon ancien repo et il est de retour à fonctionner correctement. –