2010-11-19 19 views
11

J'ai un projet où j'utilise Bitbucket comme serveur HG, mais j'ai récemment découvert qu'en tant que développeur solitaire, je peux utiliser Fogbugz/Kiln gratuitement. Je veux déplacer mes fichiers dans Kiln mais je ne veux pas perdre mon historique. Je suis sûr qu'il y a un moyen facile de le faire, mais je ne sais pas. Comment puis-je faire cela?Comment migrer d'un serveur Mercurial à un autre sans perdre mon historique?

Merci!

Répondre

11

Créer le nouveau repo et procédez comme suit avec votre copie actuelle du repo projet original: hg push new-repo-path.

Ensuite, vous utilisez le nouveau chemin dans le futur. Vous pouvez supprimer le repo bitbucket. Avec Mercurial, tout l'historique se trouve dans chaque copie du référentiel, y compris vos copies locales.

+0

ok cool ... puis après je pousse, puis-je cloner à partir du nouveau chemin repo afin que le futur pousse rediriger là? – Jason

+0

@Jason non - vous pouvez simplement modifier '.hg/hgrc' et mettre à jour le chemin du dépôt par défaut. Tout repo Mercurial peut pousser/tirer vers n'importe quelle autre copie du même référentiel sans problème, et il n'y a rien d'autre que '.hg/hgrc' liant un dépôt à sa source d'origine. –

3

Puisque vous utilisez déjà Mercurial. J'étais juste curieux, ne devrait pas cloner votre référentiel sur Fogbugz/Kiln être suffisant.

hg clone "BitBucket Repo ..." 

Bien sûr, ceci ne copiera pas votre fichier hgrc par référentiel. Vous devrez le faire séparément.

Une autre approche consiste à utiliser un ensemble.

hg bundle --all bitbucket.bundle 
hg clone bitbucket.bundle my_repo 

troisième approche consiste à pousser ou tirer de repo bitbucket à repo FogBugz.

Réglage par défaut

Voir: https://www.mercurial-scm.org/wiki/TipsAndTricks.

reproduis ici:

Il est possible de stocker une URL push par défaut qui sera utilisé lorsque vous tapez « hg push ». Modifier hgrc et ajouter quelque chose comme:

[paths] 
default-push = ssh://[email protected]/path 
+0

je pensais sur le clonage juste mon repo, mais je veux vous assurer que quand je 'hg push' il va au nouveau repo FogBugz au lieu du bitbucket un – Jason

+0

@ Jason: que vous devez faire en réglant les paramètres par défaut. Voir ma réponse éditée. – pyfunc

0

Les autres réponses ont déjà expliqué que juste après la création d'un nouveau référentiel vide, vous pouvez y insérer vos modifications avec hg push http://example.com/hg/newrepo. (Notez qu'une fois que vous y aurez apporté des modifications, il n'acceptera plus que les modifications des dépôts associés.)

Vous vous demandez également comment configurer votre référentiel local pour y accéder. emplacement par défaut, sans avoir à spécifier l'URL à chaque fois. Vous pouvez le faire en éditant le default location dans le fichier .hg\hgrc de votre dépôt. C'est un fichier texte que vous pouvez ouvrir avec le bloc-notes ou tout autre éditeur de texte.