我有2个存储库A和B.我对A进行了5次更改,但是其中只有2个也应该出现在B.所以这就是我尝试过的:
现在我看到我为repo A做的5个更改。这是我被卡住的地方,我现在怎么才能获得5个变更集中的2个?我试过“拉到这里”,但这不适用于我的情况,它会将所有变更集置于我选择的变更集之下。
我怎样才能从列表中获得第一个和第三个变更集?可能吗?
谢谢! :)
听起来A和B是同一个存储库的克隆。如果是这种情况,分支可能就是您所需要的。如果您有A
包含的历史记录:
C:\example>hg glog --template "rev{rev}:{desc}\r\n"
@ rev6:change7
|
o rev5:change6
|
o rev4:change5
|
o rev3:change4
|
o rev2:change3
|
o rev1:change2
|
o rev0:change1
如果你的B
最初只是rev0
和rev1
并且你想要添加rev3
和rev5
,你可以更新到rev1
并将rev3
和rev5
移植到它上面:
C:\example>hg update 1
0 files updated, 0 files merged, 5 files removed, 0 files unresolved
C:\example>hg glog --template "rev{rev}:{desc}\r\n"
o rev6:change7
|
o rev5:change6
|
o rev4:change5
|
o rev3:change4
|
o rev2:change3
|
@ rev1:change2
|
o rev0:change1
C:\example>hg graft 3 5
grafting revision 3
grafting revision 5
C:\example>hg glog --template "rev{rev}:{desc}\r\n"
@ rev8:change6 <--- contains change 1, 2, 4, 6
|
o rev7:change4
|
| o rev6:change7 <--- contains changes 1-7.
| |
| o rev5:change6
| |
| o rev4:change5
| |
| o rev3:change4
| |
| o rev2:change3
|/
o rev1:change2
|
o rev0:change1
为了避免变更集的重复和一些预先规划,需要在A
和B
分支上进行的更改可以检入B
并合并到A
,而只属于A的变更集可以直接检入A:
C:\example>hg glog --template "rev{rev}:{branch}:{desc}\r\n"
@ rev8:A:change7 <--- contains changes 1-7.
|
o rev7:A:Merge
|\
| o rev6:B:change6 <--- contains change 1, 2, 4, 6
| |
o | rev5:A:change5
| |
o | rev4:A:Merge
|\|
| o rev3:B:change4
| |
o | rev2:A:change3
|/
o rev1:default:change2
|
o rev0:default:change1