【发布时间】:2013-01-11 22:54:44
【问题描述】:
我对 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}')
...但没有预期的结果。
【问题讨论】: