hgnested.nclone()中的“ui”参数是什么?

时间:2017-03-24 06:56:25

标签: python nested mercurial mercurial-extension

import hgnested

sour = "C:\Users\ADMIN\Documents\mercurial\hgserver"

desti = "D:\Work"
hgnested.nclone(source = sour, dest = desti)

这里我试图克隆一个嵌套的存储库“hgserver”,其中还有5个存储库。但我得到了错误,

TypeError: nclone() takes at least 2 arguments (2 given)

然后我在这个link查看了hgnested python包的源代码,发现nclone()方法接受了一个参数“ui”,我不知道该传递什么。

def nclone(ui, source, dest=None, **opts):

任何人都可以帮助我。

PS:由于声誉不佳,我无法为此问题添加相关标签。例如:hgnested,nclone

2 个答案:

答案 0 :(得分:0)

如果您想要从本地驱动器克隆文件,那么Hgnested不是您想要的。当我阅读他们的“文档”时,几行没什么,它只是Mercurial的一个小扩展。如果您只想复制目录,那么您应该这样做:

import shutil 
shutil.copytree(sour, desti) # copy dirs 
# use shutil.copy() to copy files

回答你原来的问题,ui是Mercurial的用户界面类。

  

这里,ui和repo是用户界面和存储库参数   作为标准传递给扩展函数(参见WritingExtensions   更多细节)。如果您没有调用Mercurial命令   从扩展函数,你需要创建合适的ui和   回购对象自己。 ui对象可以从ui实例化   mercurial.ui中的类; repo对象可以是a   localrepository,一个httprepository,一个sshrepository或者   statichttprepository(每个都在自己的模块中定义),尽管如此   最常见的是本地存储库。

答案 1 :(得分:0)

import hgnested
from mercurial import ui
sour = "C:\Users\ADMIN\Documents\mercurial\hgserver"

desti = "D:\Work"
hgnested.nclone(ui.ui(), source = sour, dest = desti)
@abccd回答说,我只需将方法调用更改为上一行,克隆就成功了。