Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用hglib时如何停止hg子进程_Python_Mercurial_Hglib - Fatal编程技术网

Python 使用hglib时如何停止hg子进程

Python 使用hglib时如何停止hg子进程,python,mercurial,hglib,Python,Mercurial,Hglib,我在Mercurial中有一个Python应用程序。在应用程序中,我发现需要显示当前正在运行的提交。到目前为止,我找到的最佳解决方案是使用hglib。我有一个模块,如下所示: def _get_version(): import hglib repo = hglib.open() [p] = repo.parents() return p[1] version = _get_version() 这将使用hglib查找使用的版本,并将结果存储在变量中,我可以在服

我在Mercurial中有一个Python应用程序。在应用程序中,我发现需要显示当前正在运行的提交。到目前为止,我找到的最佳解决方案是使用
hglib
。我有一个模块,如下所示:

def _get_version():
    import hglib
    repo = hglib.open()
    [p] = repo.parents()
    return p[1]

version = _get_version()
这将使用
hglib
查找使用的版本,并将结果存储在变量中,我可以在服务保持运行的整个时间内使用该变量

我现在的问题是,这会让
hg
子进程运行,这对我来说是无用的,因为一旦这个模块完成初始化,我就不需要再使用
hglib

我希望在垃圾收集期间,一旦我对存储库实例的引用超出范围,子进程就会关闭。但显然这不是它的工作原理

在阅读
hglib
文档时,我没有找到任何关于如何关闭子进程的文档


在我处理完
hg
子进程后,关闭它的首选方法是什么?

您需要像对待文件一样对待回购。完成后可以调用repo.close(),也可以将其用于:

def _get_version():
    import hglib
    with hglib.open() as repo:
        [p] = repo.parents()
    return p[1]

version = _get_version()