Voici la feuille de triche sur les commandes:
hg update
des changements de votre copie de travail révision parent et modifie également le contenu du fichier pour correspondre à cette nouvelle révision parent. Cela signifie que les nouvelles révisions vont continuer sur la révision de la mise à jour.
hg revert
modifie le contenu d'un fichier seulement et laisse la copie de travail de révision parent seul. Vous utilisez généralement hg revert
lorsque vous décidez que vous ne voulez pas conserver le uncommited modifications que vous avez apportées à un fichier dans votre copie de travail.
hg branch
commence une nouvelle branche nommée. Pensez à une branche nommée comme une étiquette que vous attribuez à la révision. Donc, si vous n' hg branch red
, alors la suite des révisions seront marqués comme appartenant à la "rouge" de la branche. Cela peut être une belle façon d'organiser les révisions, particulièrement lorsque plusieurs personnes travaillent sur les différentes branches et que vous souhaitez voir d'où un ensemble de modifications proviennent. Mais vous ne voulez pas l'utiliser dans votre situation.
Si vous utilisez hg update --rev 38
, puis les révisions de 39-45 sera laissé comme un mort de fin une balançant la tête, comme nous l'appelons. Vous recevez un avertissement lorsque vous appuyez puisque vous allez créer "plusieurs têtes" dans le référentiel de vous pousser à. L'avertissement est là depuis c'est un peu impoli de laisser de telles têtes autour, car ils suggèrent que quelqu'un doit faire une fusion. Mais dans votre cas, vous pouvez simplement aller de l'avant et de l' hg push --force
depuis que vous avez vraiment ne voulez laisser pendre.
Si vous n'avez pas encore poussé la révision de 39-45 ailleurs, vous pouvez les garder privées. C'est très simple: avec hg clone --rev 38 foo foo-38
, vous obtiendrez un nouveau clone local qui contient uniquement des révisions 38. Vous pouvez continuer à travailler dans foo-38
et insérez-le (bon) révisions que vous créez. Vous aurez encore l'ancien (mauvais) des révisions de votre foo
clone. (Vous êtes libre de renommer les clones toutefois vous souhaitez, par exemple, foo
de foo-bad
et foo-38
de foo
.)
Enfin, vous pouvez également utiliser hg revert --all --rev 38
puis valider. Cela va créer une révision 46, qui ressemble à de révision 38. Vous pourrez ensuite continuer à travailler de la révision 46. Cette habitude de créer une branche dans l'histoire de la même façon explicite comme hg update
a fait, mais d'un autre côté on ne pourra pas se plaint d'avoir plusieurs têtes. Je voudrais utiliser hg revert
si je devais collaborer avec d'autres personnes qui ont déjà fait leur propre travail basé sur la révision de 45. Sinon, hg update
est plus explicite.