Слияние с предком текущего коммита - PullRequest
0 голосов
/ 08 февраля 2012

Как слияние в ранее отклоненной идее из одной и той же ветви работает в различных системах контроля версий?Какие предложения поддерживают это?

Вот мое обоснованное предположение - точна ли эта сводка?

Git и централизованные VCS: Предположительно, вы отменили коммит, в который хотите объединиться.буквально пытаться слиться с предком текущего коммита.Я не пробовал это, но я не думаю, что это будет поддерживаться слишком хорошо.Я предполагаю, что вы могли бы выполнить трехстороннее слияние с соответствующим предком (метафорическая «точка ветвления» в ретроспективе) коммита для слияния (который вы должны были бы идентифицировать, потому что не было бы записи об этом) -но поддержит ли VCS это или вам придется делать это самостоятельно?

Mercurial, используя закладки (или используя анонимное ветвление аналогично закладкам): если бы вы использовали этот подход усердно, вы бы "обратный курс »и произошел от предка старого коммита в тот момент, когда вы ранее отвергли его.Поэтому коммит, даже если он изначально был сделан в этой ветке, теперь не находится в этой ветке (потому что закладки динамические, не неизменяемые и потому что вы изменили курс), так что проблем вообще нет.Объединяйтесь!

Darcs, если между головой и старым коммитом нет тегов: в то время как в darcs выглядит случайным взглядом, как будто у вас прямая линия коммитов, то, что у вас есть, это граф зависимостеймежду первым коммитом или самым последним тегом и головой (что совсем не очевидно, и AFAIK до сих пор нет инструмента для визуализации этого!).Поэтому, если Даркс считает, что ваш старый коммит не зависит от текущего заголовка (что, вероятно, вполне вероятно, потому что вы отменили старый коммит), они являются невидимыми отдельными ветвями и могут быть слиты довольно удачно.Если Даркс думает, что старый коммит зависит от головы, то эта ситуация предположительно похожа на случай с Git, хотя я не думаю, что кто-то полностью понимает теорию патчей Дарка, кроме, возможно, Дэвида Раунди.

Даркс, если естьбыл тегом в то же время: я думаю, что это будет похоже на git, потому что тег объединяет все невидимые головы вместе и создает единую голову, которая зависит от всех них (это, возможно, один из самых простых для понимания аспектовтеория патчей darcs)

Сноска. Для краткости я упоминал «старый коммит», хотя ранее отвергнутая идея, конечно, могла быть длинной строкой коммитов.

1 Ответ

1 голос
/ 08 февраля 2012

В Git идея заключается в том, чтобы создать ветку, начиная с первого из старых коммитов, которые вы хотите изолировать, а затем cherry-pick этих старых коммитов в вашей новой ветке.

Как только вы изолируете их в своей собственной ветке, вы можете объединить их с любой другой веткой, какой захотите.

...