Verwendung von Git



  • Hallo zusammen,

    das Thema hat zwar nicht direkt etwas mit c++ Builder zu tuen, ich hoffe aber das mich der Moderator trotzdem hier fragen lässt 😉

    Hier sind doch bestimmt einige die sich mit git auskennen. Ich versuche mich gerade darin etwas ein zu arbeiten und stehe gerade vor einem Problem, wofür ich im Netz einfach keine Lösung finde.

    Ich hab ein Package im C++ Bilder erstellt, das ich in mehreren Projekten verwende.

    Aus diesem Grund habe ich so einen Verzeichnisaufbau:
    -Hauptverzeichnis
    --Package
    --Projekt1
    --Projekt2

    In git würde ich jetzt für Projekt1 und Projekt2 ein Repository anlegen.

    Was mache ich aber mit meinem Package? Grundsätzlich würde ich dafür auch ein Repository anlegen. Wie kann ich das Jeweilige Projekt mit dem Package Verbinden? Bei einem Branch sollte der Stand vom Package und des Jeweiligen Projekts hinterlegt werden.

    Submdule und Subtree gehen jeweils davon aus das Package sich im Unterverzeichnis vom Projekt befindet. Zumindestens habe ich das immer so verstanden.

    Hat jemand eine Idee ob die so eine Struktur in git abbilden kann?



  • Hallo

    Also ja das hat nichts mit VCL zu tun, ich verwende den nicht.

    Für dein Problem gibt es mehrere Lösungen.

    Zum einen, ja submodule müssen unterhalb eines Git Projektes, daher könntest du die Packages auchmeinfach unter deine Projekte als submodule einlagern, das Repo dazu hast du am "Server" nur einmal.

    Oder du machst dir ein Haupt-Repo, bei denen du die Projekte als submodule einträgst. Das Package kannst dann noch entscheiden, ob es auch ein submodule, wird oder du es direkt ins Repo legst.

    Komplett andere Frage, warum machst du überhaupt für jedes Prjekt ein eigenes Git? Bei mir schaut das etwa so aus, das die Prjekte zusammen gehören, dann würde ich die auch ins selbe Git-Repo legen.

    MFG Marco



  • Hallo,

    Danke für die Antwort.

    Wenn ich alles in einem Repo habe, werden doch auch bei jedem Branch alle Projekte verwendet. Das könnte mit der Zeit etwas unübersichtlich werden. Zudem haben die Projekte ja nichts miteinander zu tuen.

    Hab bisher mit SVN gearbeitet, da bin ich auch so vorgegangen alles in einem Repo.

    Ich denke ich muss irgendwie versuchen das Package ins Unterverzeichnis zu legen und als Submodul zu betrachten. Wäre für mich nur eine komplett andere Arbeitsweise da ich dann nicht mehr so einfach an mehreren Projekten gleichzeitig arbeiten kann(klingt komisch kommt bei mir aber häufiger vor).

    Wenn ich am Package für Projekt1 etwas ändere, muss ich ja das erst mal puschen und das Projekt2 aktualisieren, damit ich die Änderung am Projekt2 verwenden kann. So hab ich das zu mindestens bisher verstanden.



  • Hallo

    Also wenn der Package Ordner ein Allgemeiner LIB Ordner ist, den du für mehrer Prjekte hast, dann würd ich dir raten, lass einfach alles in einem eigene Repo und schreib eine Doku dazu wie man es auf der Platte auszuhecken hat, um damit arbeiten zu können. Find ich nicht mit am einfachsten. Oder wie gesagt ein allgemeines Repo oben drüber, dann ist schonmal die Struktur vorgegeben.

    Und ja bei submodulen, bekommst du beim auschecken des überlagerten Repo immer die Version, die aktuell war als der letzte checken auf dem hauptrepo war. Also bei Aktualisierungen musst du erst das submodule Pullen, und danach einen Committee auf dem HauptRepo,durchführen, das der nächste ich die aktuellste Version vom Repo hat.

    Wobei ich dabei aber sagen muss, wieso solltest du das tun, eigentlich ja nur, wenn die neu Funktionalität der neue Version zu Entwickeln benötigst.

    Am einfachsten wäre es wenn du das Package aufteilen kannst und jedem Projekt nur noch die mit gibst die es benötigt und das dann direkt ins Repo mit rein legst.

    Grus Marco


Anmelden zum Antworten