From: Christian Couder <email@example.com> To: Rohit Ashiwal <firstname.lastname@example.org> Cc: Elijah Newren <email@example.com>, Johannes Schindelin <Johannes.Schindelin@gmx.de>, Alban Gruin <firstname.lastname@example.org>, Ramkumar Ramachandra <email@example.com>, git <firstname.lastname@example.org>, email@example.com, Stephan Beyer <firstname.lastname@example.org>, Thomas Gummerer <email@example.com> Subject: Re: [GSoC][RFC v3] Proposal: Improve consistency of sequencer commands Date: Sun, 7 Apr 2019 09:15:30 +0200 Message-ID: <CAP8UFD12GXV80SVi5UR=mpBox9DFWw0Fp2wrf+1FEXbUdX1ReA@mail.gmail.com> (raw) In-Reply-To: <firstname.lastname@example.org> Hi Rohit, On Fri, Apr 5, 2019 at 11:32 PM Rohit Ashiwal <email@example.com> wrote: > > Here is one more iteration of my draft proposal. RFC. Nice, thanks for iterating on this! As we are close to the deadline (April 9th) for proposal submissions, I think it's a good idea to already upload your draft proposal on the GSoC site. I think you will be able to upload newer versions until the deadline, but uploading soon avoid possible last minute issues and mistakes. In the version you upload, please add one or more links to the discussion of your proposal on the mailing list. > ### List of Contributions at Git: > > Repo |Status |Title > ----------------------------------|----------------------------|----------------------------------------------------------------------- > [git/git] | [Will merge in master] | [Micro]**:** Use helper functions in test script > [git-for-windows/git] | Merged and released | [#2077]**:** [FIX] git-archive error, gzip -cn : command not found. > [git-for-windows/build-extra] | Merged and released | [#235]**:** installer: Fix version of installer and installed file. Nice! > #### Overview > > Since when it was created in 2005, the `git rebase` command has been > implemented using shell scripts that are calling other git commands. Commands > like `git format-patch` to create a patch series for some commits, and then > `git am` to apply the patch series on top of a different commit in case of > regular rebase and the interactive rebase calls `git cherry-pick` repeatedly > for the same. > > Neither of these approaches has been very efficient though, and the main reason > behind that is that repeatedly calling a git command has a significant > overhead. Even the regular git rebase would do that as `git am` had been > implemented by launching `git apply` on each of the patches. > > The overhead is especially big on Windows where creating a new process is quite > slow, but even on other Operating Systems it requires setting up everything > from scratch, then reading the index from disk, and then, after performing some > changes, writing the index back to the disk. > > Stephan Beyer \<firstname.lastname@example.org> tried to introduce git-sequencer as his GSoC > 2008 [project] which executed a sequence of git instructions to \<HEAD> or > \<branch> and the sequence was given by a \<file> or through `stdin`. The > git-sequencer wants to become the common backend for git-am, git-rebase and > other git commands, so as to improve performance, since then it eliminated the > need to spawn a new process. > > Unfortunately, most of the code did not get merged during the SoC period but he > continued his contributions to the project along with Christian Couder > \<email@example.com> and then mentor Daniel Barkalow > \<firstname.lastname@example.org>. > > The project was continued by Ramkumar Ramachandra \<email@example.com> in > , extending its domain to git-cherry-pick. The sequencer code got > merged and it was now possible to "continue" and "abort" when cherry-picking or > reverting many commits. > > A patch series by Christian Couder \<firstname.lastname@example.org> was merged in >  to the `master` branch that makes `git am` call `git apply`’s > internal functions without spawning the latter as a separate process. So the > regular rebase will be significantly faster especially on Windows and for big > repositories in the next Git feature release. It looks like you copy pasted the Git Rev News article without updating the content. The improvement has been released a long time ago. > Despite the success (of GSoC '11), Dscho had to improve a lot of things to make > it possible to reuse the sequencer in the interactive rebases making it faster. Maybe s/rebases/rebase/ > His work can be found [here]. It seems to me that there has been more recent work than this and also perhaps interesting suggestions and discussions about possible sequencer related improvements on the mailing list. > The learnings from all those works will serve as a huge headstart this year for > me. > > As of now, there are still some inconsistencies among these commands, e.g., > there is no `--skip` flag in `git-cherry-pick` while one exists for > `git-rebase`. This project aims to remove inconsistencies in how the command > line options are handled.
next prev parent reply other threads:[~2019-04-07 7:16 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-24 10:05 [GSoC] Introduction Rohit Ashiwal 2019-02-24 14:47 ` Johannes Schindelin 2019-02-25 6:50 ` Christian Couder 2019-02-25 11:35 ` Rohit Ashiwal 2019-02-25 20:21 ` Christian Couder 2019-02-25 21:09 ` Eric Sunshine 2019-03-22 15:11 ` [GSoC][RFC] Proposal: Improve consistency of sequencer commands Rohit Ashiwal 2019-03-23 22:17 ` Christian Couder 2019-03-24 1:21 ` Rohit Ashiwal 2019-03-24 1:07 ` Elijah Newren 2019-03-24 1:45 ` Rohit Ashiwal 2019-03-29 22:32 ` [GSoC][RFC v2] " Rohit Ashiwal 2019-03-29 23:25 ` Elijah Newren 2019-03-29 23:34 ` Rohit Ashiwal 2019-03-30 0:38 ` Elijah Newren 2019-03-30 8:48 ` Rohit Ashiwal 2019-03-30 17:13 ` Elijah Newren 2019-03-30 7:16 ` Christian Couder 2019-03-30 17:12 ` Elijah Newren 2019-04-05 21:31 ` [GSoC][RFC v3] Proposal: " Rohit Ashiwal 2019-04-07 7:15 ` Christian Couder [this message] 2019-04-07 12:16 ` Rohit Ashiwal 2019-04-07 23:07 ` Christian Couder
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAP8UFD12GXV80SVi5UR=mpBox9DFWw0Fp2wrf+1FEXbUdX1ReA@mail.gmail.com' \ --email@example.com \ --cc=Johannes.Schindelin@gmx.de \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
firstname.lastname@example.org list mirror (unofficial, one of many) This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 git git/ https://public-inbox.org/git \ email@example.com public-inbox-index git Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.io/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/mirrors/git.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git