2013-04-09 44 views
2

水银有一个非常不错的功能,它可以让所需要的是在命令行上明确一个只有类型,如:Hg代码中的执行命令是否完成?

hg pus 

推,或:

hg comm 

犯。

我很想看到Git和Maven这样的功能,这让我好奇它是如何完成的。我在代码中进行了拖网,但没有多少运气,我发现与bash_completion有关,但不适用于Windows。

哪里在汞code是这个命令完成实施?

+1

In [contrib/bash_completion](http://selenic.com/hg/file/tip/contrib/bash_completion)。 – 2013-04-09 09:34:55

回答

3

对命令执行此操作的代码是mercurial.cmdutil中的findpossiblefindcmd函数。他们搜索已知的命令并找到以键入的内容开始的命令,因此hg pus找到push命令。

对于命令行选项(标志),正常getopt module可让您自动缩短(例如)hg log --patchhg log --pat

+0

是的,就是这样,谢谢! – 2013-04-09 14:23:59

0

在Linux上,这是由bash_completion

做在我的系统汞的配置是/etc/bash_completion.d/mercurial

+0

我认为你没有正确理解他的问题。他不是在询问命令的完成情况,他是关于Mercurial将'hg pus'解释为'hg push'的能力。 – 2013-04-09 10:51:09

2

我认为这是在mercurial/cmdutil.py并做它的方法被称为findpossible