2011-01-14 7 views
5

Nous avons récemment déplacé notre serveur SVN d'un centre de données à un autre, et l'adresse IP du serveur a changé. J'ai utilisé svn switch --relocate old_url new_url pour mettre à jour ma copie de travail réelle, et c'était heureux.git-svn après le déplacement d'un dépôt SVN?

Cependant, je fais la plupart de mon travail dans une version git locale du dépôt (en utilisant git-svn, évidemment). Après avoir déplacé le serveur SVN, je mis à jour l'URL de la prise en pension à .git/config, mais lorsque je tente d'utiliser dcommit, je reçois cette erreur:

Unable to determine upstream SVN information from HEAD history. 
Perhaps the repository is empty. at /home/me/libexec/git-core/git-svn line 520. 

Qu'est-ce que je manque?

Répondre

4

En général, ce n'est pas quelque chose que git-svn supporte directement. Le plus gros problème est que git-svn utilise le "git-svn-id" (visible dans le journal de validation pour chaque commit) pour identifier de manière unique les commits de SVN - et l'URL SVN fait partie de cet ID. Si l'URL change, cela invalide à peu près tout votre historique existant.

Il existe des solutions de contournement décrites here qui semblent devoir fonctionner, mais elles ne sont pas vraiment simples et je n'en ai pas essayé aucune moi-même.

+0

Merci. J'avais craint que ce soit le cas, mais je ne m'inquiète pas trop de perdre mon travail. Je peux toujours tirer dans mes branches après avoir réimporté les trucs SVN. – codekoala

+1

J'ai essayé la solution de contournement décrite dans le lien sur [GitSvnSwitch] (https://git.wiki.kernel.org/index.php/GitSvnSwitch) et cela a fonctionné pour moi. – ldav1s

+0

Oui, en utilisant le même 'url' et' rewriteRoot' dans mon '.git/config', j'ai fait le tour pour moi aussi! Fantastique! – codekoala

0

Il est possible de le faire avec git-svn en clonant les deux repos, en les fusionnant, puis en reconstruisant les métadonnées de git-svn.

Voir ma réponse here.

Questions connexes