Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mercurial中列出远程分支_Mercurial_Branch - Fatal编程技术网

在Mercurial中列出远程分支

在Mercurial中列出远程分支,mercurial,branch,Mercurial,Branch,有没有一种方法可以像在Git中一样在Mercurial中列出远程分支 git branch -r 我想列出远程机器上的分支(例如Bitbucket),因此使用: hg branches -R `hg showconfig paths.default` --color false 中止失败:存储库非本地否,如果不将远程存储库克隆到本地,则无法列出远程存储库的分支 如果可以通过SSH访问具有远程存储库的机器,那么可以直接使用Mercurial:SSH server hg-R path/to/re

有没有一种方法可以像在Git中一样在Mercurial中列出远程分支

git branch -r
我想列出远程机器上的分支(例如Bitbucket),因此使用:

hg branches -R `hg showconfig paths.default` --color false

中止失败:存储库非本地

否,如果不将远程存储库克隆到本地,则无法列出远程存储库的分支

如果可以通过SSH访问具有远程存储库的机器,那么可以直接使用Mercurial:
SSH server hg-R path/to/repo分支

如果存储库由hgweb提供,则可以使用原始样式从中获取分支列表,以便于解析:


BitBucket有自己的API,可以从中获取分支、查看并查询URL,如mercurial API允许的:

来自mercurial导入ui、hg、节点的

peer=hg.peer(ui.ui(),{},'http://hg.python.org/cpython')
对于名称,请参阅peer.branchmap().items()中的版本:
打印(名称,节点短(版本[0]))
上述代码段生成:

default aaa68dce117e
legacy-trunk b77918288f7d
3.2 4787b9b2f860
3.0 4cd9f5e89061
3.1 5a6fa1b8767f
2.3 364638d6434d
2.2 61b0263d6881
2.1 e849d484029f
2.0 5fd74354d73b
2.7 260f3ad7af4b
2.6 f130ce67387d
2.5 b48e1b48e670
2.4 ceec209b26d4

要扩展@gvalkov的答案,您可以通过编写一个文件
rheads.py
,使其成为一个真正的扩展名:

来自mercurial导入hg、命令、cmdutil、节点
cmdtable={}
command=cmdutil.command(cmdtable)
@command('rheads',commands.remoteopts,'hg rheads[SOURCE]')
def rheads(用户界面、回购、source='default',**选项):
“”“打印(可能是远程)磁头
打印由哈希和分支名称组成的一系列行。
指定本地或远程存储库,默认为配置的远程存储库。
"""
其他=hg.peer(ui或repo、opts、ui.expandpath(源))
对于标记,其他.branchmap().iteritems()中的头:
对于头部的h:
ui.write(“%s%s\n”%(node.short(h),标记))
~/.hgrc
中配置时,使用

[extensions]
rheads = …/rheads.py
您可以像这样运行它:

hg rheads
我试图使其成为一个可以在任何存储库之外调用的命令,只是将URL指定为参数,但无法使语法正常工作:

commands.norepo+=“rheads”

也许您正在寻找
hg incoming-B
这对我来说非常有效。这将显示书签。

请注意,这不会仅显示远程分支,它将仅显示本地存储库知道的分支。

作为谷歌搜索“hg命令行列表分支”时出现的唯一相关问题,我想我应该把这个问题留在这里。当您运行以下命令时-

hg log | grep“branch”| grep-v“summary”| sort--唯一

它输出

branch:      branch1
branch:      branch2
branch:      branch3
branch:      branch4
branch:      branch5

是的,这就是我怀疑的。感谢您提供有关hgweb和bitbucket的有用信息。我想知道为什么mercurial会这样设计?我可以使用
hg id-r
获取特定分支的修订版,但无法获取所有分支的列表。如果“远程”存储库位于同一主机上,并且由文件路径指定,则它确实有效。i、 例如,如果
.hg/hgrc
hg路径默认值
仅显示路径,而不显示路径,例如,。一个SSHURI。通过这种方式,您可以看到在未被提取的意义上仍然是远程的分支。如何运行这样的脚本?将代码段放入文件中,并使用
python filename.py
调用它。这就是你要问的吗?是的,没错。谢谢我只是不确定那是什么语言。似乎有用!我希望这是一个标准命令(或选项,或扩展名)。另外:从sys import argv添加
,并用
argv[1]
替换硬编码URL,以允许将URL指定为命令行参数。