AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Git/GitLab: Großprojekt mit Plugins - wie viele Projekte
Thema durchsuchen
Ansicht
Themen-Optionen

Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

Ein Thema von TheMiller · begonnen am 5. Dez 2014 · letzter Beitrag vom 5. Dez 2014
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 09:05
Hallo,

vorab - ich wusste nicht genau, wie ich den Titel aussagekräftiger gestalten konnte.

Ich habe eine kleine Grundsatzfrage: Wir stiegen vor kurzem auf Git bzw. dem selbstgehosteten Gitlab um. Nun möchten wir ein Projekt importieren, an dem wir wieder arbeiten. Das Programm (Delphi) hat ein Hauptprogramm und sehr viele Plugins in Form von weiteren exe-Dateien, welche aber über das Hauptprogramm geladen werden.

Meine Frage ist nun: Erstelle ich nur ein Git-Projekt, welche die Quelltexte aller Programme/Plugins beinhaltet oder erstelle ich ein Projekt für die Hauptanwendung und für jedes Plugin ein weiteres Projekt?

Letztere Variante wäre für die Zugriffsberechtigungen einzelner Projektteilnehmer vllt. besser. Und wenn man neuze Zweige erstellt, muss nicht immer das gesamte Projekt ausgecheckt werden, wenn man eigentlich nur an dem Plugin XY arbeitet.

Wie handhabt ihr das so?

Danke im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 09:11
Du musst doch gar nichts auschecken und Speicherplatz gibts quasi geschenkt. Das mit den Zugriffsrechten ist natürlich eine andere Sache, dazu kann ich leider nichts sagen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 09:32
Du musst doch gar nichts auschecken..
Wie kommst Du denn sonst an die Änderungen von deinen Kollegen?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 10:09
Letztere Variante wäre für die Zugriffsberechtigungen einzelner Projektteilnehmer vllt. besser.
Es ist so schlimm wenn einzelne Projektteilnehmer auch andere Plug-ins sehen und dann vorhanden Code wiederverwenden/basisklassen, Units ableiten?
Gibt es Sicherheitsgründe das einzelne Teilnehmer nicht alles sehen dürfen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 10:11
Du musst doch gar nichts auschecken..
Wie kommst Du denn sonst an die Änderungen von deinen Kollegen?
Bei git? Durch "pull" - ist freilich nur ein anderes Wort. Aber auschecken hat einen Beigeschmack, der der VCS Historie geschuldet ist: Früher war auschecken blockierend, d.h. Änderungen an ausgecheckten Dateien waren nur dem "Auschecker" vorbehalten. Wir haben uns angewöhnt, die alten Begriffe zu vermeiden, weil sie eben entsprechend alte Vorstellungen mit sich bringen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 10:20
Ja, das hast du Recht.

Ich meinte auch eher, dass die Übersicht, Namensgebung der Zweige etc. darunter leidet, wenn alle Projektteile in einem Projekt zusammengefasst sind. Ich weiß nicht, welche Vor- und Nachteile so ein "Komplettpaket" mit sich bringt - daher frage ich lieber nach.

Derzeit tendiere ich dazu, für jedes Plugin ein eigenes Projekt im Namensformat "Programmname - Plugin - Plattform" zu erstellen. So kann man schön Rechte vergeben, Zweige erstellen ohne das die Gesamtübersicht darunter leidet etc.

Was haltet ihr davon?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#7

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 11:05
Wir haben auf Arbeit mehrere Git-Repositories für ein großes Projekt angelegt. Es handelt sich um ein CMS, ein CRM und weitere webbasierter Serversoftware. Alles greift auf eine "lib" zu, die ziemlich groß und mächtig ist. ALles was irgendwelche Gemeinsamkeiten aufweist, ist in der lib, alles andere in den einzelnen Repositories.

Ich kann diesen Ansatz leider nicht empfehlen, da sich bei uns die lib immer weiter ausdehnt und mittlerweile Dinge enthält, die da eigentlich gar nicht mehr wirklich reingehören. Beispielsweise Routendefinitionen (also Pfadangaben in URLs) für das Ausloggen, da dieser Link auf allen Webservices verfügbar sein muss. Auch ist die Auftrennung teilweise unsauber, da manche Teile sowohl in der lib als auch in den einzelnen Projekten zu finden sind. Auch die Versionierung ist sehr aufwendig geworden, da man für lib-Änderungen gleich mehrere neue Versionen in anderen Projekten einführen muss. (Es handelt sich um Git Submodules)

Ob das jetzt vergleichbar ist kann ich dir nicht sagen. Just my 2 cents. Vielleicht hilft's!
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Git/GitLab: Großprojekt mit Plugins - wie viele Projekte

  Alt 5. Dez 2014, 15:46
Kommt die Anwendung ohne die Plugins klar?
Wenn ja, dann alles in ein eigenes Repository.

Die Plugin API (zum Beispiel ein Header file, COM-Lib, Delphi interfaces etc) sollte vllt auch ein eigenes Repo sein, selbst wenn es momentan nur eine Datei sein sollte.

In allen Repos, die Zugriff auf die Plugin API brauchen kannst du die dann als sub module hinzufügen.

Für den fertigen Build kannst du dir ein Container Repo machen, welches alle Repos als submodules hat, welche für den jeweiligen Build interessant sind.
Alle Projekte sollten mit relativen Pfaden zueinander klar kommen, sonst brauchst du das gar nicht erst versuchen.

Bei Submodules merkt sich Git auf welches Changeset du zeigst (kommt mit ins Commit). Dadurch kriegst du immer den passenden Stand in den submodules wenn du eine ältere Version haben willst.

Das ist jetzt nix neues, das ging schon vor Git.
Das ist auch nicht super toll. Es ist aber halt besser als alle & ihren Opa zusammenzuwerfen.

Es kann sich als sinnvoll erweisen, einige der Plugins zusammen mit dem Hauptprogramm zu versionieren, da es ohne sie nicht auskommt und vllt auch von den gleichen Leuten gepflegt wird.
Aber das könnt nur ihr selbst entscheiden.

Zu den Berechtigungen:
Passt auf, dass ihr keine Rechte-Nazis werdet.

Sorgt dafür, dass alle im Team wenigstens den Code sehen und einen Fork/Pullrequest anlegen können. Sie sollten auch überall Changesets bewerten/kommentieren können.
Denn wenn Heinz einen Fehler sieht, sollte er ihn auch ohne Krämpfe anzeigen können. Oder vllt. sogar schnell einen Pullrequest von einem Fork mit dem Fix anlegen können.
Das heißt, Heinz kann ein Problem lösen, ohne direkt auf das Development Repo schreiben zu können.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”

Geändert von Elvis ( 5. Dez 2014 um 20:56 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz