2016-04-07 23 views
0

Ich habe ein Projekt (ein phpBB Forum) basierend auf mehreren Repositories, die in GitHub gehostet werden. Ich möchte diesen Code irgendwo hosten, der nicht öffentlich zugänglich ist (wie GitLab).Mix aus GitLab und GitHub Repos

So habe ich diese Umgebung:

  • / < - (privat) Änderungen ich phpBB gemacht (aber auf ihre Veröffentlichungen, nicht ihre aktuellen Code).
  • /styles/mystyle < - (privat) Änderungen ich Artodia's Simplicity theme gemacht
  • /ext/vendor/extension < - mehrere Erweiterungen, von mehreren Personen, die jeweils auf einem eigenen Repo GitHub. Ich habe einige von ihnen modifiziert. Ich habe auch einige gemacht, von denen ich eine private Kopie behalten möchte und einige andere, die ich in GitHub teilen möchte.

Im Moment habe ich ein einziges großes Repository in GitLab. Aber ich kann nicht weitere Commits von den ursprünglichen Autoren dieser Software holen.

Welcher Konfiguration sollte ich folgen? Ich habe etwas über Submodule gelesen. Ist das der Weg, dem ich folgen sollte?

Antwort

0

ich es mit regelmäßigen repos und Submodule wie damit umgehen würde:

Zunächst einmal für alle repos Sie im Vergleich ändern mögen, was ihre Autoren bieten folgende tun: eine Gabel auf GitHub machen, dann Importieren Sie diese Verzweigung in GitLab.

Stellen Sie nach dem Import den Upstream zum GitHub Repo des ursprünglichen Autors ein (für den phpBB beispielsweise wäre es git remote add upstream https://github.com/phpbb/phpbb). Dadurch können Sie Änderungen aus dem ursprünglichen Repository abrufen, obwohl Sie es privat in GitLab hosten (siehe Keep your fork synced). Der einzige Vorbehalt besteht darin, alle Änderungen in einem separaten Zweig abzulegen, beginnend mit ihrer Veröffentlichung.

OK, jetzt sollten Sie in GitLab alle Repositories haben, zu denen Sie benutzerdefinierte Änderungen vornehmen möchten (phpBB, das Thema und die Erweiterungen, die Sie nicht teilen möchten).

Schritt 2 wäre auf Ihrem Rechner klonen die phpBB einer von Gitlab (/), dann das Thema hinzufügen und jede Erweiterung, die Sie als Modul wollen (siehe here wie ein Submodul auf einen bestimmten Pfad hinzuzufügen und here, wie man Legen Sie fest, auf welches Commit es zeigen soll.

Jetzt sollten Sie Ihre vollständige Struktur haben, nur mit Code gehostet auf privaten GitLab Repos. Wenn Sie also Ihr Theme aktualisieren möchten, aktualisieren Sie das Theme Repo in GitLab und drücken Sie auf Ihren benutzerdefinierten Zweig. Wenn das Thema zum Beispiel vom Autor aktualisiert wurde, wechseln Sie zum Master-Zweig, ziehen Änderungen aus dem Upstream, erstellen dann einen neuen Zweig auf dem Master und aktualisieren am Ende das Submodul im Haupt-Repo (phpBB).

+0

Vielen Dank! Ich werde es versuchen! :) – nerestaren