16 Stimmen

Wie zeigt man die aktuelle Arbeitskopie eines hg-Repositorys auf einer PHP-Seite an?

Ich verwende Mercurial für die meisten meiner Projekte, und wenn ich eine Website bereitstelle, führe ich einfach ein hg clone auf dem Produktionsserver und hg pull -u von dort aus. Ich möchte ein kleines Snippet in die Fußzeile meiner Website einfügen, das die aktuelle Revisionsnummer (sowohl dezimal als auch hexadezimal) und vielleicht auch den aktuellen Zweig anzeigt. Stack Overflow und BitBucket tun beide eine Variation von dem, was ich suche.

Ich habe kurz versucht, die Ausgabe von exec('hg summary') aber ich bin auf ein paar Probleme mit den Zugriffsrechten gestoßen und habe mich gefragt, ob es einen besseren Weg gibt, das zu tun. Gibt es einen besseren Weg, oder ist exec meine beste Option?

21voto

Ry4an Brase Punkte 77642

Sie könnten einen Post-Update-Hook verwenden, um die Informationen in einer Datei abzulegen. In der Website der .hg/hgrc würden Sie etwa so formulieren:

[hooks]
post-update = hg id --rev > VERSION ; hg id --id >> VERSION

dann können Sie auf diese Datei von Ihrem php aus zugreifen. Sie müssen trotzdem sicherstellen, dass der Benutzer, der die hg pull -u vertraut der hgrc-Datei und stellt sicher, dass die VERSION-Datei so berechtigt ist, dass der Webserver sie lesen kann.

7 Stimmen

Eine gute Beschreibung der Überarbeitung lässt sich etwa wie folgt erhalten hg log -r . --template "v{latesttag}-{latesttagdistance}-{node|short}\n" . Dies ergibt eine Zeichenkette wie "v1.0.0-2-5e51254a" (d.h. 2 Commits nach dem Tag 1.0.0 mit Änderungssatz-ID 5e51254a .

0 Stimmen

Gute Antwort - gefällt mir. Verlässt sich nicht auf exec einfach genug zu implementieren. Danke!

0 Stimmen

hg id -r erwartet ein Argument, ich nehme an, Sie meinten -n ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X