Mercurial 乌龟:只拉选定的变更集?
我有2个存储库A和B。我对A做了5次更改,但其中只有2次也应该出现在B中。因此,我尝试了以下内容:Mercurial 乌龟:只拉选定的变更集?,mercurial,tortoisehg,Mercurial,Tortoisehg,我有2个存储库A和B。我对A做了5次更改,但其中只有2次也应该出现在B中。因此,我尝试了以下内容: 将5项变更推送到回购A 将回购B的路径更改为回购A的路径 单击repo B的“检查传入变更集”按钮 现在我看到了我为回购协议A所做的5项更改。这就是我被卡住的地方,我现在怎么能只得到5项更改中的2项呢?我尝试了“拉到这里”,但这在我的情况下不起作用,它会得到我选择的更改集下面的所有更改集 例如,如何从列表中获取第一个和第三个变更集?有可能吗 谢谢!:) 在存储库之间拉取变更集时,不能跳过中间的变更
谢谢!:) 在存储库之间拉取变更集时,不能跳过中间的变更集。如果一个变更集在两个存储库中具有不同的父级,则它不是同一个变更集
您可以通过导出所需的变更集,然后将其导入到另一个存储库来完成所需的工作。这样,您就可以从B中的repo A中获得所需的更改,但更改集在两个存储库中不会具有相同的更改 在存储库之间拉取变更集时,不能跳过中间的变更集。如果一个变更集在两个存储库中具有不同的父级,则它不是同一个变更集
您可以通过导出所需的变更集,然后将其导入到另一个存储库来完成所需的工作。这样,您就可以从B中的repo A中获得所需的更改,但更改集在两个存储库中不会具有相同的更改 听起来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是同一个存储库的克隆。如果是这样,分支可能就是您所需要的。如果您有
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
移植扩展可以帮助做到这一点。@SteveKaye
transport
在同一存储库中的分支之间移动变更集,而不是在两个不同的分支之间移动变更集。不,这是不正确的。内置的graft
命令可以做到这一点,扩展可以在存储库之间移动它们,但没有graft
更智能的合并功能。移植扩展可以帮助做到这一点。@SteveKayetransport
在同一存储库中的分支之间移动变更集,而不是在两个不同的分支之间移动变更集。不,这是不对的。内置的graft
命令可以做到这一点,扩展可以在存储库之间移动它们,但没有graft
更智能的合并功能。