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

Re: Develop a patch series with git?

From
Jeff King <peff@peff.net>
Date
Feb 11, 2020, 20:00 UTC
Message-ID
<20200211200044.GG2127797@coredump.intra.peff.net>
In-Reply-To
<trinity-f39d7ed5-e4c9-45fe-944c-b5cb101cfdcd-1581412940557@3c-app-gmx-bap62>
On Tue, Feb 11, 2020 at 10:22:20AM +0100, Steve Keller wrote:
Show 16 quoted lines
> I wonder how git supports developing a series of small patches.  In my
> usual development I go back and forth along a series of patches before
> I can commit them all.  I use quilt for that.
> 
> Say I want to add feature FOO and start a patch "FOO" editing some
> source file.  In the process of doing so I realize that I need an
> extension of some function to base my patch on, so I do "quilt pop" to
> undo patch FOO and insert a new patch BAR and then re-apply FOO by
> calling quilt push.  No I can use the new extension from BAR in my
> current patch FOO.  The patch series often contains quite a number of
> patches and I push, pop, and edit these patches quite often.  Only
> when everything is done I use git commit all the patches into the
> repository.
> 
> My question is whether there is git functionality to replace quilt.
> Or is the combination of quilt and git common?

Another responder mentioned "rebase -i", which is the most direct equivalent. But on a smaller scale, also look at "git add -p", which lets you selectively stage hunks for commit.

So quite often my flow is something like:
  1. Messy writing and refactoring, while I get a handle on what my
     changes are going to be.
  2. "git add -p" to pull out some hunks related to refactoring, then
     "git commit" to give it a rough commit message.
  3. Repeat step 2 (with maybe some more step 1 in between) as necessary
     until you have a sequence of rough patches.
  4. Revisit each patch individually with "rebase -i", possibly
     re-ordering, fixing bugs, fleshing out commit messages, etc.
     Another useful tool here is:
       git rebase -x "make test"
     which makes sure that the intermediate steps are all correct.
-Peff
Previous: Shourya ShuklaNext: Johannes Schindelin
Message 3 of 4 in “Develop a patch series with git?”
  1. Steve KellerFeb 11, 2020
  2. Shourya ShuklaFeb 11, 2020
  3. Jeff KingFeb 11, 2020
  4. Johannes SchindelinFeb 12, 2020

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.