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ązanieW 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'