Mercurial - возможно ли объединить изменения из ствола в ветку в рамках одного репо? - PullRequest
5 голосов
/ 24 июня 2010

Mercurial - возможно ли объединить изменения из ствола в ветку в одном и том же хранилище?

Если да, возможно ли это с TortoiseHg?

Ответы [ 2 ]

5 голосов
/ 24 июня 2010

Есть две вещи, которые вы можете сделать, объединить или пересадить. Эти ответы предполагают командную строку. Возможно, вам придется искать в черепаховом меню, чтобы найти аналогичные функции.

Вы можете объединить все изменения из одной ветви в другую. Процедура для этого:

hg update mybranch
hg merge default
hg commit -m "Merging with default"

Это принесет все коммиты по умолчанию в вашу ветку, но не наоборот. Позже вы можете реинтегрировать вашу ветку по умолчанию, выполнив

hg update default
hg merge mybranch
hg commit -m "Bringing in changes from mybranch"

Если вы хотите внести один или несколько конкретных коммитов, которые были совершены в другом филиале, вы можете сделать это с помощью «трансплантата», который является ртутным расширением.

# reqiured in ~/.hgrc
[extensions]
transplant = 

Это команды, которые вы можете использовать для использования трансплантата:

hg log | less
# (find revision number, the part after the colon, i.e. "88660cca467d")
hg update mybranch
hg transplant 88660cca467d
# (no commit required)
2 голосов
/ 24 июня 2010

Как сказал @Jerub, вы можете использовать слияние и трансплантацию для передачи наборов изменений из одной ветви в другую. С помощью TortoiseHg вы можете выполнить слияние, открыв «обозреватель хранилища», затем выберите первую ревизию для слияния, а затем щелкните правой кнопкой мыши на второй ревизии для слияния. Чтобы выполнить слияние, выберите пункт меню «Объединить с ...».

...