AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge GIT source einer Ebene höher versionieren?
Thema durchsuchen
Ansicht
Themen-Optionen

GIT source einer Ebene höher versionieren?

Ein Thema von Kostas · begonnen am 6. Mai 2022 · letzter Beitrag vom 6. Mai 2022
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 08:42
Hallo Zusammen,

ich habe eine Projektgruppe die sie teilweise den gleichen source nutzen. Gibt es eine Möglichkeit ein Projekt außerhalb des Projektverzeichnisses mit zu versionieren?

Beiepiel:
C:\Projektgruppe\Projekt1
C:\Projektgruppe\Projekt2
C:\Projektgruppe\sharedFiles

Projekt1 soll versioniert werden incl. sharedFiles
Projekt2 soll versioniert werden incl. sharedFiles

Gruß Kostas
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 09:05
Git kümmert sich nicht um (Delphi-)Projekte, sondern um Verzeichnisse.
Normalerweise würdest du sharedFiles als eigenes Repo haben, als Unterordner in jeweils Projekt1 und Projekt2.

Dann könnten die beiden auch völlig frei mit unterschiedlichen Versionen arbeiten.

Lesestoff:
https://git-scm.com/book/en/v2/Git-Tools-Submodules
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#3

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 09:09
Kurze Antwort: Jain

Theoretisch ginge das, in dem man das sharedFiles Repo in den beiden Projekten als Submodule anlegt, aber das hat einen gravierenden Nachteil: Ein Update von Projekt1 auf eine Version X würde auch die sharedFiles auf die zu X passende Version setzen. Wechselt man dann auf Projekt2 und macht ein Update auf Version Y würde sharedFiles auf der passenden Version für Y stehen. Öffnet man nun Projekt1 passt die Version in sharedFiles womöglich nicht mehr dazu.

Besser ist es, wenn beide Projekte ihren eigenen Clone von sharedFiles haben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 09:19
...
Dann könnten die beiden auch völlig frei mit unterschiedlichen Versionen arbeiten.

Lesestoff:
https://git-scm.com/book/en/v2/Git-Tools-Submodules
Genau dass soll unbedingt verhindert werden. Beide Projekten müssen die gleichen sharedFiles nutzen und dürfen auf keinen Fall auseinander laufen.
Erreiche ich das durch deinen Vorschlag mit Submodules, hab mich damit noch nicht beschäftigt.

Gruß Kostas
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 09:32
Ok, wenn das alles zwingend zusammenhängt und beide Projekte den gleichen Stand der Bibliothek verwenden müssen, dann ist das doch ein großes Repo "Projektgruppe".

Falls "Projekt1" und "Projekt2" bereits eigenständige Repos sind, könnte "sharedFiles" zu einem dritten, eigenständigen Repo machen und dann "Projektgruppe" als "Über-Repo" oben drüber anlegen. Das stelle ich mir aber wenig spaßig vor, weil du dann jede Änderung praktisch doppelt versionierst. Bei jeder Änderung in "Projekt1" musst du dann nochmal separat das "Projektgruppe"-Repo aktualisieren. Oder vielleicht ist das gar nicht so schlecht, und du aktualisiert das in "Projektgruppe" nur für Releases.

Vielleicht muss man da auch einfach mal ein bisschen spielen um das passende für den eigenen Geschmack zu finden.

Meiner wäre das denke ich nicht. Ich würde "Projekt1" und "Projekt2" in einem Repo zusammenverwalten und "sharedFiles" als Subrepo dort drinnen halten. Dann benutzen beide immer den gleichen Stand von "sharedFiles".
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#6

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 09:49
Beide Projekten müssen die gleichen sharedFiles nutzen und dürfen auf keinen Fall auseinander laufen.
Das ist eigentlich ein deutliches Kriterium, dass beide Projekte in dasselbe Repo gehören.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: GIT source einer Ebene höher versionieren?

  Alt 6. Mai 2022, 10:38
klar, du kannst erstmal in Beiden das selbe Submodul einbinden, aber niemand schreibt dir vor, dass es der selbe Branch sein muß.

Da könnte man dann entweder jeweils manuel das Submodul updaten (commit+push oder pull) und den Submodul-Link inkl. der GUID des aktuellen Commits im jeweiligen Hauptrepo committen.
Jedesmal, wenn du das Submodul aktualisierst, mußt du um Hauptrepo die neue GUID mit committen.
(das ist im Prinzip das Standadvorgehen, seitens GIT ... bei SVN konnte man das einfacher verlinken, z.B. sagen das der aktuelle Stand zu einem Tag oder was Anderem genommen werden soll ... da nam sich das Hauptrepo automatisch den jeweils aktuellen Stand ... hat Beides Vor- und Nachteile)

Alternativ kannst auch mit Branches je Hauptrepo arbeiten, beim Checkout wäre dann jeweils der letzte/vorherige Stand passend zum Commit-Date der Hauptrepos zugehörig.
So kann es auch mal etwas auseinander laufen, wenn einer der Hauptrepos noch nicht mit dem aktuellen Submodul kompatibel ist.

Bei Branches wäre mit aktuellem Hauptrepo immer der jeweils aktuelle Commit im jeweiligen Branch zugehörig.
Nur beim zurückgehen kann man sich dann überlegen, ob man die committete GUID oder einfach das Commit-Date des Submodules nimmst
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 22:31 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