如何制作git存储库的pip update子模块?

时间:2012-05-09 12:49:54

标签: git pip git-submodules

我正在使用pip来部署我的软件包,我希望每当我升级软件包时都会递归地提取我的软件包的子模块,有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

每当pip更新我的repo时,它运行setup.py并以“develop”作为参数,所以我改变了我的setup.py:

from distutils.core import setup
from setuptools.command.develop import develop
from subprocess import check_call
from os import path

class update_submodules(develop):
    def run(self):
        print 1
        if path.exists('.git'):
            check_call(['git', 'submodule', 'update', '--init', '--recursive'])
        develop.run(self)

a = setup(cmdclass = {"develop": update_submodules},
      ...

这意味着在运行“setup.py develop”的默认程序之前运行“git submodule update --init --recursive”。