2011-01-21 6 views
3

Nous avons un dépôt myproject - comme la prise en pension est presque prêt pour la libération que nous créons myproject-1_0. La version 2 dev continuera en myproject tandis que les modifications mineures et corrections de bugs iront dans myproject-1_0. Quelle est la meilleure façon de fusionner myproject-1_0 changements dans myproject?Mercurial gestion de plusieurs référentiels

Est-ce la meilleure approche:

$ cd myproject 
$ hg pull ../myproject-1_0 
$ hg merge 
$ hg commit -m 'Merge bugfix from 1.0 branch' 
$ hg push 

?

Que se passerait-il si nous avons fait cette fusion le 1er février alors nous avons fait plus de changements dans myproject-1_0? Aurions-nous suivre les étapes à nouveau et le hg pull ../myproject-1_0 serait tout simplement tirer les changesets fait après la traction sur le 1 février?

Dans le repo myproject, est-il possible de faire une hg log et de déterminer qui changesets est venu de myproject-1_0 et ceux qui sont venus de myproject?

Y at-il d'autres recommandations au sujet de cette approche générale?

Répondre

6

questions dans l'ordre:

  • Est-ce la meilleure approche? - oui, sauf si vous voulez utiliser des branches nommées et conserver tout dans un dépôt
  • tirerait juste les changesets faits après le pull le 1er février? - oui
  • est-il un moyen de faire un hg log et déterminer quels changesets sont venus de myproject-1_0? - pas

Malheureusement, à moins que vous commencez à déblayage à propos avec des branches nommées, qui proviennent changesets dans l'autre référentiel semble pas différent de ceux dans votre référentiel principal.

+2

@Marcus: Et si vous décidez de * branches nommées * (pour un ** oui ** pour la troisième question), vous pouvez lire [cette question connexe] (http://stackoverflow.com/ q/1405604/151299). –

+0

@Oben, oui, cela semble être un bon flux de travail si vous voulez utiliser des branches nommées. –

4

Donc, c'est ce que Mercurial est conçu pour faire

Je suggère de jeter un oeil à http://www.hginit.com. Mais ce que vous demandez si vous tirez des changements ne fera que tirer les changements depuis la dernière traction, oui. Vous ne pouvez pas dire quels changesets proviennent d'un clone différent, seuls les noms d'utilisateur sont suivis dans l'idée à laquelle vous pensez.

Si vous voulez savoir où les choses viennent de c'est quelque chose que vous pouvez faire commettre des messages.

+0

Bonne suggestion sur hginit.com - super tuturo –

Questions connexes