我正在尝试在 python 中创建一个复杂的 mercurial 提交挂钩。我还希望被允许使用 OptionParser 传递参数。这是我到目前为止的要点:
.hg/hgrc 配置:
[hooks]
commit = python:/mydir/pythonFile.py:main
# using python:/mydir/pythonFile.py doesn't work for some reason either
python文件.py:
def main(ui, repo, **kwargs):
from optparse import OptionParser
parser = OptionParser()
parser.add_option('--test-dir', action='store', type="string",
dest='test_dir', default='otherdir/',
help='help info')
(options, args) = parser.parse_args()
# do some stuff here
someFunc(options.test_dir)
if __name__ == '__main__':
import sys
main(sys.argv[0], sys.argv[1], sys.argv[2:])
当我运行时hg commit -m 'message'
出现错误:“用法:hg [选项] hg:错误:没有这样的选项:-m”。当我尝试时,hg commit --test-dir '/somedir'
我得到一个错误:“hg commit: option --test-dir notrecognized”。
最后,我尝试commit = python:/mydir/pythonFile.py:main --test-dir '/somedir'
在 hgrc 配置中指定,但出现此错误:“AttributeError: 'module' object has no attribute 'main --test-dir '/somedir''”
谢谢您的帮助。