Suche Komponente für GIT-Grafik
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Suche Komponente für GIT-Grafik
Ich würde etwas suchen, wie man am besten so Grafiken erstellen kann wie am Bild. (Ausser Git-log)
Es geht mir darum diese Linien ähnlich wie am Bild dargestellt hinzubekommen.
Es geht mir darum diese Linien ähnlich wie am Bild dargestellt hinzubekommen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Mathias
- Beiträge: 7321
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Suche Komponente für GIT-Grafik
Geht es dir um eine Universalgrafik, oder spezifisch auf GIT ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Eher Universalgrafik, nachdem ich mich aktuell mit der libgit2 beschäftige, ist es dann spezifisch für GITMathias hat geschrieben: Di 23. Jun 2026, 17:35 Geht es dir um eine Universalgrafik, oder spezifisch auf GIT ?
Auf der einen Seite ist es ja ein Raster, weil man die Commits dort anzeigt, andererseits braucht man Linien um damit die Branches abzubilden.
Alleine wenn man sich oben die 4 Grafiken ansieht, ist die Analyse der Zweige immer komplett anders dargestellt. Vor alen, wenn versucht die einzelnen Stränge zu verfolgen um zu sehen wie sich der "master" ausgebildet hat, ist das komplett unterschiedlich dargestellt. Kein Wunder wenn die meisten bei GIT aussteigen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Roland Chastain
- Beiträge: 199
- Registriert: Sa 7. Jul 2012, 21:50
- Wohnort: Saargemünd
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Um solche Zeichnungen anzufertigen, würde ich TikZ benutzen.
Offenbar bin ich nicht der Einzige, der diese Idee hatte.
Offenbar bin ich nicht der Einzige, der diese Idee hatte.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.
Pourvu que Dieu lui prête vie.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1791
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
in meiner Git Gui habe ich die selbst gemalt, war aber nicht gerade spaßig
--
Just try it
Just try it
- Zvoni
- Beiträge: 700
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: Suche Komponente für GIT-Grafik
Die GIT-Grafiken erinnern mich irgendwie an "Prozessfluss/-Ablauf"
PascalScada als "Ansatz"?
https://wiki.lazarus.freepascal.org/PascalSCADA
Alternativ: LazNodeEditor
https://forum.lazarus.freepascal.org/in ... 064.0.html
PascalScada als "Ansatz"?
https://wiki.lazarus.freepascal.org/PascalSCADA
Alternativ: LazNodeEditor
https://forum.lazarus.freepascal.org/in ... 064.0.html
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Werde ich mir ansehen, gut geklaut ist besser als selbst schlecht gemacht.
PascalScada und LazNodeEditor sind nicht das Mittel zum Zweck, leider. Für andere Zwecke, ist es gut zu wissen. Wobei ich PascalSCADA sehr gut kenne, das macht Sinn für relativ statische Übersichten im Maschinenbau.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Danke für die Info, das ist aber weit vom "pascalischen" Weg entfernt.Roland Chastain hat geschrieben: Mi 24. Jun 2026, 08:24 Um solche Zeichnungen anzufertigen, würde ich TikZ benutzen.
Die Lösung von Corpsmann ist IMHO die reine Pascal Lösung. Jetzt muss ich nur die internen Strukturen von Git (über LibGit2) und den Weg von Corpsmann verstehen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Mathias
- Beiträge: 7321
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Suche Komponente für GIT-Grafik
Dieses Latex ist eine echt mächtige Sache.Roland Chastain hat geschrieben: Mi 24. Jun 2026, 08:24 Um solche Zeichnungen anzufertigen, würde ich TikZ benutzen.
Offenbar bin ich nicht der Einzige, der diese Idee hatte.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
Warf
- Beiträge: 2312
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Suche Komponente für GIT-Grafik
Am einfachsten ist vermutlich graphviz dot. Das ist ein Konsolenprogramm das du über TProcess aufrufen kannst, die Beschreibung des Graphen als ASCII text in stdin schreiben kannst und die Grafik in stdout zurück bekommst.
Das hat auch alle modernen layouting Algorithmen drin für alle möglichen graph designs. Ich habs für sowas schon sehr oft benutzt.
Das hat auch alle modernen layouting Algorithmen drin für alle möglichen graph designs. Ich habs für sowas schon sehr oft benutzt.
- Roland Chastain
- Beiträge: 199
- Registriert: Sa 7. Jul 2012, 21:50
- Wohnort: Saargemünd
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
@af0815
Könnten Sie uns ein Beispiel für den Anfangstext geben? Welchen Befehl verwenden Sie, um die zu visualisierenden Daten abzurufen?
Könnten Sie uns ein Beispiel für den Anfangstext geben? Welchen Befehl verwenden Sie, um die zu visualisierenden Daten abzurufen?
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.
Pourvu que Dieu lui prête vie.
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Es gibt keinen Anfangstext, die Daten werden mittels LibGit2 https://libgit2.org/ und https://github.com/libgit2/libgit2 abgerufen, Der Zugriff erfolgt über die https://github.com/todaysoftware/libgit2-delphi und einen eigenen Wrapper der die Objekt besser in Lazarus umsetzt. Da ich gerade die ersten Schritte mit dem Wrapper mache, wollte ich auch gleich sehen, was für Daten ich für die Grafiken buw. Informationen brauche. GIT ist da unter der Haube zeitweise doch etwas komplexer und man muss die Daten sich erst zusammensuchen, dazu sollte man wissen, was man suchtRoland Chastain hat geschrieben: Mi 24. Jun 2026, 20:52 @af0815
Könnten Sie uns ein Beispiel für den Anfangstext geben? Welchen Befehl verwenden Sie, um die zu visualisierenden Daten abzurufen?
Meine Gehversuche sind an die C-Examples von LibGit2 im Ordner examples angelehnt. Dort werden die Populären Git-Befehle nachgestellt. Anhand der Beispiel kann man (meistens) Nachvollziehen, wie ein Kommando ala "git add" oder "git log" intern in Wirklichkeit funktioniert.
Kurzes Beispiel "git push" (Ist noch eines der einfachsten)
Code: Alles auswählen
check_lg2(git_remote_lookup(&remote, repo, "origin" ), "Unable to lookup remote", NULL);
check_lg2(git_remote_init_callbacks(&callbacks, GIT_REMOTE_CALLBACKS_VERSION), "Error initializing remote callbacks", NULL);
callbacks.credentials = cred_acquire_cb;
check_lg2(git_push_options_init(&options, GIT_PUSH_OPTIONS_VERSION ), "Error initializing push", NULL);
options.callbacks = callbacks;
check_lg2(git_remote_push(remote, &refspecs, &options), "Error pushing", NULL);
Und letztlich will ich, das die Lösungen unter allen populären Plattformen laufen und ich nicht von anderen Programmen und deren Ideen abhängig bin. Deswegen der reine Pascalweg, solange es irgendwie sinnvoll ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Warf
- Beiträge: 2312
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Suche Komponente für GIT-Grafik
Geht es nur um das Zeichnen der Graphen oder auch um das Layouting? Wenn du das Layout schon kennst ist das einfachste es einfach mit TCanvas selbst zu zeichnen.
Graphviz ist so das größte Open Source graph rendering tool und ist ziemlich am Puls der Forschung und hat sehr viele Informationen zu layouting Algorithmen auch auf ihrer Website verlinkt: https://graphviz.org/docs/layouts/
(Der GIT Graph ist quasi eine variante des Hierachical Layered Graph)
Das problem ist die meisten dieser Algorithmen sind NP-Hart, d.h. effiziente Algorithmen lassen sich quasi nur mit Heuristiken bauen und die werden nach wie vor sehr aktiv erforscht und das ist tatsächlich erstaunlich kompliziert (ich durfte das mal in JavaScript from scratch implementieren und das ist wirklich kein Spaß).
Die Wahrscheinlichkeit das es in Pascal eine fertige Lösung gibt ist quasi 0 und vom selbst bauen würde ich abraten. Graphviz gibts aber auch als C bibliothek, wenn du die Pascal Bindings schreibst kannst du das aber dann auch benutzen
Graphviz ist so das größte Open Source graph rendering tool und ist ziemlich am Puls der Forschung und hat sehr viele Informationen zu layouting Algorithmen auch auf ihrer Website verlinkt: https://graphviz.org/docs/layouts/
(Der GIT Graph ist quasi eine variante des Hierachical Layered Graph)
Das problem ist die meisten dieser Algorithmen sind NP-Hart, d.h. effiziente Algorithmen lassen sich quasi nur mit Heuristiken bauen und die werden nach wie vor sehr aktiv erforscht und das ist tatsächlich erstaunlich kompliziert (ich durfte das mal in JavaScript from scratch implementieren und das ist wirklich kein Spaß).
Die Wahrscheinlichkeit das es in Pascal eine fertige Lösung gibt ist quasi 0 und vom selbst bauen würde ich abraten. Graphviz gibts aber auch als C bibliothek, wenn du die Pascal Bindings schreibst kannst du das aber dann auch benutzen
- af0815
- Lazarusforum e. V.
- Beiträge: 7347
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Suche Komponente für GIT-Grafik
Corpsmann hat es sehr gut getroffen. In seinem Beispiel steckt alles drinnen. Einer der großen Unterschiede liegt daran, das ich nicht mittels TProcess auf GIT selbst losgehen will, sondern mit LibGit2. Für mich halt eine ziemliche Lernkurve, aber vielleicht verstehe ich dann GIT noch besser, zumindest ist das das Ziel. Also Weg ist das Ziel.Warf hat geschrieben: Do 25. Jun 2026, 19:30 Geht es nur um das Zeichnen der Graphen oder auch um das Layouting?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).