Jaka jest różnica między rollback, backpout i strip w wtyczce Mercurial Eclipse?

Jaka jest różnica między elementami menu rollback, backout i strip w wtyczce Mercurial Eclipse?

Czy mogę usunąć commit z lokalnego repozytorium bez modyfikowania plików w moim obszarze roboczym za pomocą jednego z tych 3 poleceń?

A może jest inne rozwiązanie, jak Mogę zatwierdzić i wypchnąć poprawkę na innej części projektu? Moja obecna praca nie jest skończona i nie mogę jej popchnąć. Ale muszę sprawdzić szybką poprawkę dla innej części projektu.

Jedyne rozwiązanie widzę, że trzeba stworzyć drugą przestrzeń roboczą. Ale dla mnie to wygląda na przesadę.

Author: Horcrux7, 2011-03-20

1 answers

Wszystkie te polecenia pochodzą od samego Mercuriala i jest dla nich wiele dobrych postów porównujących/kontrastujących. Jednak tutaj są one w skrócie:

  • rollback: jednopoziomowe cofanie. Może to być niebezpieczne (może być niebezpieczne )
  • backout: tworzy nowy commit, który jest odwrotnością danego commita. Efekt netto jest cofnięciem, ale zmiana pozostaje w historii.
  • strip: Usuń (zniszcz ) zmiany z historii. Usuwanie changesetzobacz też usuwa wszystkie swoje dzieci, więc może być używany tylko do obcinania historii, a nie usuwania plasterka.

Wszystkie trzy są bardzo dobrze opisane tutaj: http://www.selenic.com/mercurial/hg.1.html

Do twojego pytania 2, możesz użyć strip aby usunąć najnowszy commit i nie zmieni to twoich plików katalogu roboczego.

Do twojego pytania 3, możesz łatwo wprowadzić zmiany w innej części tego projektu:

hg commit -m 'commit your half done work'
hg update OLDERCHANGESET # your working directory now is without the half-done-work
.. do that quickfix ...
hg commit -m 'quickfix'
hg push tip # this pushes the tip revision (latest) and its ancestors, but the half-don't work isn't an ancestor so it doesn't get pushed
hg update HALFDONEWORK # you can find the right revision number using "hg heads"

To nazywa się "anonimowy oddział" i jest to bardzo wspólny sposób pracy. Ostatecznie zatwierdzasz częściowo ukończoną funkcję, ale możesz ją wznowić później i nie musisz jej naciskać.

To ma świetne Wyjaśnienie anonimowych gałęzi: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branching-anonymously

 56
Author: Ry4an Brase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-20 20:20:20