Subject: recommendation for patch maintenance

From: Manlio Perillo <[email-masked]>
Date: Fri, 21 Dec 2012 15:45:03 +0100

Hi.

I would like to have advices about some possible workflows to use when
maintaining a patch, that can evolve over the time (fixing bugs, and
applying advices from reviewers).

In my case I have a single commit to maintain.

The workflow I use now is this:

  1) create a topic branch, e.g. mp/complete-path
  2) write code
  3) commit
  4) format-patch --output=mp/complete-patch master
  5) review the patch
  6) send-email

when I need to update the patch:

  1) modify code
  2) commit --amend
  3) format-patch --subject-prefix="PATCH v<n>" \
     --output=mp/complete-patch master
  4) edit patch to add a list of what was changed
  5) review the patch
  6) send-email

This is far from ideal, since all my local changes are lost.
Another problem is that when I found some trivial error in 5), I need to
call format-patch again, loosing the "what's changed list".

A possible solution is to:

1) create a "public" topic branch, e.g. mp/complete-patch
2) create the associated "private" topic branch, e.g.
   mp/complete-patch/private
...

Changes are committed to the private branch.
When I need to update the patch:

  1) update code
  2) commit new changes; the commit message will contain the
     "what's changed" list to be used for the new version of the patch
  3) checkout <public branch>
  4) merge --squash <private branch>

Now I have my full history, and the "what's changed list" is saved in
the private commits.

(not tested)

What is the workflow you usually use?

Thanks   Manlio