mercurial命令pull之间的差异-b<;branchname>;vs pull-r<;branchname>;
以下mercurial命令之间有什么区别mercurial命令pull之间的差异-b<;branchname>;vs pull-r<;branchname>;,mercurial,Mercurial,以下mercurial命令之间有什么区别 pull-bvspull-r 我搜索了很多,但结果好坏参半,没有一个是清楚的 有谁能解释一下两者之间的区别以及一个人应该在另一个人之上使用另一个人的情况吗?这是: pull -b <branchname> 但是,如果这也是变更集的标识哈希,则此命令现在有点不明确: hg pull -r 21e34fb985bb 您是指具有该名称的分支还是具有该哈希的变更集 使用-b使用分支,另一个分支不确定 这有关系吗?很可能不会,如果会的话,我会敦促您
pull-b
vspull-r
我搜索了很多,但结果好坏参半,没有一个是清楚的
有谁能解释一下两者之间的区别以及一个人应该在另一个人之上使用另一个人的情况吗?这是:
pull -b <branchname>
但是,如果这也是变更集的标识哈希,则此命令现在有点不明确:
hg pull -r 21e34fb985bb
您是指具有该名称的分支还是具有该哈希的变更集
使用-b
使用分支,另一个分支不确定
这有关系吗?很可能不会,如果会的话,我会敦促您为分支选择不同的命名约定。在hg pull--branchname
中,branchname
指的是名为branchname
的分支
在hg pull--rev branchname
中,branchname
被解释为一个修订版,它指的是远程repo中分支branchname
的最新标题。这在以下文件中提到:
分支名称可以在标记名称可以使用的任何位置使用,包括日志、,
差、推、拉。当一个分支有多个头时,tipmost
将找到分支的修订版本
如果分支branchname
在远程repo中有多个头,则这两个命令可能会产生不同的结果
考虑以下场景:
o f
|
o e
|
| o d
| |
| o c
|/
o b o b
| |
o a o a
remote local
假设变更集a
,b
,c
,d
,e
,f
都在分支默认值中
如果您hg pull--rev default
,default
被解释为一个修订版本,它指的是远程回购中分支机构的最新负责人default
;在两个head版本d
和f
中,最新的版本是f
(它可能比d
最近被推入远程repo),因此您的命令将相当于hg pull--rev f
。这将纳入您的回购协议修订版f
及其所有前身,即修订版a
,b
,e
,f
。由于修订版a
,b
已经在您的本地回购中,实际上您将拉取e
,f
另一方面,hg pull——分支机构默认
将分支机构默认
中的所有修订纳入回购协议,即a
,b
,c
,d
,e
,f
。由于a
,b
已经在您的回购中,实际上您将拉取c
,d
,e
,f
TL;博士
总之,可以说,
hg pull--branchname
将远程repo中所有分支branchname
的负责人(加上他们的所有祖先变更集,减去本地repo中已有的变更集)拉入本地repo,wherashg pull--rev branchname
仅在远程repo中拉取分支的最新头branchname
(加上其所有祖先变更集,减去本地repo中已有的变更集)。因此,如果您使用的是标准的每个命名分支的单头工作流,则最新的头将始终是唯一的头,因此,就您而言,这两个命令是等效的。这对您所在的分支有区别吗?
hg pull -r 21e34fb985bb
o f
|
o e
|
| o d
| |
| o c
|/
o b o b
| |
o a o a
remote local