git sequencer prototype
- From
Stephan Beyer <s-beyer@gmx.net>
- Date
- Jul 26, 2008, 05:20 UTC
- Message-ID
- <1217049644-8874-1-git-send-email-s-beyer@gmx.net>
Hi,
for those who are interested in git-sequencer: here's the latest prototype, that should be able to apply to master.
An outline of the differences to the last sequencer prototype patchset:
- typofixes, minor bugfixes
- simplifications (seen due to builtin-ification)
- introduced --allow-dirty
that is used by the git-am migration, to allow
usage of git-am on dirty index
- set ("keep") ORIG_HEAD; somehow experimentalIn the last patchset I mentioned the issue, that the prototype is slow as hell. I know some bottlenecks, but I have not even tried to change that, because this is no issue for the builtin.
I paste the experiments that I did on my test machine some time ago:
git-am: Apply 100 (trivial) patches
original: 5.1s
prototype-based: 17s (wtf!)
builtin-based: 2.8sgit-rebase--interactive: Pick 100 (trivial) commits
original: 4.8s
prototype-based: 10.1s
builtin-based: 1.7sThose times don't have any methodic value, it's just to get an impression. Nevertheless some information about that: - performance was only tested one or two times - /proc/cpuinfo says my machine is an AMD 64 X2 with 4013 BogoMIPS - /bin/sh is dash (if the propaganda is true, bash is even slower) - the changes of the patches are equivalent to those of the commits
Regards, Stephan
Stephan Beyer (5): Add git-sequencer shell prototype Add git-sequencer documentation Add git-sequencer test suite (t3350) Migrate git-am to use git-sequencer Migrate rebase-i to sequencer
.gitignore | 1 + Documentation/git-sequencer.txt | 676 +++++++++++++ Makefile | 1 + command-list.txt | 1 + git-am.sh | 632 +++++-------- git-rebase--interactive.sh | 436 ++------- git-rebase.sh | 7 +- git-sequencer.sh | 2042 +++++++++++++++++++++++++++++++++++++++ t/t3350-sequencer.sh | 838 ++++++++++++++++ t/t3404-rebase-interactive.sh | 8 +- t/t4150-am.sh | 4 +- 11 files changed, 3889 insertions(+), 757 deletions(-) create mode 100644 Documentation/git-sequencer.txt create mode 100755 git-sequencer.sh create mode 100755 t/t3350-sequencer.sh