2013-04-09 72 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