Mercurial script avec python

Je suis en train d'essayer d'obtenir l'mercurial numéro de révision/id (c'est une table de hachage n'est pas un nombre) par programmation en python.

La raison est que je veux ajouter à la css/js fichiers sur notre site web comme:

<link rel="stylesheet" href="example.css?{% mercurial_revision "example.css" %}" />

De sorte que chaque fois qu'une modification est apportée à la feuille de style, il va obtenir une nouvelle url et de ne plus utiliser l'ancienne version en cache.

OU si vous savez où trouver de la bonne documentation pour l'mercurial module python, qui serait également utile. Je n'arrive pas à le trouver n'importe où.

Ma Solution

J'ai fini à l'aide de sous-processus de l'exécuter une commande qui permet d'obtenir le hg nœud. J'ai choisi cette solution parce que l'api n'est pas garanti de rester le même, mais le bash interface sera probablement:

import subprocess

def get_hg_rev(file_path):
    pipe = subprocess.Popen(
        ["hg", "log", "-l", "1", "--template", "{node}", file_path],
        stdout=subprocess.PIPE
        )
    return pipe.stdout.read()

exemple d'utilisation:

> path_to_file = "/home/jim/workspace/lgr/pinax/projects/lgr/site_media/base.css"
> get_hg_rev(path_to_file)
'0ed525cf38a7b7f4f1321763d964a39327db97c4'
  • À l'aide de sous-processus est bien, mais essayer de hg id -je "au lieu de "hg log'.
InformationsquelleAutor Jiaaro | 2009-07-20