Какво е предимството на командата rebase в Mercurial?

В сравнение със стандартното натискане/дърпане, какви са предимствата от използването на командата rebase в Mercurial?


person Vincent    schedule 25.03.2010    source източник


Отговори (2)


Тази публикация има хубаво обяснение:

Отговорът се крие в пребазирането. Пребазирането е техника, станала популярна от git, при която пренаписвате вашите все още неизпратени пачове, така че да се прилагат спрямо текущия отдалечен съвет, а не срещу върха на хранилището, което сте изтеглили последно. Предимството е, че вашата хронология на сливания показва полезни сливания – сливания между главни клонове – вместо просто всяко отделно сливане, което сте направили с хранилището нагоре по веригата.

Нормалната последователност на изтегляне, сливане, натискане ще създаде редица ангажименти, които не са много полезни от гледна точка на историята на вашето хранилище. Пребазирането помага да се премахнат тези.

person Vincent Ramdhanie    schedule 25.03.2010
comment
Ясен отговор, благодаря Винсент. От моя гледна точка обаче това ме кара да мисля, че ако това е всичко, може би не си е струвало да добавям нова функция и нова концепция, върху която потребителите да мислят. - person Tomislav Nakic-Alfirevic; 25.03.2010
comment
не е нужно да използвате пребазиране, винаги можете да разклоните и слеете. iirc rebase не е активиран по подразбиране в mecurial - person jk.; 25.03.2010
comment
@jk Ако не е активиран по подразбиране, добра идея ли е да помолите всички разработчици да го активират? Какво ще стане, ако някой не го направи? - person Vincent; 26.03.2010
comment
Не би трябвало да има значение, ако не е активирано от всички разработчици, използващи споделено репо, тъй като повторното базиране се извършва локално и не води до нищо специално (само нормални набори от промени). - person Jay Peyer; 14.11.2010
comment
Това не е просто по-добър начин да се обедините, вижте тази предупредителна публикация - person Daniel Serodio; 27.07.2011

Ако направите последователност издърпване-сливане-натискане и получите грешно "сливане", винаги можете да "завърнете" "обединяването". Така имате лесен начин за „отмяна на натискане“. Не знам дали има еквивалентен лесен начин при използване на rebase.

person Guy    schedule 26.04.2011
comment
Командата rebase ще пропусне операцията по сливане, като по този начин няма нужда да се отказвате от лошо сливане. - person Vincent; 27.05.2011
comment
Не разбирам коментара ви. Мисълта ми е, че с помощта на сливане е лесно да направите резервно копие при лошо натискане. Как се прави това с rebase? - person Guy; 27.05.2011
comment
Когато използвате командата rebase, няма операция за сливане. Така че не е възможно да има лошо сливане. Ако направите натискане след повторно базиране и не е добре, винаги можете да се оттеглите. - person Vincent; 22.08.2011
comment
Напълно съм съгласен с @Guy, rebase скрива сливане и скрива реда на събитията. Когато правите повторно базиране, ако има конфликт, mercurial ще ви позволи да коригирате конфликта, но тази операция ще бъде смесена с първия комит на пребазираната глава. В крайна сметка не знаете дали ревизията е счупила нещо или разрешаването на конфликта, което сте направили, го е счупило. - person José F. Romaniello; 27.10.2011
comment
Прав си Хосе. Не видях този. Но не съм сигурен, че @guy имаше предвид това. - person Vincent; 23.02.2012