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!
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.
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
Cela a fonctionné pour moi.
hg Push -f
Pour plus de commande, essayez
hg help Push
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!
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.
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.
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.