Mercurial - `hg graft` с пользовательским назначением? - PullRequest
2 голосов
/ 12 апреля 2019

Есть ли способ привить коммит куда-нибудь другой , чем текущая ревизия?

В документации это звучит так:

hg graft [OPTION] ... [-r REV] ... REV ...

копировать коммиты из другого места

И я не вижу никаких параметровэто можно передать hg graft для этого.Я удивлен тем, что hg rebase позволяет это с флагом -d, а hg graft - нет.Так же, как иногда я хочу перебросить ветку куда-нибудь, кроме текущей ревизии, иногда я хочу перенести ветку куда-нибудь, кроме текущей ревизии.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

По сути, ответ «нет», но вы все равно можете получить желаемый эффект.

Текст справки для graft гласит «скопировать изменения из других веток в текущую ветку «Это означает, что если вы впервые обновите набор изменений назначения, вы можете получить желаемый результат.

Предположительно, вы хотите использовать трансплантат для создания фактической копии, против ребазинга, который "переместил бы" набор изменений. Таким образом, это даст такой результат, хотя для этого потребуется несколько шагов.

Подведем итог:

hg up <destination revision>
hg graft <source revision>
hg up tip
1 голос
/ 12 апреля 2019

Вы можете использовать расширение rebase для достижения этой цели.Сделайте hg rebase -r <rev> -d <dest> --keep, чтобы перебазировать на при сохранении старой версии.

...