AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Repository aufteilen GIT

Ein Thema von DevLinus · begonnen am 7. Jul 2017 · letzter Beitrag vom 20. Jul 2017
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
DevLinus

Registriert seit: 25. Apr 2017
26 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Repository aufteilen GIT

  Alt 7. Jul 2017, 08:43
Guten Morgen,
gegeben ist ein Repository. Dort sind Zwei Hauptprojekte drin. Die Hauptsoftware und eine weitere Software zum Pflegen der Datenbestände.
Das Datenpflegetool hat leider extrem starke Verbindungen zu der Hauptsoftware. Deswegen werden so gut wie alle Units mit Compiliert.
Das sind mit externen Code knapp 3 Millionen Zeilen Code. Dies dauert natürlich extrem lange zu erzeugen wenn man auf ein Branch wechselt. Da wir mehre Releases haben muss die Abteilung die für die Pflege des Datenbestand zuständig sind öfter den Branch ändern. Da geht an schlechten Tagen gerne mal pro Mitarbeiter mehr als 1 Stunde zeit verloren mit Branch wechselen und neu Erzeugen der Sourcen.

Hat jemand ein Ansatz wie man das Projekt aufteilen könnte? Die Sourcen der Hauptsoftware ändern sich nur einmal die Woche in den Branches wo das Datenpflege Tool entwickelt wird.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 09:09
Ich denke da kämst Du gut mit einem Subrepository (git Nomenklatur ist mir grad nicht geläufig, aber es dürfte klar sein, was ich meine) hin, das alle gemeinsamen Units beinhaltet. Dann aus dem einen alten Repositor zwei machen (pro Projekt eines) und das Subrepository einbinden und es sollte alles so werden, wie Du es Dir vorstellst.

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

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:01
Wir haben dafür gemeinsame Units, die in den anderen Projekten eingebunden werden. Aber nicht per Quelltext, sondern per DCU. Sprich wir haben ein Package mit den gemeinsamen Units um diese zu kompilieren und in den Projekten direkt eingebunden nur die projektspezifischen Units.

So können wir die gemeinsamen Units per Buildskript bei Bedarf erzeugen und nur die projektspezifischen werden mit dem Projekt erzeugt.

Ihr könntet nun z.B. schlicht ein Package nehmen, bei dem für die einzelnen Releases mit unterschiedlichen DCU-Ausgabeverzeichnissen gearbeitet wird, je nach Branch. Dann bleiben die unveränderten Units nämlich liegen und es geht deutlich schneller zu kompilieren.
Dann noch ein PostBuild-Skript oder ein Befehl im Buildskript, dass die Units nach dem Kompilieren aus diesem Ausgabeverzeichnis in ein entsprechendes gemeinsames Bibliotheksverzeichnis kopiert (das im Bibliothekspfad eingetragen ist).

Um an den gemeinsamen Units leichter etwas ändern zu können, haben wir aber auch oft *_debug.dproj Projektdateien, in denen auch die gemeinsamen Units in den Projekten eingebunden sind. Mit entsprechend längeren Kompilierzeiten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:06
Dies dauert natürlich extrem lange zu erzeugen
Definiere Extrem Lange. 3 Mio Quellcodezeile sollte Delphi in 2 Minuten schaffen.

wenn man auf ein Branch wechselt.
Ich habe bei mir neben dem HEAD auch den/die letzten Branches auf Platte compilierfähig ausgecheckt liegen.
In der IDE muss ich nur eine Umgebungsvariable umsetzen (alle Suchpfade von 3th-Party-Komponenten/eigen Source basieren darauf).
Ist praktisch kein Aufwand.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.157 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:11
Wenn das eigentliche Problem die Dauer für das Zweig-Wechseln und Neu-Kompilieren für Zweige A,B,C (z.B.) sind, warum dann nicht einfach mehrmals das Repo drei mal auf der Platte haben, jeweils auf Stand A, B und C?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:21
Ja, mehrfach aus unterschiedlichen Branches nebeneinander ausgescheckt haben wir auch. Aber eben mit unterschiedlichen DCU-Ausgabepfaden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#7

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:29
Beide Programme mit der selben Delphi-Version?
Wenn nicht, dann muß sowieso jeder alles kompilieren.

Die zweite Anwendung bekommt nur Zugriff auf die vorkompilierten DCU.
PAS maximal im Bibliothekspfad, zum Debuggen, aber lohnt sich nur, wenn die DCUs auch mit Debuginfos kompiliert werden.

Man könnte auch komplett alle gemeinsamen PAS (sie sollten seltener geändert werden) in ein drittes Projekt legen und darüber kompilieren.
Die beiden eigentlichen Programme bekommen dann nur die DCUs, müssen sie niemals neu kompilieren.

Die DCUs sollten dann natürlich mit im GIT liegen
oder in einem externen branch-/versionsabhängigen Verzeichnis, damit beim Branchwechsel direkt die passenden DCUs vorhanden sind.


Wie haben bei uns alle Fremdkomponenten mit im SVN.
Das waren samt SVN-Dateien fast 1,5 GB. und die eigentlichen Programmsourcen nur 80 MB (300 MB kompiliert)
Die Fremdbibliothenken wurden auch auch so schon einzeln kompiliert (eine überspringbare Gruppe im FinalBuilder) und es konnte so entweder alles oder z.B. nur die eigenen EXE/DLL/BPL kompiliert werden. Als weitere Gruppen noch sowas wie Setup erstellen, Hilfe generieren, Delphi einrichten (Femdkomponenten reistrieren und DDevExtensions, IDE-FixPack usw).

Den Teil mit den Fremdkomponenten haben wie letztens auch in ein eigenes Repository ausgelegt (je Eines pro Version) und das Auschecken/Branchwechseln geht jetzt auch viel schneller, da ja nur noch knapp 150MB statt 1,5GB runtergeladen werden müssen, aber als Sub-Repository (Unterverzeichnis) an der alten Stelle verlinkt (Hardlink), um jetzt nicht alles umbauen zu müssen (Pfade überall anpassen/ändern).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Jul 2017 um 10:42 Uhr)
  Mit Zitat antworten Zitat
DevLinus

Registriert seit: 25. Apr 2017
26 Beiträge
 
Delphi 10 Seattle Professional
 
#8

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 10:55
Danke euch hat mir schon extrem weitergeholfen. Ich werde die Unterschieldichen Optionen am Montag mit meinen Teamleiter besprechen.

Ja zum Glück sind alle aktuellen Releases gerade mit der gleichen Delphi Version.
Das Erzeugen dauert auf meinen Rechner meist 6 Minuten. Mit Branch wechseln dauert es meist 20-30 Minuten bis man weiter arbeiten kann.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.061 Beiträge
 
Delphi 12 Athens
 
#9

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 11:28
Wenn es zu lange dauert.
http://www.delphipraxis.net/192628-i...y-version.html

Aber 6-20 Minuten geht ja noch.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
DevLinus

Registriert seit: 25. Apr 2017
26 Beiträge
 
Delphi 10 Seattle Professional
 
#10

AW: Repository aufteilen GIT

  Alt 7. Jul 2017, 11:50
Wenn es zu lange dauert.


Aber 6-20 Minuten geht ja noch.
Wenn mann danach eine lange zeit auf den Branch ist ja. Wir arbeiten aber ziemlich viel auf Zuruf. Da ohne die neuen Daten unsere Datenpfleger nicht weiter arbeiten können. Das heißt das es an einen schlechten Tag vorkommen kann das du drei bis 5 mal hin und her wechselst um ein Routine hinzuzufügen. (Dauert meist nur 30 Minuten) sie zu Entwickeln wenn die Regeln gut definiert sind.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 12:35 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