2016-06-30 5 views
0

Ich versuche, die Patches für eine bestimmte Revision mit Hglib zu bekommen. Ich weiß, dass der hg Befehlhglib: Patches für eine Revision anzeigen, möglich?

hg log -pr rev

ist, aber ich kann nicht finden, wie diese oder gleichwertig mit hglib zu tun. Es scheint, dass es keine Funktionalität dafür gibt, es sei denn, ich hacke den Code selbst, um den obigen Befehl auszuführen. Jede Hilfe würde sehr geschätzt werden?

Antwort

1

Die hglib client.log() Schnittstelle unterstützt nicht, was ich tun wollte, aber ich fand eine einfache Möglichkeit, einen beliebigen hg Befehl auszuführen. Diese zwei Zeilen drucken den Patch der Revision rev:

out = client.rawcommand([b'log', b'-pr', b'%i'%rev]) 
print(str(out, 'utf-8')) 
1

Vielleicht ist dies die tatsächliche Antwort!

import hglib 
client = hglib.open(<path>) 
client.export (revs = str(<revision number>), output = <output file path>) 

Sie können das selbe mit Unterprozesspaket selbst ausführen, um die Interpretationszeit zu sparen. Rawcommand erstellt nur einen Befehl mit den übergebenen Parametern und führt ihn erneut mit dem Subprozess aus.