web-dev-qa-db-fra.com

Push crée de nouvelles têtes distantes! (avez-vous oublié de fusionner? utilisez Push -f pour forcer)

Ok, j’ai eu un petit google et je ne trouve pas de solution car j’ai trébuché sur le même message mais sur différentes manières de l’atteindre. Je suis nouveau sur mecurial et je veux m'assurer que je le fais correctement.

Je reçois donc le message d'erreur ci-dessus. J'ai un site dev et un site live et j'essaie de pousser le code vers codebase.

Cependant hier j'ai accidentellement fait hg add qui a ajouté tous les médias que je ne voulais pas faire. Je suis revenu après pour supprimer tous les fichiers multimédias de Codebase, en validant et en appuyant sur les modifications. Donc aujourd'hui, j'ai apporté des modifications au fichier CSS et à quelques modèles. Je suis allé à valider mes modifications et à les pousser, mais lorsque je lance hg Push, l'erreur ci-dessus apparaît.

J'ai exécuté le journal hg et il n'y a que 6 commits car il s'agit d'une branche/d'un projet vierge. Toute aide serait très appréciée et je m'excuse si je n’ai rien expliqué correctement!

64
JDavies

Ce n'est pas un message "d'erreur"; c'est une situation totalement normale. Ce message dit "hé, d'autres personnes ont imposé de nouvelles tâches à ce référentiel pendant que vous travailliez, vous devriez probablement intégrer les leurs dans le votre pour ne pas avoir à l'intégrer au leur?"

Donc d'abord faire un:

hg pull

et puis a:

hg merge

Incidemment, la variable revert que vous avez utilisée si vous avez réellement utilisé la commande hg revert n'a pas supprimé ces fichiers de l'historique. Votre historique est donc probablement assez volumineux.

Pensez à lire les premiers chapitres du livre Mercurial il couvre assez bien ces situations.

63
Ry4an Brase

Si vous souhaitez annuler vos modifications contradictoires

hg outgoing

Vous devriez voir des lignes contenant vos modifications validées/conflictuelles qui ne sont pas poussées. Recherchez la révision du changeset. Ici 64

searching for changes
changeset:   64:1830948c246e

Ensuite 

hg strip 64
16
Woody

Cela a fonctionné pour moi.

hg Push -f

Pour plus de commande, essayez

hg help Push
12
Christine Tuazon

Sur TortoiseHg, vous pouvez faire ceci:

1 => Commit vos fichiers 

2 => Allez faire votre nouvelle branche, où vous voulez pousser votre code

3 => Sur cette branche, lancez Fusionner avec develop

4 => Poussez votre code sans erreurs!

1
Kamil Naja

Si vous utilisez le plan de travail pour appliquer les modifications, vous pouvez commencer par essayer de détecter les modifications sortantes. Voir l'image ci-jointe.

enter image description here

Cela vous donnera des informations sur ce que vous allez pousser. Mon problème était, j'avais un vieux draft en attente d'être poussé. J'ai été capable de continuer avec le Push une fois que j'ai fait strip sur l'ancien projet.

0
Akbar Badhusha

La meilleure façon de travailler avec Mercurial - créez git init dans son dossier. Et puis travaillez avec git localement. Fusionnez dans Git et etc, peu importe. Et puis, repoussez simplement avec Mercurial. C'est la manière la plus simple de travailler avec Mercurial. Sinon, Mercurial ne fonctionne tout simplement pas.

0
Arkady