帮助我使用mercurial extension exportfiles

时间:2011-07-18 14:51:50

标签: python mercurial tortoisehg

我正在尝试使用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扩展吗?

提前致谢!

2 个答案:

答案 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的缩写。输出在每个相对路径之前都有MA