git submodule, gitslave, git subtree oder eine einfachere Lösung

8

Wir haben ein Git-Repository mit N Ordnern.

%Vor%

Mit verschiedenen Mitarbeitern möchten wir verschiedene Ordner teilen. Jeder Mitarbeiter sollte nur Zugriff auf seine erlaubte Teilmenge von Ordnern haben. Was ist der "gute" Weg, dies mit git zu erreichen?

Eine Antwort war, git submodules zu verwenden. Aber nachdem ich diesen Artikel gelesen habe: Ссылка Ich habe verstanden, dass Sie eine gute Beherrschung von Git haben müssen (was bei unseren Mitarbeitern nicht der Fall ist), um Probleme bei der Verwendung von git submodules zu vermeiden.

Ich habe über mögliche Alternativen wie gitslave und git subtree gelesen. gitslave schien eine gute Lösung zu sein, aber meiner Meinung nach immer noch eine komplexe Lösung.

Hier ist meine einfache Lösung und ich würde gerne wissen, ob sie einige sehr schlechte Nachteile haben kann:

- Ein einfaches Repository für jeden Ordner und ein Repository für Repo. Dann fügen Sie alle Dateien in Folder1, ..., FolderN im Haupt-Repo hinzu.

-globalpush-Skript:

%Vor%

-globalpull-Skript:

%Vor%

Die Vorteile dieser Lösung sind:

1 - Einfache Lösung, die jeder verstehen kann.

2 - Möglichkeit, die Zugriffsrechte für jeden Ordner unabhängig zu vergeben.

3 - Für die Hauptentwickler (die Zugriff auf Repo haben) ist das Repository Repo eigenständig und enthält den gesamten Verlauf (falls etwas mit den Repositories von Folder1, ..., FolderN nicht stimmt).

4 - Wenn ein Hauptentwickler ein Commit mit einer gegebenen Beschreibung vornimmt, wird ein Commit mit derselben Beschreibung für alle Ordner-Repositories erstellt, auch für solche ohne eine Änderung (--allow-empty), was natürlich nicht stimmt. t perfekt, hilft aber, Versionen zu verfolgen, die von den Hauptentwicklern eingereicht wurden.

BEARBEITEN:

Es scheint einen neuen Befehl zu geben, den ich nicht kannte git subrepo ...

    
Issam T. 28.06.2016, 08:11
quelle

1 Antwort

3

git-subtree war die gewinnende Lösung und tatsächlich macht es das, was ich mit meinen Skripten gemacht habe und vieles mehr, auf eine bessere "git-native" Weise.

Hier ist ein Link zu dem Tutorial, das wir zum Einrichten unserer Umgebung verwendet haben.

Ссылка

    
Issam T. 28.06.2016, 08:54
quelle