Posts Tagged ‘Perforce’

Gource Projektvisualisierung mit Perforce unter Windows

Montag, Juni 2nd, 2014

Die Versionverwaltung Perforce wird leider nicht direkt von Gource unterstützt. Aber auf dem Blog von Eric Melski habe ich eine Anleitung gefunden, wie man über einen kleinen Umweg doch zu der gewünschten Visualisierung kommt. Allerdings hatte ich doch einige Probleme, der Anleitung unter Windows zu folgen. Schwierig für mich war es, an die notwendige Log-Datei zu kommen und auch das „tcl“-Script konnte ich nicht direkt ausführen. Schlussendlich fand ich dann aber doch einen recht einfachen Weg um die Probleme zu lösen. Total überrascht war ich, als ich sah, das die normale Windows-Console in der Lage ist, Befehle in einer Schleife auszuführen. Folgende Schritte musste ich durchführen, um eine Projektvisualisierung zu starten:

1. Erzeugung der Log-Datei

Um eine Perfoce Log-Datei zu erzeugen wird eine Windows-Komandozeile benötigt. Dort führt man zuerst

p4 changes -s submitted -m 1

aus. Der Befehl erzeugt eine einzeilige Ausgabe, die die Anzahl der in Perforce gespeicherten Änderungslisten zurückliefert. Anschließend benötigt man für jede Änderungsliste die Beschreibung. Diese kann man mit folgenden Befehl in eine Datei schreiben:

for /L %i in (1,1,115) do p4 describe -s %i >> p4.log

Hierbei muss die 115 durch die vorher bestimmte Anzahl ersetzt werden.

2. Konvertierung der Log-Datei

Mit Hilfe von WinTclTk und dem Script von Erik Melski konnte ich das von Perforce erzeugte Log relativ einfach in ein für Gource verständliches Format umwandeln. In der Script-Datei muss man in der Zeile 75 eine Kleinigkeit editieren. Dort muss man den Perforce Branch eintragen, der visualisiert werden soll. Anschließend kann das Script per

„C:\program files (x86)\WinTclTK\bin\tclsh85.exe“ p42gource.tcl < p4.log > gource.log

ausgeführt werden. Als Ausgabe erzeugt das Script eine weitere Log-Datei mit der Gource dann umgehen kann. Danke schön Erik für das Script.

3. Gource starten

Als letztes muss dann nur noch Gource gestartet werden:

gource –log-format custom gource.log –hide filenames,mouse –title „BVASystem“ –file-idle-time 0

Fazit: Ein halbes Jahr mit Perforce

Donnerstag, Mai 29th, 2014

Ich weiß, das man als Softwareentwickler eine Versionsverwaltung einsetzen sollte, da man mit ihr keine Angst mehr haben, muss irgendetwas kaputt zu machen.  Sollte man etwas „kaputt entwickeln“, geht man einfach auf den letzten funktionierenden Stand in der Versionsverwaltung zurück. Durch diese Sicherheit geht man insgesamt mutiger mit dem Projekt um und probiert auch einmal größere Änderungen. Gerade wenn man mit mehreren Entwicklern an einem Projekt arbeitet, ist der Einsatz einer Versionsverwaltung unabdingbar.

Da ich das BVASystem allein entwickele, hatte ich bis Dezember 2013 keine Versionsverwaltung im Einsatz. Vor größeren Änderungen erstellte ich mir immer manuell eine Sicherheitskopie, die ich anschließend oft vergaß. Daher sammelten sich mit der Zeit viele Sicherungskopien auf der Festplatte und müllten diese zu. Da mich die Aufräumaktion nervte, entschied ich mich dann Perforce als Versionierungssystem einzusetzen, da ich das System bereits von der Arbeit kannte. 

Nun nach einem halben Jahr muss ich sagen, das die Entscheidung gut gewesen ist. Ich habe versucht, täglich meinen Projektstand in Perforce einzustellen. Da ich 115 Änderungslisten im System habe, würde ich meinen, das mir das fast gelungen ist. Und das beste … die halbjährliche Aufräumaktion fiel diesmal aus. Ich werde es also definitiv weiter benutzen, da die Vorteile überwiegen.

Vorherige Woche stolperte ich über die Visualisierungssoftware Gource, mit der es möglich ist den Projektverlauf in Form eines Video darzustellen. Dazu benötigt die Software nur ein Protokoll aus der Versionierungssoftware. Dies probierte ich natürlich sofort aus. Im Video sieht man, welche Dateien ich im Laufe der Zeit editiert habe. Am Anfang sieht es leider etwas wild aus, da ich ja nicht von Anfang an auf Perforce gesetzt habe. Ich denke allein schon wegen des Videos lohnt es sich, die Versionierung weiterhin einzusetzen.