Ist es möglich, mehrere Repositories kohärent zu verwalten?

8

Ich habe eine Sammlung von Git-Repositories, die unabhängig voneinander versioniert sind, aber miteinander verwandt sind. Wenn ich beispielsweise ein Feature hinzufüge, muss ich möglicherweise Funktionen zu einer gemeinsam genutzten Bibliothek hinzufügen und dann eine Anwendung oder einen Dienst erweitern, um diese Funktionalität zu nutzen.

Zur Zeit müsste ich in jedem der Repositories, die ich während der Arbeit an dieser Funktion berühre, eine Verzweigung erstellen. Was ich jedoch gerne tun würde, ist, den Prozess zu vereinfachen, indem diese multiplen Repositories auf einmal verzweigt und zusammengeführt werden (um die Wahrscheinlichkeit zu verringern, dass die Verzweigung oder das Zusammenführen / Zusammenführen in einem Repository vergessen wird).

Gibt es eine einfache Möglichkeit, mehrere Repositories gleichzeitig zu verzweigen und zusammenzuführen, oder ist dies eine Aufgabe, die sich besser für eine Sammlung von Hilfsskripten eignet? Wenn letzteres vorhanden ist, gibt es irgendwelche Skripte, die das bereits durchführen?

    
Justin ᚅᚔᚈᚄᚒᚔ 03.02.2012, 21:58
quelle

5 Antworten

7

Es gibt keine integrierte Möglichkeit, mit mehreren Repositories gleichzeitig umzugehen, und wenn Sie über die verteilte Natur von git nachdenken, gibt es wirklich nichts anderes als soziale Konvention, die definieren kann Das. (Überlege dir, was passiert, wenn jemand in einem Repository von dir abzieht, aber eine zweite für die Sekunde - kannst du diese Kohärenz haben?)

Vielleicht finden Sie ein Tool wie mr , das gleichzeitig mit mehreren Repositories funktioniert, hilfreich.

Wenn Sie wirklich Dinge haben, die so eng sind, würde ich Ihnen raten, sie in ein Repository zu legen. Auf diese Weise können Sie keine der Schritte vergessen, weil sie in einer atomaren Operation ablaufen.

Wenn Ihr Code jedoch nicht wirklich so eng verbunden ist, dann geben Sie den "muss Zweig zur genau gleichen Zeit" Begriff auf und Sie werden glücklicher sein.

    
Daniel Pittman 03.02.2012, 22:13
quelle
5

Sie können das Repo-Tool verwenden: Ссылка

  • setzt dieselbe Verzweigung für mehrere Projekte
  • zeigt den Status mehrerer Repositorys (Zweige, nicht zusammengeführte Commits) mit einem Befehl an
  • Verwalten Sie eine Reihe von Repositories (Klonen, Synchronisieren usw.) mit Manifestdateien
  • viele andere coole Sachen
Cezary Baginski 05.02.2012 01:18
quelle
3

Sehen Sie sich auch Ссылка an - es ist ein Tool wie Herr und Repo, so wie ich es nicht konnte. t diejenigen, die arbeiten, wie ich brauchte:)

Einige Anmerkungen:

  • es ist in Python gemacht (funktioniert also gut in jedem Betriebssystem, auf dem Python läuft: Linux, Win, Mac ...)

  • Neben dem Ausführen von allgemeinen Git-Operationen für viele Repos auf einmal bietet es auch folgende Workflows:

    • klonen mehrere Repositories
    • öffnet URLs aus Repos (so ist es möglich, Pull Requests für mehrere Repos gleichzeitig zu erstellen).
    • diff ändert sich bei mehreren Repos gleichzeitig mit winmerge oder meld
    • führt Nicht-Git-Befehle aus
Fabio Zadrozny 20.07.2012 19:42
quelle
0

Genau wie eine Idee. Ich habe das selbst nicht versucht, aber ich bin vor einiger Zeit auf dieses Feature gestoßen. Versuchen Sie, alle gewünschten Repositorys als Submodul zu einem neuen "root" Repository hinzuzufügen und verwenden Sie den folgenden Befehl

%Vor%

Sie können hierzu die Hilfe und den Umgang mit Submodulen konsultieren. Sie können den gewünschten Befehl verwenden. Git und Nicht-Git-Befehle.

    
Oliver Groß 25.08.2017 14:21
quelle
0

Das Android-Repo-Tool verwaltet die Erstellung von Feature-Zweigen über mehrere Repositorys hinweg. Der Befehl repo upload kann jedoch nur zur Überprüfung von Gerrit-Code veröffentlichen.

Wenn Sie einen gewöhnlichen Git-Repository-Manager wie GitHub oder GitLab verwenden, funktioniert repo upload nicht; Sie benötigen den nicht vorhandenen Befehl repo push . Ich habe repo push in Wave Fork von Repo implementiert . Wir verwenden es in der Produktion.

    
John McGehee 26.09.2017 21:19
quelle

Tags und Links