Sercurial scripting with python

Próbuję uzyskać merkurialny numer wersji / identyfikator (to skrót, a nie liczba) programowo w pythonie.

Powodem jest to, że chcę dodać go do plików css / js na naszej stronie internetowej w następujący sposób:

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

Aby za każdym razem, gdy wprowadzono zmiany w arkuszu stylów, otrzyma nowy adres URL i nie będzie już używać starej wersji z pamięci podręcznej.

LU jeśli wiesz, gdzie znaleźć dobrą dokumentację dla mercurialpython module, to też byłoby pomocne. Nigdzie nie mogę go znaleźć.

Moje rozwiązanie

W końcu użyłem podprocesu, aby po prostu uruchomić polecenie, które pobiera węzeł hg. Wybrałem to rozwiązanie, ponieważ nie można zagwarantować, że interfejs pozostanie taki sam, ale interfejs bash prawdopodobnie:

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()

użycie przykładu:

> path_to_file = "/home/jim/workspace/lgr/pinax/projects/lgr/site_media/base.css"
> get_hg_rev(path_to_file)
'0ed525cf38a7b7f4f1321763d964a39327db97c4'

questionAnswers(7)

yourAnswerToTheQuestion