我正在尝试使用exportfiles扩展名为mercurial但我收到此错误:
c:\xampp\htdocs\dev>hg exportfiles -r 1 /tmp/export
** unknown exception encountered, please report by visiting
** http://mercurial.selenic.com/wiki/BugTracker
** Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]
** Mercurial Distributed SCM (version 1.9+10-e9264b45237d)
** Extensions loaded: exportfiles
Traceback (most recent call last):
File "hg", line 42, in <module>
File "mercurial\dispatch.pyo", line 27, in run
File "mercurial\dispatch.pyo", line 64, in dispatch
File "mercurial\dispatch.pyo", line 87, in _runcatch
File "mercurial\dispatch.pyo", line 675, in _dispatch
File "mercurial\dispatch.pyo", line 454, in runcommand
File "mercurial\dispatch.pyo", line 729, in _runcommand
File "mercurial\dispatch.pyo", line 683, in checkargs
File "mercurial\dispatch.pyo", line 672, in <lambda>
File "mercurial\util.pyo", line 385, in check
File "C:\Users\Sasa/exportfiles.py", line 39, in exportfiles
rng = cmdutil.revrange(repo, opts['rev'])
AttributeError: 'module' object has no attribute 'revrange'
我正在使用TortiseHG 2.1.1 for Windows 32-bit with Mercurial 1.9 + 10
您能帮我解决一下并使用exportfiles扩展吗?
提前致谢!
答案 0 :(得分:5)
Mercurial's API changed after version 1.8.
各种功能已从cmdutil.py移至scmutil.py, 包括revrange / revsingle / revpair和match / matchall / matchfiles
假设this是您正在使用的扩展程序的来源,第11行应为
from mercurial import util, scmutil
和第39行应
rng = scmutil.revrange(repo, opts['rev'])
答案 1 :(得分:1)
Mercurial的内部结构可能有所改变,扩展需要更新,但我并不完全是错的。 注意:我看到cmdutil
似乎确实有revrange
方法。cmdutil
来源的地方显然是过时的叉。
但是,在有人修改扩展程序之前,有一种解决方法可以至少获取添加或修改的文件列表。您可以转换输出或将其提供给您自己的脚本,以便复制正确的文件:
hg status --rev 100:110 --added --modified
此列出了从修订版100添加或修改为修订版110的文件(您不能将-r
用作--rev
的缩短切换,它是--removed
的缩写。输出在每个相对路径之前都有M
或A
。