Mercurial Scripting mit Python
Ich versuche, die mercurial-Revisionsnummer / -ID (es ist ein Hash, keine Zahl) programmgesteuert in Python abzurufen.
Der Grund ist, dass ich es wie folgt zu den CSS / JS-Dateien auf unserer Website hinzufügen möchte:
<link rel="stylesheet" href="example.css?{% mercurial_revision "example.css" %}" />
Wenn das Stylesheet geändert wird, erhält es eine neue URL und verwendet die alte zwischengespeicherte Version nicht mehr.
ODE Wenn Sie wissen, wo Sie gute Dokumentation für das mercurial finden könnenpython module, das wäre auch hilfreich. Ich kann es nirgendwo finden.
Meine LösunIch habe letztendlich einen Unterprozess verwendet, um nur einen Befehl auszuführen, der den hg-Knoten abruft. Ich habe mich für diese Lösung entschieden, da die API nicht unbedingt dieselbe bleibt, die Bash-Oberfläche jedoch wahrscheinlich:
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()
Beispiel verwenden:
> path_to_file = "/home/jim/workspace/lgr/pinax/projects/lgr/site_media/base.css"
> get_hg_rev(path_to_file)
'0ed525cf38a7b7f4f1321763d964a39327db97c4'