Hi, I've written a tool to stitch the first-parent histories of several git repositories. To illustrate, consider that we have a toplevel git repository inside which the other repositories reside. /.git /a/.git /b/.git The tool pulls in the objects from /a/.git and /b/.git into /.git by using alternates. Then, it gets the list of commits by rev-list'ing and emits a fast-import stream rewriting the paths of the files in a/ from / to a/ and the paths of files in b/ form / to b/ (using M 040000), taking care to have one unified first-parent line. It turns out that this is quite non-trivial when the individual git repositories contain lots of merges. To illustrate, this is an example of how histories from two repositories with one merge commit each would be stitched: * c1f81f1 (refs/figlets/first/origin/master) |\ | * 6eaf22f (refs/figlets/first-2/origin/master) * 15cd841 * 1f2f408 (refs/figlets/second/origin/master) |\ | * 4bd7fe3 (refs/figlets/second-2/origin/master) * bfa9f3c * 5e1d337 (refs/replay/stitch2, fig/stitch2) |\ | * 23437d5 (refs/replay/1f2f40-2) |/ * 4f2d70b |\ | * e017fa5 (refs/replay/c1f81f-2) * c0251c7 * 4036fea I'd like to know whether the tool would be useful to a wider audience, before I polish it and consider submitting it for inclusion in contrib/. I think the tool is especially useful for running bisect and tracking bugs that occur in large projects that consist of many git repositories. Will a unified log showing commits in different submodules be useful? Ram -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html