Zum Inhalt springen

Frage zu GIT, MVVM und separaten Entwicklungszweigen


micha9412

Empfohlene Beiträge

Hallo Leute,

ich bin Fachinformatiker im zweiten Ausbildungsjahr und darf mich jetzt mit GIT beschäftigen.

Ich habe diverse Online-Bücher gelesen und auch viel probiert. Die groben Züge habe ich verstanden (denke ich).

Zu einer Frage habe ich keine Antwort gefunden, vielleicht könnt Ihr mir bei der Beantwortung helfen.

Bei uns in der Software sind alle Views strikt von der Businesslogik getrennt (MVVM). Pro Kunde sollen verschiedene Views verändert und ausgetauscht werden (der eine Kunde möchte die Maske so, der nächste wieder anders..). Die Businesslogik bleibt in der Regel gleich. D. h. vom ganzen Projekt verändern sich nur wenige Dateien.

Wie bildet man sowas in GIT ab? Man erstellt seinen separaten Branch für Kunde X und verändert in diesem die entsprechenden Views? Wie stelle ich sicher, dass der Rest des Codes immer = master ist?

Vielen Dank :)

Micha

PS: Bitte entschuldigt meine evtl. falsche Wahl des Forums. Ich wusste nicht, in welches ich es sonst posten sollte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie bildet man sowas in GIT ab? Man erstellt seinen separaten Branch für Kunde X und verändert in diesem die entsprechenden Views? Wie stelle ich sicher, dass der Rest des Codes immer = master ist?

Branches sind für die Entwicklung von parallel laufenden Strukturen gedacht, d.h. in diesem Fall ist das eigentlich nicht das richtige. Man würde hier das Projekt trennen, d.h. ein Git Repository mit den Code, der für alle Kunden gleich ist und pro Kunde ein weiteres Repository, in dem die kundenspezifischen Anpassungen gemacht werden. Um nun immer korrekt kompilieren zu können, bindet man in das Kundenrepository, das Hauptrepository als Git Submodul ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Flashpixx,

danke für Deine Antwort. Mit Submodulen hatte ich mich bisher noch gar nicht auseinandergesetzt.

D. h. die Struktur sähe dann so aus:

Respositories:

master

kunde1 -> submodul master

kunde2 -> submodul master

kunde3 -> submodul master

Wenn ich beispielsweise die Änderungen an kunde1 machen will würde ich dann wie folgt vorgehen:

- kunde1 auf meinen Rechner klonen

- änderungen an kunde1 durchführen und committen

Wie geht es dann weiter? Müsste ich das master nochmal pullen um die aktuelle Version zu erhalten? Wie führe ich kunde1 und master zusammen und verhindere dabei dass die Standardviews (aus dem master) die speziellen Views des Kunden (kunde1) überschreiben?

Danke und Gruß

Micha

Link zu diesem Kommentar
Auf anderen Seiten teilen

Respositories:

master

kunde1 -> submodul master

kunde2 -> submodul master

kunde3 -> submodul master

genau

Wenn ich beispielsweise die Änderungen an kunde1 machen will würde ich dann wie folgt vorgehen:

- kunde1 auf meinen Rechner klonen

- änderungen an kunde1 durchführen und committen

genau, wobei Du eben beim clone mittels "--recursive" auch das master Repository automatisch mit clonen musst.

Wie geht es dann weiter? Müsste ich das master nochmal pullen um die aktuelle Version zu erhalten?

Nein das musst Du nicht machen. Schau Dir die Submodule genau an, ein Submodul verweist immer _genau auf einen_ Commit in Deinem master. Um den Master in einem Submodul auf den aktuellen Stand zu bringen, musst Du dem Submodul dies explizit mitteilen. Mein Tipp dazu einfach mal ein kleines Bsp selbst bauen

Wie führe ich kunde1 und master zusammen und verhindere dabei dass die Standardviews (aus dem master) die speziellen Views des Kunden (kunde1) überschreiben?

Das hat nichts mit Git zu tun, sondern mit der Organisation Deines Projektes. Im Normalfall hat man alle Module des Projektes in einzelnen Repos liegen und zieht dann das Gesamtsystem mittels Submodulen zusammen, d.h. Deine Views sind ein eigenes Modul. In Deinem Kundenrepo clonst Du dann nicht das "generische Viewmodul", sondern ersetzt das Submodul einfach durch ein Verzeichnis in dem Kundenrepo.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...