Python “什么是”呢;“用户界面”;hgneted.nclone()中的参数?
在这里,我试图克隆一个嵌套的存储库“hgserver”,其中还有5个存储库。但我发现了错误Python “什么是”呢;“用户界面”;hgneted.nclone()中的参数?,python,nested,mercurial,mercurial-extension,Python,Nested,Mercurial,Mercurial Extension,在这里,我试图克隆一个嵌套的存储库“hgserver”,其中还有5个存储库。但我发现了错误 import hgnested sour = "C:\Users\ADMIN\Documents\mercurial\hgserver" desti = "D:\Work" hgnested.nclone(source = sour, dest = desti) 然后我查看了python的hgnested包的源代码,发现nclone()方法接受了一个参数“ui”,我不知道该传递什么 TypeErro
import hgnested
sour = "C:\Users\ADMIN\Documents\mercurial\hgserver"
desti = "D:\Work"
hgnested.nclone(source = sour, dest = desti)
然后我查看了python的hgnested包的源代码,发现nclone()方法接受了一个参数“ui”,我不知道该传递什么
TypeError: nclone() takes at least 2 arguments (2 given)
有人能帮我吗
PS:由于我的名声不好,我无法为这个问题添加相关标签。例如:hgnested,nclonehgnested不是从本地驱动器克隆文件或将文件克隆到本地驱动器所需的。当我阅读他们的“文档”时,只有几行没有内容,这只是Mercurial的一个小扩展。如果您只想复制目录,则应执行以下操作:
def nclone(ui, source, dest=None, **opts):
为了回答您最初的问题,ui是Mercurial的用户界面类
在这里,ui和repo是用户界面和存储库参数
作为标准传递到扩展函数(请参阅WritingExtensions
有关更多详细信息)。如果您没有调用Mercurial命令
从一个扩展函数中,您将需要创建合适的ui和
回购反对你自己。可以从ui实例化ui对象
mercurial.ui中的类;回购对象可以是
localrepository、httprepository、sshrepository或
statichttprepository(每个都在自己的模块中定义),尽管
通常是一个本地存储库
正如@abccd所回答的,我只需将我的方法调用更改为上线,克隆就成功了 是的,经过大量的挖掘,我明白了ui是什么,你的解释总结了我的问题。谢谢@abccdcan您能说出如何创建回购对象。谢谢你,你可以跟着。通常,您可以通过在terminal中键入
hg init foldername
来创建回购协议
import shutil
shutil.copytree(sour, desti) # copy dirs
# use shutil.copy() to copy files
import hgnested
from mercurial import ui
sour = "C:\Users\ADMIN\Documents\mercurial\hgserver"
desti = "D:\Work"
hgnested.nclone(ui.ui(), source = sour, dest = desti)