Gource ist ein Programm, mit dem man die Commits in einem Git-Repo visualisieren kann. Ich hatte das vor einigen Jahren für das Repo der Software Mumble gemacht (siehe unten).

Und heute bin ich wieder darüber gestolpert und habe das auch mal für das Git-Repo meines Blogs gemacht. Seit dem Umzug meines Blogs von WordPress nach Hugo benutze ich Git dafür und mache für jede Änderung einen einzelnen Commit.

Die “Strahlen”, die im Video zu sehen sind, stehen für diese Commits und zeigen dabei auf die Dateien und Verzeichnisse, die durch den Commit verändert wurden.

Je mehr in einem Repo in der Vergangenheit passiert ist, desto eindrucksvoller sieht so ein mit Gource erstelltes Video aus. Man könnte mal nach einem Gource-Video des Linux-Kernels suchen.

Dokumentation ist immer gut :)

Dank meiner früheren Dokumentation zur Verwendung von Gource konnte ich sofort ein Video erstellen lassen. In dieser Dokumentation ist auch das Video für das Git-Repo von Mumble verlinkt.

Mein neues Video

Ich habe das Video auf meinem PeerTube-Account hochgeladen, siehe hier.

Für mein neues Video habe ich den Aufruf leicht geändert, u. a. weil der Standard-Branch mittlerweile nicht mehr master heißt sondern main. Zusätzlich habe ich Dateinamen und Verzeichnisnamen versteckt, weil es sonst sehr unübersichtlich war, da irgendwann im Verlauf der “Entwicklung” des Blogs um die 2600 Blogbeiträge mit einem Commit hinzugefügt wurden.

Die Kommandozeile sieht so aus:

gource --highlight-users --log-format git --git-branch main --multi-sampling -1920x1080 \
--seconds-per-day 1 --hide mouse,filenames,dirnames --output-framerate 60 \
--background-colour 000000 --max-files 32768 --file-idle-time 999999 \
--output-ppm-stream - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec mpeg4 \
-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -vb 80M gource.mp4

Hier ein Vorschaubild:

Vorschaubild des Videos

Ich werde in einiger Zeit noch einmal so ein Video machen und bin gespannt auf die weitere Entwicklung.

Interaktiv

Lässt man bei der Kommandozeile alles nach --file-idle-time 999999 weg, dann kann man Gource auch interaktiv benutzen. Das kann sehr spannend sein. Natürlich benötigt man dazu ein lokales Git-Repo, in dessen Verzeichnis man das Kommando ausführt.

Die verfügbaren Tasten(ḱombinationen) zur Bedienung von Gource (aus der Manpage):

(V)   Toggle camera mode
(C)   Displays Gource logo
(K)   Toggle file extension key
(M)   Toggle mouse visibility
(N)   Jump forward in time to next log entry
(S)   Randomize colours
(D)   Toggle directory name display mode
(F)   Toggle file name display mode
(U)   Toggle user name display mode
(G)   Toggle display of users
(T)   Toggle display of directory tree edges
(R)   Toggle display of root directory edges
(+-)  Adjust simulation speed
(<>)  Adjust time scale
(TAB) Cycle through visible users
(F12) Screenshot
(Alt+Enter) Fullscreen toggle
(ESC) Quit

Gource-Projekt

Hier gehts zur Projektseite von Gource.