2013-04-12 7 views
5

Entschuldigung im Voraus, das ist etwas, das ich wirklich dachte, ich könnte im Internet finden, aber ich hatte Probleme.

In Python, in dem Header-Abschnitt, sehe ich, dass die Leute manchmal ihre Literale mit einem Dollarzeichen wickeln werden ($). Es scheint, nach Beispielen zu urteilen, dass dies ein Zeiger ist, um Informationen einzufügen, die automatisch aktualisiert werden (vielleicht über Quellcodeverwaltung?), Aber ich verstehe nicht, wie es funktioniert.

Zum Beispiel:

__version__ = '$Revision: 4799 $'.split()[1] 
__date__ = '$Date: 2006-09-25 11:09:02 -0400 (Mon, 25 Sep 2006) $'.split()[1] 
__author__ = 'John Doe FIX: put in the authors name' 

ist ein Beispiel, das ich bei (Python Example Documentation Template) gefunden. Also wird das $ um die Version gewickelt (die sich im Laufe der Zeit ändert) und das Datum (das sich auch ändern wird). Angenommen, es handelt sich um einen Zeiger, der immer aktuelle Informationen über die Version, das Datum usw. enthält. Kann mir jemand zeigen, wie das funktioniert? Welche Quellcodeverwaltungssoftware verwendet diese Syntax? Ist es in allen Sprachen gleich?

Vielen Dank!

Antwort

3

Dies ist Python nicht spezifisch, es ist etwas von Versionskontrollsystemen, geht zurück zu RCS und CVS ist.

Siehe CVS Keywords für eine Liste der CVS-Syntax. Während nur wenige Menschen heutzutage CVS verwenden, verwenden viele der Quellcodeverwaltungssysteme Menschen tun verwenden (vor allem Subversion) CVS-Syntax oder eine leichte Variation davon. (Und einige Leute erstellen auch Build-Skripte, die ähnliche Ersetzungen zur Build-Zeit statt Check-in-Zeit durchführen.)

+0

Vielen Dank! Ich dachte, es wäre so etwas, aber ich konnte nichts finden, was Sie bestätigen könnten. Danke für den Link. –

2

Dies ist ein Ergebnis von subversion's keyword substitution (ursprünglich CVS). Ja, es funktioniert mit allen Dateien, nicht nur mit Python-Quellcode.

+0

Hallo Pavel, vielen Dank! Ich wollte eigentlich sagen, dass sowohl Ihre & Abarnets "korrekt" waren, aber StackExchange lässt mich nicht zwei richtige Antworten wählen. –

1

Dies wird als „Keyword-Substitution“ und Varianten dieser Idee sind in einer Reihe von Versionskontrollsystemen, wie RCS, CVS und Subversion implementiert genannt. Angesichts dieser Tatsache können Sie das Web jetzt problemlos nach Details durchsuchen.

1

Es ist nicht pythonspezifisch.

Einige Versionskontrollsysteme (RCS, CVS und SVN mindestens) automatisch die Revisionsnummer und Datum der letzten Änderung der Datei mit den speziellen Variablen einfügen.