git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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 experimental

In 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.8s
git-rebase--interactive: Pick 100 (trivial) commits
        original: 4.8s
 prototype-based: 10.1s
   builtin-based: 1.7s
Those 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
Next: Stephan Beyer
Message 1 of 20 in “git sequencer prototype”
  1. Stephan BeyerJul 26, 2008
  2. 1/5 Add git-sequencer shell prototypeStephan Beyer, Jul 26, 2008
  3. 2/5 Add git-sequencer documentationStephan Beyer, Jul 26, 2008
  4. 3/5 Add git-sequencer test suite (t3350)Stephan Beyer, Jul 26, 2008
  5. 4/5 Migrate git-am to use git-sequencerStephan Beyer, Jul 26, 2008
  6. 5/5 Migrate rebase-i to sequencerStephan Beyer, Jul 26, 2008
  7. Johannes SchindelinJul 26, 2008
  8. Stephan BeyerJul 30, 2008
  9. Jakub NarebskiJul 26, 2008
  10. Sverre RabbelierJul 26, 2008
  11. Johannes SchindelinJul 26, 2008
  12. Stephan BeyerJul 30, 2008
  13. Johannes SchindelinJul 30, 2008
  14. Daniel BarkalowJul 30, 2008
  15. Stephan BeyerJul 31, 2008
  16. Johannes SchindelinJul 26, 2008
  17. Sverre RabbelierJul 26, 2008
  18. Stephan BeyerJul 30, 2008
  19. Johannes SchindelinJul 30, 2008
  20. Stephan BeyerJul 31, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.