ubuntuusers.de

SVN: Revisionsnummer und Datum auf Webseite anzeigen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

ottk3

Avatar von ottk3

Anmeldungsdatum:
27. November 2007

Beiträge: 323

Wohnort: Bielefeld

Hallo Leute,

ich würde gerne auf einer Webseite immer das letzte Änderungsdatum und die aktuelle Revisionsnummer aus einem SVN Projekt anzeigen lassen. Leider bin ich mich mit Subversion noch nicht so vertraut. Werden diese Daten automatisch irgendwo gespeichert, wo ich sie mittels PHP auslesen lassen könnte?

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Du kannst in Deinem Quellcode zB folgendes Keyword nutzen:

$LastChangedDate$

Dafür mußt Du allerdings für die PHP-Datei foobar.php folgende svn-Property setzen:

svn propset svn:keywords "LastChangedDate" foobar.php

ottk3

(Themenstarter)
Avatar von ottk3

Anmeldungsdatum:
27. November 2007

Beiträge: 323

Wohnort: Bielefeld

Danke, allerdings sind die Webseite und das SVN Projekt auf zwei unterschiedlichen Servern, lässt sich das trotzdem so bewerkstelligen? Alternativ über einen Cronjob auf dem Webseiten Server?

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Wie kommen denn die Files auf den Webserver? Doch bestimmt per svn export vom SVN-Server? Dann funktioniert es ohne Porbleme, da die Keywords bei checkout sowie beim export von SVN ersetzt werden.

ottk3

(Themenstarter)
Avatar von ottk3

Anmeldungsdatum:
27. November 2007

Beiträge: 323

Wohnort: Bielefeld

Danke nochmal comm_a_nder!

Musste es aber etwas anders lösen, damit ich auch die globe Revisionsnummer rausbekam. Ich habe es jetzt mit einem Cronjob auf dem Webserver gelöst.

svn log -rHEAD URL > revision.txt

Jetzt habe ich folgenden Eintrag in der revision.txt

------------------------------------------------------------------------
r4 | tester | 2009-02-23 13:45:48 +0100 (Mo, 23. Feb 2009) | 1 line

Clean up TestCallback.
------------------------------------------------------------------------

Wie kann ich wohl r4, tester, 2009-02-23, 13:45:48 einzeln in eine Variable bringen? ☺

ottk3

(Themenstarter)
Avatar von ottk3

Anmeldungsdatum:
27. November 2007

Beiträge: 323

Wohnort: Bielefeld

Wahrscheinlich gibt es eine deutlich schönere Lösung als diese, die ich mit meinem (gefährlichen) Halbwissen zusammengebastelt habe 😀

Auf jedenfall lasse ich auf dem Webserver per Cronjob eine Datei (subversion.php) erstellen, welche die globale Revisionsnummer, den Benutzer, Datum und Uhrzeit sowie Änderungstext in ein Array schreibt:

#!/bin/sh
svn log -rHEAD URL > subversion.php
revision=`cat subversion.php | head -2l | tail -1l | awk -F" |" '{ print $1 }'`;
user=`cat subversion.php | head -2l | tail -1l | awk -F" |" '{ print $3 }'`;
date=`cat subversion.php | head -2l | tail -1l | awk -F" |" '{ print $5 }'`;
time=`cat subversion.php | head -2l | tail -1l | awk -F" |" '{ print $6 }'`;
changes=`cat subversion.php | head -4l | tail -1l`;

#Erstelle neue subversion.php
echo "<?php" > subversion.php;
echo "\$revision = array(\"$revision\", \"$user\", \"$date\", \"$time\", \"$changes\");" >> subversion.php;
echo "?>" >> subversion.php;

Falls es besser geht, gerne ☺

maschino

Avatar von maschino

Anmeldungsdatum:
3. April 2007

Beiträge: 145

Also ich habe es bei meinem Projekt so gelöst, kann aber gut sein, dass es nicht überall klappt:

$svnFile = file(".svn/entries");
echo trim($svnFile[3]);

Zumindest bei mir steht in der entries Datei in der vierten Zeile die Revision ☺

Gruß,
maschino

Edit: Das Datum steht bei mir in der zehnten Zeile, müsste dann halt geparst werden..

Antworten |