Pousser vers le référentiel distant après la fusion "crée de nouvelles têtes distantes" - est-ce que c'est mauvais?
- Je
initialized
un Mercurial projet surMachine A
committed
mes modifications etuploaded
à un dépôt distant. - Puis je
cloned
que référentiel surMachine B
committed
quelques modifications supplémentaires etuploaded
à la même distance du référentiel.
Dans les deux cas, j'ai téléchargé les changements avec la même commande:
hg push https://username:password@domain/user/repository/
Maintenant je suis de retour sur la Machine et j'ai pull
**ed sur le dépôt distant et **merg
**ed des changements entre les deux révisions à l'aide de la **KDiff3
GUI-outil en utilisant les commandes:
hg pull
hg merge
hg commit
Cependant, lorsque j'essaie de faire les dernières modifications de la Machine Un retour vers le dépôt distant après cette attirance et fusion, j'obtiens ce message:
hg push https://username:password@domain/user/repository/
pushing to https://username:password@domain/user/repository/
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)
Pourquoi faut-il dire "vous avez oublié de fusionner"? -- J'ai terminé la fusion.
Est-il de mauvais à force de le pousser et de le créer "de nouveaux à distance têtes"?
Si oui, comment puis-je éviter cela?
Mise à JOUR:
J'ai couru "hg merge
" de nouveau et a obtenu ce résultat:
5 files updated, 1 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
Alors, j'ai couru ' hg up --clean
" et il a déclaré:
6 files updated, 0 files merged, 1 files removed, 0 files unresolved
Maintenant quand je tape 'hg heads
", il dit:
changeset: 11
tag: tip
parent: 9
user: eggdrop
date: Tue Oct 20 16:27:44 2009 -0400
summary: Machine A after merge
changeset: 10
parent: 7
user: chickensoup
date: Thu Oct 15 03:27:23 2009 -0400
summary: Machine B changes to be pulled onto Machine A
source d'informationauteur eggdrop
Vous devez vous connecter pour publier un commentaire.
Vous avez exécuté
hg up --clean
. Cela signifie que vous défit de la fusion, ce qui signifie que vous avez encore besoin de fusionner. Vous avez à résoudre un fichier lors de la fusion. Relisez votre message d'erreur:Vous avez besoin pour résoudre le conflit de fusion, puis terminer la fusion avec
hg resolve
. Alors, vous avez réussi à fusionner vos deux têtes.Et pour répondre à votre question: non, il n'est pas mauvais d'avoir à distance deux têtes. Cela signifie simplement que vous avez besoin de les fusionner (de préférence le plus vite possible), avant de vous enfoncer de rien d'autre pour le serveur distant.
Pour fixer, il suffit d'exécuter
hg merge
résoudre un conflit, puis exécutezhg resolve
.Première: Afficher vos modifications avec
hg log
.La suite n'aide pas dans mon cas:
hg pull
ethg merge
(avant de les retirer de contre-vérifier les hg entrants)hg pull --rebase
Mais cela a aidé.
J'ai trouvé que je devais explicitement fusionner certaines révisions qui ressemblait à des chefs.