Простой вопрос по TortoiseHg - PullRequest
       24

Простой вопрос по TortoiseHg

1 голос
/ 25 сентября 2010

Скажем, один клонировал хранилище, и его основная задача - редактировать его локально. Какую правильную операцию следует выполнить, чтобы он мог просто слиться с начальным восходящим потоком, сохраняя свои изменения? например, «Обновление» в TortoiseSVN.

Ответы [ 3 ]

2 голосов
/ 25 сентября 2010

Краткий ответ - «тянуть».Оттуда у вас есть две опции

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

1 голос
/ 25 сентября 2010

Два метода в @ ответ Аксель Циглер - это давняя дуэль «ребаз против слияния».

Первый метод требует более подробного объяснения.

Для начала, все DVCS поддерживают частую фиксацию, что является одним из основных преимуществ перед CVCS, как svn, поэтому ваши локальные изменения (должны), вероятно, уже зафиксированы, когда вы хотите синхронизировать с апстримом. Если вы не подтвердите, hg update по умолчанию попытается объединить ваши изменения с ревизией, которую вы обновляете. Подробности смотрите в hg help update (примечание: будьте ОЧЕНЬ осторожны с -C).

Теперь, если у вас есть локальные наборы изменений, когда вы тянете вверх по течению, вы получите две головы (не вы , а ваш репозиторий). Затем вы должны решить, следует ли объединить или перебазировать.

hg предпочитает и поощряет объединение, поэтому rebase предоставляется не в ядре, а в комплекте расширения, который необходимо включить, чтобы получить команду.

Здесь было много хороших вопросов и ответов здесь по теме. Если вам нравится переходить к погоне, прочитайте ссылки в этом блоге , чтобы узнать, что сказали Создатели.

Вряд ли есть какой-либо "простой" вопрос, когда дело касается DVCS:)

0 голосов
/ 29 марта 2012

Я вижу третье решение с расширением "mq" ("Mercurial Patch Queue").

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

Таким образом, вы будете управлять своими собственными изменениями, полностью изолированными в очереди исправлений, при этом оставаясь на связи с изменениями из мира.

...