push pull с несколькими удаленными локациями в Mercurial - PullRequest
3 голосов
/ 13 января 2011

(Я новичок в Mercurial. И контроль версий.)

Я использую клон с открытым исходным кодом из Bitbucket (Mercurial). всякий раз, когда обновляется этот фреймворк, я запускаю hg pull и hg update , чтобы получить последнюю копию. теперь я сделал некоторые изменения в этой платформе для своих собственных целей, которые я храню в другом хранилище на bitbucket. Теперь, если оригинальная платформа обновлена, как мне объединить изменения в моем собственном репозитории, сохранив мои изменения без изменений.

1 Ответ

6 голосов
/ 13 января 2011

Хорошо, вот рабочий процесс для этого.

Сначала вы клонируете из стороннего проекта на bitbucket, который хотите изменить, чтобы получить следующую историю в локальном клоне:

3rd:   1---2---3
clone: 1---2---3

Затем вы создаете новый проект для своей учетной записи bitbucket и продвигаетесь к этому репо, так что теперь у вас есть:

3rd:   1---2---3
clone: 1---2---3
fork:  1---2---3

"fork" здесь просто означает публичный клон на bitbucket.

Затем вы вносите некоторые изменения в свой клон и отправляете в свой собственный репозиторий bb, теперь у вас есть:

3rd:   1---2---3
clone: 1---2---3---4---5
fork:  1---2---3---4---5

Затем в какой-то момент третье лицо обновляет свой репозиторий, поэтому теперь у вас есть:

3rd:   1---2---3---4'--5'
clone: 1---2---3---4---5
fork:  1---2---3---4---5

Знак 'за номерами ревизий просто означает, что номера одинаковы, но содержимое набора изменений не совпадает.

На этом этапе вы перетаскиваете сторонние изменения в свои собственныеклон:

3rd:   1---2---3---4'--5'

clone: 1---2---3---4---5
                \
                 \-6'--7'

fork:  1---2---3---4---5

Затем вы выполняете слияние в своем клоне, а также вносите несколько новых изменений:

3rd:   1---2---3---4'--5'

clone: 1---2---3---4---5----8---9---10
                \          /
                 \-6'--7'-/

fork:  1---2---3---4---5

и отправляете в хранилище bb:

3rd:   1---2---3---4'--5'

clone: 1---2---3---4---5----8---9---10
                \          /
                 \-6'--7'-/

fork:  1---2---3---4---5----8---9---10
                \          /
                 +-6'--7'-+

Опять в какой-то момент третий годrty разработчик обновляет свое репо:

3rd:   1---2---3---4'--5'--6'--7'

clone: 1---2---3---4---5----8---9---10
                \          /
                 +-6'--7'-+

fork:  1---2---3---4---5----8---9---10
                \          /
                 +-6'--7'-+

Итак, вы повторяете процесс, сначала потяните:

3rd:   1---2---3---4'--5'--6'--7'

clone: 1---2---3---4---5----8---9---10
                \          /
                 +-6'--7'-+--11'---12'


fork:  1---2---3---4---5----8---9---10
                \          /
                 +-6'--7'-+

Вы объединяете:

3rd:   1---2---3---4'--5'--6'--7'

clone: 1---2---3---4---5----8---9---10---13
                \          /            /
                 +-6'--7'-+--11'---12'-+


fork:  1---2---3---4---5----8---9---10
                \          /
                 \-6'--7'-/

И нажимаете:

3rd:   1---2---3---4'--5'--6'--7'

clone: 1---2---3---4---5----8---9---10---13
                \          /            /
                 +-6'--7'-+--11'---12'-+     <-- 11' and 12' corresponds to 6'/7'

fork:  1---2---3---4---5----8---9---10---13
                \          /            /
                 +-6'--7'-+--11'---12'-+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...