2010-02-27 2 views
1

J'ai créé un projet sur Google et j'utilise Mercurial pour cela.Poussant les changesets Mercurial de mon clone local vers le "vrai" clone?

J'ai fait un clone de ce projet: farm-myclone sur Google code.

Je tire une copie de farm-myclone, et commencer à ajouter des fichiers, modifier des fichiers, etc.

J'utilise hg commit, puis hg push pour obtenir modifications dans le dépôt de mon clone.

Maintenant, je veux déplacer ces changements dans le dépôt réel, juste nommé farm.

dois-je faire quelque chose comme:

hg push [farm-myclone] to [farm] 

de sorte que quel que soit l'état de mon clone est poussé au vrai clone?

Est-ce exact? Je suis un utilisateur SVN donc c'est un peu confus pour moi.

Merci

Répondre

2

Je pense que vous avez un clone plus que vous avez réellement besoin: Vous ne avez probablement pas besoin « ferme myclone » d'exister sur Google Code.

Si ce projet principal est simplement appelé « ferme », puis lorsque vous exécutez hg clone pour faire un clone de celui-ci, vous obtenez un clone sur votre machine locale. Ce clone est un référentiel Mercurial complet à tous égards. Lorsque vous êtes prêt à publier vos modifications pour le reste du monde, utilisez hg push pour les placer dans le référentiel "batterie".

Je pense que la présence du référentiel supplémentaire "farm-myclone" est source de confusion.

+0

Ah ok vrai que vous avez raison, je ne suis pas le propriétaire du projet, de sorte que le propriétaire m'a fait créer un clone précédemment nommé « ferme myclone ». Maintenant, on m'a accordé un accès complet à la validation, et je me demandais si la situation ci-dessus avait du sens, si je veux toujours que la mémoire tampon de l'engagement sur ma copie clone soit la première? Merci! – user246114

+0

@ user246114: Si vous pensez être dans une position où vous souhaitez publier vos propres modifications dans le monde * séparément * du projet précédent, vous pouvez créer votre propre clone. Sinon, ne vous inquiétez pas jusqu'à ce que vous sachiez que vous devez le faire. –

0

Il n'y a pas de syntaxe comme celle que vous suggérez - puis-je demander d'où vous l'avez obtenue? J'aimerais améliorer la documentation, alors s'il vous plaît laissez-nous savoir (de préférence sur le Mercurial mailinglist) comment nous pouvons améliorer la sortie de hg help push. En ce qui concerne votre question, je suis d'accord avec Greg - vous semblez avoir un clone inutile. Souvent, vous n'avez qu'un seul autre clone à pousser/tirer. Lorsque vous faites

hg clone http://example.org/foo foo-clone 

alors foo-clone aura http://example.org/foo comme push/pull chemin par défaut. Cela signifie que simple

hg pull 

intérieur de foo-clone est suffisant pour tirer les derniers changements de http://example.org/foo.

Le chemin par défaut est stocké dans foo-clone/.hg/hgrc et vous pouvez ajouter d'autres chemins et/ou modifier les paramètres par défaut. Ainsi, le fichier hgrc peut ressembler à ceci:

 
[paths] 
default = http://example.org/foo 
alice = http://other-domain.org/foo 
experiement = /home/me/foo-experiment 

Vous pouvez ensuite utiliser hg pull alice pour obtenir ses modifications ou hg push experiment pour pousser votre propre clone expérimental local.

Ce ne sont que des raccourcis, vous pouvez toujours pousser/tirer à l'aide d'une URL explicite:

hg pull http://bobs-world.org/foo 

fonctionne aussi bien, si Bob a configuré son serveur Web pour servir un clone du dépôt foo.

J'espère que cela aide un peu :-)