エイリアスを使用してこれを実現できますが (以下を参照)、ここでの最もクリーンなアプローチは拡張機能です。
from mercurial import extensions, commands
testedwith = "3.5"
default_log_rev = "reverse(ancestors(.))"
def override_log(original_cmd, ui, repo, *pats, **opts):
have_rev = False
for opt in ["rev", "branch"]:
if opts.has_key(opt) and opts[opt]:
have_rev = True
if not have_rev:
opts["rev"] = [default_log_rev]
return original_cmd(ui, repo, *pats, **opts)
def uisetup(ui):
extensions.wrapcommand(commands.table, "log", override_log)
--rev
これは、も--branch
オプション (またはその省略形-r
と-b
)も設定されていない場合にのみ新しいデフォルトを使用するため、それらのいずれかが指定log
されている場合は元の動作が保持されます。
このような拡張機能は、通常の方法でインストールできます。つまり、次のようなものを に追加します~/.hgrc
(上記のコードが にあると仮定します/path/to/logdefault.py
)。
[extensions]
logdefault = /path/to/logdefault.py
拡張機能が重すぎる場合は、次のようにエイリアスを作成することもできます~/.hgrc
。
[alias]
log = log --rev 'reverse(ancestors(.))'
rawlog = !$HG --config alias.log=log log "$@"
rawlog
元の機能に引き続きアクセスできるように、2 番目のエイリアス ( ) が存在しますlog
。