Nudge am 19.02.2010

Subversion: propset keyword Id automatisieren

in PHP, Tipp | Tags: Id, Keyword, PHP, Property, Subversion, SVN

Wer seine Quelldateien in einem Subversion (SVN) vorhält, kennt die Keywords Id oder Revision, die man zum Beispiel in PHP folgendermaßen in einer Datei example.php als Kommentar benutzen kann:

1
/* $Id$ */
/* $Id$ */

Beim Einchecken macht SVN aus dem Keyword Id:

1
/* $Id: example.php 569 2010-02-19 15:17:49Z nudge $ */
/* $Id: example.php 569 2010-02-19 15:17:49Z nudge $ */

Wenn nun jemand im Projekt ein bisschen herumsucht und nicht so richtig zurechtkommt, so sagt ihm diese Angabe, dass es sich um die Datei example.php handelt, die in Revision 569 des Projekts vorliegt, und diese wurde am 19.02.2010 um 15:17 das letzte Mal geändert, und zwar vom Benutzer Nudge. Das ist richtig toll, doch leider macht das SVN erst, wenn man alle Dateien mit diesem Keyword-Property ausgestattet hat. Besser also, man erleichtert sich das durch eine geeignete Voreinstellung. Diese bekommt man in der Datei ~/.subversion/config hin:

1
2
3
4
5
[miscellany]
enable-auto-props = yes
 
[auto-props]
*.php = svn:keywords=Id;svn:eol-style=native
[miscellany]
enable-auto-props = yes

[auto-props]
*.php = svn:keywords=Id;svn:eol-style=native

Bisher erstellte Dateien berührt diese Voreinstellung nicht. Wenn man schon eine ganze Menge Dateien eingecheckt hat, so benutzt man am besten ausgecheckten (!) Pfad des Projekts folgenden Bash-Befehl, um alle darin enthaltenen PHP-Dateien nachträglich das Keyword-Property zu verpassen:

1
$ find ./ -name '*.php' -exec svn propset svn:keywords 'Id' {} \;
$ find ./ -name '*.php' -exec svn propset svn:keywords 'Id' {} \;

Und schon ist man dem PHP-Entwickler-Glück wieder ein Stückchen näher gekommen. 🙂