Here's the git-apply call you asked for. You were right: it was a huge speed-up. I set up a benchmark to test it: * 32 directories, each containing 32 subdirectories, each containing 32 small (and different) files. * A series of 250 patches that each add a line to one of the files. * An "upstream" that adds a line first in every file. * I set all this up with a python script feeding fast-import. A huge time-saver! * Pop patches, git-reset to upstream, then goto top patch. This makes sure that we use the new infrastructure to push, and that we get one file-level conflict in each patch. Before the first patch, the "goto" command took 4:27 minutes, wall-clock time. After the first patch, it took 1:31. After the second, 0:48; one second or so slower than the stable branch (which does not have a patch stack log). Available in kha/experimental. --- Karl Hasselström (2): Reuse the same temp index in a transaction Do simple in-index merge with diff+apply instead of read-tree stgit/lib/git.py | 52 +++++++++++++++++++++++++++++++--------------- stgit/lib/transaction.py | 12 ++++++++++- 2 files changed, 46 insertions(+), 18 deletions(-) -- Karl Hasselström, kha@xxxxxxxxxxx www.treskal.com/kalle -- 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