2

Mercurial 有一个非常好的特性,它允许人们只在命令行上键入需要明确的内容,例如:

hg pus

用于推动,或:

hg comm

承诺。

我很想在 Git 和 Maven 中看到这个功能,这让我很好奇它是如何完成的。我对代码进行了拖网搜索,但运气不佳,我发现与 bash_completion 有关,但与 Windows 无关。

此命令完成在 Hg代码中的什么位置实现?

4

3 回答 3

3

为命令执行此操作的代码是mercurial.cmdutilfindpossible中的和findcmd函数。他们搜索已知命令并找到以您键入的内容开头的命令,因此找到该命令。hg puspush

对于命令行选项(标志),普通的getopt 模块可以让你缩短,比如说,hg log --patch自动hg log --pat

于 2013-04-09T10:59:59.427 回答
2

我认为它在mercurial/cmdutil.py并且调用它的方法findpossible

于 2013-04-09T10:55:05.530 回答
0

在 linux 上,这是由bash_completion

在我的系统上,hg 的配置在/etc/bash_completion.d/mercurial

于 2013-04-09T09:32:42.710 回答