我对 Python 和 Django 不是很熟悉。我们使用 Jenkins 作为持续集成的服务器。但是当 Jenkins 克隆存储库时,会省略一些修订(这是自动过程)。当我们需要为测试/生产目的构建一个包时,我们必须用与我们可以在 Mercurial 服务器(存储库)上检查的完全相同的修订号来标记它。我们使用织物。我尝试在一个脚本中结合 Fabric 和 Python(Python 的 Paramiko 将用于连接第三方 Mercurial 服务器并获取正确的修订号)。修订版取自 Jenkins 在本地服务器上制作的包,作为最后一次提交的日期。这很简单:
pipe = subprocess.Popen(
['hg', 'log', '-l', '1', '--template', '{date|isodatesec}', env.repo_dir],
stdout=subprocess.PIPE,
)
但问题是从 Mercurial 服务器获取修订号。我试过了:
stdin, stdout, stderr = ssh_conn.execute('hg log -l 1 --date /"%s to %s/" --template {rev}')
...但没有预期的结果。