J'ai deux machines, A et B qui accèdent à un référentiel hg externe.Est-ce une situation où je devrais "hg push -f"?
J'ai fait du développement sur A, je n'étais pas prêt à pousser les changesets vers l'externe, et j'ai dû changer de machines, donc j'ai poussé les changesets à B en utilisant hg serve
. Changesets a continué sur B, ont été commis, puis poussés à des repo externes.
J'ai ensuite tiré sur A et mis à jour par défaut/pourboire. Cela a laissé les modifications locales qui avaient été précédemment poussées vers B comme une branche, mais à cause de la façon dont j'ai poussé les choses, les changements dans les changesets locaux sont déjà dans default/tip.
J'ai maintenant continué à faire des changements et à commettre localement sur A, mais quand j'essaye de pousser hg me demande de fusionner ou fais push -f
à la place. Je sais que push -f
est presque jamais recommandé. Cette situation est proche de celle où je devrais utiliser rebase, cependant les changesets qui seraient "rebased" je n'ai pas vraiment besoin localement ou dans le repository externe puisqu'ils sont déjà effectivement par défaut/tip via le push à B.
Maintenant, je sais que je pourrais fusionner avec le dernier changeset local et juste rejeter les changements, mais alors je devrais encore commettre la fusion qui me renvoie en territoire de rebase.
Est-ce un cas où je pourrais faire hg push -f
?
De même, pourquoi pousser à partir de A créer des têtes distantes si j'ai mis à jour par défaut/conseil avant de continuer à valider les changesets?