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ę.
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
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