Ich möchte Module, die mit einer größeren Anwendung verteilt sind, in separate Submodule aufteilen und die Fähigkeit beibehalten, von Upstream zu ziehen. Dies ist komplexer als Detach subdirectory into separate Git repository. Ich habe nicht nur den git-filter-branch einmal benutzt, sondern möchte auch die Möglichkeit behalten, Upstream-Änderungen zu ziehen, nachdem ich das getan habe (und upstream nicht).Wiederholte Verwendung von git-filter-branch zum Neuschreiben neuer Commits
Einfach nochmal gunn-filter-branch über den gesamten Verlauf von upstream laufen lassen, inklusive neuer Commits, die nicht in meiner neu geschriebenen History gefunden wurden, ist keine Option, da es Hunderte von Modulen gibt, für die ich dies tun muss fast 100.000 erreichen.
Ich vermute, dies beinhaltet die Begrenzung der Geschichte auf nur die neuen Commits, neu zu schreiben und dann nach den zuvor neu geschriebenen Commits, aber ich bin mir nicht sicher, wie dies zu tun - und vielleicht gibt es einen besseren Ansatz.
Es wäre schön, wenn Zweige und Tags auch beibehalten werden könnten, aber das ist nicht absolut notwendig und wenn es Dinge kompliziert, würde ich eigentlich lieber diese verlieren.
ich auch darüber wissen möchten. Jedes Mal, wenn ich ein Abhängigkeits-Repo abrufe, muss ich den Filter-Zweig erneut ausführen, um die Aktualisierungen in mein Projekt einzufügen (ich möchte den gesamten Repo nicht zusammenführen). –
Ich war überrascht, dass niemand auf eine Antwort kam, immerhin saum es wie eine interessante Herausforderung. Nun, ich habe selbst etwas zusammengehackt, aber vergessen es hier zu posten. Ihr Interesse hat mich daran erinnert - unten ist meine Lösung. – tarsius
Haben Sie schon mal [* git subtree *] (http://github.com/apenwarr/git-subtree/blob/master/git-subtree.txt) angeschaut? Es kann einen Teilbaum in einen neuen Zweig aufteilen und mit der Option '--rejoin' inkrementell machen. –