请帮我解决关于Mercurial扩展exportfiles的问题
我正在尝试使用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'
我在Windows 32位上使用的是TortiseHG 2.1.1,Mercurial版本是1.9+10
请问你能帮我解决这个问题,让我能使用exportfiles扩展吗?
提前谢谢你!
2 个回答
1
可能是因为Mercurial内部的结构有些变化,所以这个扩展需要更新,不过我也不太确定具体出什么问题了。 注意:我看到的 cmdutil
似乎确实有一个 revrange
方法。cmdutil
的源代码显然是一个过时的版本。
不过,在有人提供扩展的修复之前,至少有一个方法可以让你获取到添加或修改的文件列表。你可以把输出结果进行转换,或者把它传给你自己的脚本,这样就能得到正确的文件复制:
hg status --rev 100:110 --added --modified
这个命令会列出从版本100到版本110之间添加或修改的文件(注意,-r
不能用作 --rev
的简写,它其实是 --removed
的缩写)。输出结果在每个相对路径前面会有一个 M
或 A
,分别表示修改或添加。
5
一些功能被移到了另一个文件里,比如revrange、revsingle、revpair,还有match、matchall、matchfiles这些。
假设这个链接是你正在使用的扩展的来源,那么第11行应该是
from mercurial import util, scmutil
而第39行应该是
rng = scmutil.revrange(repo, opts['rev'])