2017-02-13 3 views
0

Wir haben mehrere Git-Repositories (eins pro Projekt ..), und wir haben Konfigurationsdateien, die über alle Projekte "synchronisiert" bleiben sollten, sollte aber auch im Git-Repository sein, zum Beispiel - Pipelines Yaml und statische Analysekonfiguration Yaml.Cross Git Repositories Konfigurationsdatei

Was ist der beste Weg, um diese Konfigurationsdateien an einem zentralen Ort zu halten? (z. B. zentrales Git-Repository, symbolische Links zu Remote-Host?)

Vielleicht ist die Verwendung von Bitbucket Webhooks mit unserem eigenen benutzerdefinierten "Agent" die beste Option?

+0

Submodule sind die Antwort. Die Frage ist: Möchten Sie ein Monolith Repo, das die Konfigurationsdateien mit allen Projekten als Submodule verfolgt, oder ein separates Config Repo, das als Submodul in jedes Projekt eingezogen wird? – Pockets

+0

http://StackOverflow.com/a/9733277/2303202 vielleicht können Sie eine Lösung finden mit der Verwendung von Include – max630

+0

@pockets - Untermodule fügt ein Verzeichnis der Struktur, die ein Problem für uns ist. – Rotem

Antwort

1

Setzen Sie Ihre gesamte Konfigurationsdatei in ein Git-Repository und verweisen Sie auf dieses Repository als submodule von den anderen Git-Repositories.

Beachten Sie, dass, wann immer Sie das gemeinsame Repository ändern (gemeinsame Konfigurationsdateien enthalten), haben Sie von jedem der anderen Git-Repositories regelmäßig zu synchronisieren, zB:

>git submodule update --remote 

würde alle aktuellen Änderungen von allen Submodule ziehen des Repository, in dem Sie diesen Befehl starten.

+0

Git Submodul erfordert, dass ich ein Verzeichnis hinzufügen, und die Konfigurationsdateien sollten im Stammverzeichnis sein. Liege ich falsch? Und noch eine Sache ist, dass ich nicht in der Lage sein werde, alle Git-Repos von einem zentralen Ort aus zu pushen (nicht sicher, ob es einen Weg gibt). – Rotem

+0

Sie könnten ein Untermodul in jedem Unterverzeichnis erstellen, zB '> git submodul add ssh: // Benutzer @ host/bla/bla subdir/sub1' Es gibt keine Möglichkeit, Aktualisierungen an Repositories zu senden, jede davon muss aktualisiert werden. –

+0

Cappas - Ich möchte kein anderes Verzeichnis in meinem Wurzelverzeichnis. Das ist ein Problem und Git Submodule sind nur innerhalb von Verzeichnissen verfügbar – Rotem