在多种情况下推送多个远程位置

iam*_*pal 3 version-control mercurial dvcs

(我是mercurial和版本控制的新手.)

我正在使用bitbucket(mercurial)的开源框架克隆.每当该框架更新时,我运行hg pullhg update来获取最近的副本.现在我为了我自己的目的对该框架进行了一些修改,我将其存储在bitbucket上的另一个存储库中.现在如果更新原始框架,如何将更改合并到我自己的存储库中,保持我自己的更改完好无损.

ang*_*son 6

嗯,这是工作流程.

首先从bitbucket上的第三方项目克隆要修改的内容,以便在本地克隆中获得以下历史记录:

3rd:   1---2---3
clone: 1---2---3
Run Code Online (Sandbox Code Playgroud)

然后在bitbucket帐户上创建一个新项目,并推送到该repo,所以现在你有:

3rd:   1---2---3
clone: 1---2---3
fork:  1---2---3
Run Code Online (Sandbox Code Playgroud)

"fork"在这里只是意味着bitbucket上的公共克隆.

然后,对克隆进行一些更改,并推送到您自己的bb存储库,现在您已经:

3rd:   1---2---3
clone: 1---2---3---4---5
fork:  1---2---3---4---5
Run Code Online (Sandbox Code Playgroud)

然后在某个时候,第三方更新他们的存储库,所以现在你有:

3rd:   1---2---3---4'--5'
clone: 1---2---3---4---5
fork:  1---2---3---4---5
Run Code Online (Sandbox Code Playgroud)

修订号后面的'仅表示数字相同,但变更集内容不是.

此时,您将第三方更改下拉到您自己的克隆中:

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

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

fork:  1---2---3---4---5
Run Code Online (Sandbox Code Playgroud)

然后在克隆中执行合并,并执行一些新的更改:

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

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

fork:  1---2---3---4---5
Run Code Online (Sandbox Code Playgroud)

并推送到您的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'-+
Run Code Online (Sandbox Code Playgroud)

再次,在某些时候,第三方开发者更新他们的回购:

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'-+
Run Code Online (Sandbox Code Playgroud)

所以你重复这个过程,先拉:

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'-+
Run Code Online (Sandbox Code Playgroud)

你合并:

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'-/
Run Code Online (Sandbox Code Playgroud)

并推:

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'-+
Run Code Online (Sandbox Code Playgroud)