Fügen Sie das Repository des Dienstprogramms in das Hauptprojekt -Repository ein und ermöglichen Sie die Anpassung

StackOverflow https://stackoverflow.com/questions/9310675

Frage

Ich arbeite an einigen Projekten an der Verbesserung der Source Code -Redundanz und stehe mit einem Problem konfrontiert.

Nehmen wir an, ich habe einige Dienstprogramme, die ich Acros mehr Projekte benutze. Beispiel: Erstellen Sie Skripte und testen Sie Skripte, die generisch genug sind, um bei allen Projekten verwendet zu werden, aber auch einige Konfigurationsdateien verfügen, die für jedes Projekt angepasst werden können.

Ich möchte die Build-Script-Logik an einem Ort beibehalten (Fixierfehler und Verbesserungen hinzuzufügen) und die Änderungen in allen Projekten, die sie verwenden, einfach, aber auch ohne die Konfigurationsdateien zu brechen.

Ich weiß, dass ich dies nicht mit Git -Submodules tun kann, da die Konfigurationsdatei anstelle des Projekts eins für das Versorgungsrepository verpflichtet werden muss.

Ich habe auch hinübergeschaut Git-Subtree, aber ich bin mir nicht sicher, ob es das tut, was ich will.

Hat sich schon jemand darauf eingelassen?

War es hilfreich?

Lösung

Ich weiß, dass ich dies nicht mit Git -Submodules tun kann, da die Konfigurationsdatei anstelle des Projekts eins für das Versorgungsrepository verpflichtet werden muss.

Sie könnten tatsächlich Submodules verwenden, wenn jedes Ihrer Projekte ein Git -Repository für sich genommen wäre.
Anschließend verweist jedes Projekt (übergeordnetes Repository) auf ein bestimmtes Commit für eine bestimmte Zweigstelle des Versorgungsrepositorys, wobei jeder Zweig mit den für jedes Projekt zugeschnittenen Versorgungsunternehmen zugeschnitten ist.

Für festverlinkende Dateien (Dienstprogramme auf der einen Seite, die eine andere projiziert), ist es am besten, alles in einem Repository zu behalten und a zu verwenden Inhaltsfiltertreiber:

content filter driver

Du würdest haben:

  • Die generischen Dienstprogramme als Vorlage (dh ohne ihre Werte)
  • Wertdateien (eine für jedes Projekt)
  • ein versioniertes Skript in der Lage, auf dem Kauf des ''smudge'Skript, um die endgültigen Dienstprogramme in jedem Projekt zu generieren (vorausgesetzt, Ihr Skript kann dazu in der Lage sein Erkennen Sie den Inhalt der Vorlagen -Dienstprogramme).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top