Re: Our cumbersome mailing list workflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Michael Haggerty" <mhagger@xxxxxxxxxxxx>
Sent: Tuesday, November 25, 2014 12:28 AM
On 11/21/2014 07:00 PM, Junio C Hamano wrote:
Michael Haggerty <mhagger@xxxxxxxxxxxx> writes:

I don't think that those iterations changed anything substantial that overlaps with my version, but TBH it's such a pain in the ass working
with patches in email that I don't think I'll go to the effort of
checking for sure unless somebody shows interest in actually using my
version.

Sorry for being grumpy today :-(
[..]
Let me list the aspects of our mailing list workflow that I find
cumbersome as a contributor and reviewer:

* Submitting patches to the mailing list is an ordeal of configuring
format-patch and send-email and getting everything just right, using
instructions that depend on the local environment. We saw that hardly
any GSoC applicants were able to get it right on their first attempt.
Submitting a patch series should be as simple as "git push".

* Once patches are submitted, there is no assurance that you (Junio)
will apply them to your tree at the same point that the submitter
developed and tested them.

* The branch name that you choose for a patch series is not easily
derivable from the patches as they appeared in the mailing list. Trying to figure out whether/where the patches exist in your tree is a largely manual task. The reverse mapping, from in-tree commit to the email where
it was proposed, is even more difficult to infer.

* Your tree has no indication of which version of a patch series (v1,
v2, etc) is currently applied.

The previous three points combine to make it awkward to get patches into my local repository to review or test. There are two alternatives, both
cumbersome and imprecise:

 * I do "git fetch gitster", then try to figure out whether the branch
I'm interested in is present, what its name is, and whether the version
in your tree is the latest version, then "git checkout xy/foobar".


I had a thought about the issue of version labeling and of keeping the old patch series hanging about during development that I felt was worth recording.

My thought was that while the cover letter and series version number are currently stripped out from the start of the series, they could be added back as a supplemental commit at the end of the series (an --allow-empty commit). This could contain all of the patch subject lines and their post '---' notes as appropriate.

Thus the series branch would appear to have an extra commit (compared to the current process) after the original tip's possible merge into say pu.

When subsequent series are sent to the list, the new supplemental commit would be a 'merge', with its second parent being the old series, thus the old series is not lost until the branch is deleted, and the existing merge pattern is retained.

Clearly if this would need some additional coding as it's not suitable as a manual process, but it could be just as automatic as the current process while providing that little bit of additional visibility.

Below, I've tried to set out how the commit graph might look (oldest to the left). Hopefully my MUA won't ruin it. The first patch series branches at A, and is merged at D, with the supplemental commit labeled with v1z.

When the new series arrives, and pu is rewound, we have the new series applied from G (which in reality may not be linked directly from A), and merged back at K. However the new v2z supplemental commit is now the po/patches
branch head, and is also a merge back to v1z.

patch series 1 (cover letter z)
- A - B - C - D - E - F   <- pu
  \        /
   v1a-v1b--v1z     <-po/patches

patch series 2
- A - G - H - I - J - K     <- pu (note re-wound)
 |        \         /            (merge D lost)
  \       v2a-v2b-v2c--v2z    <-po/patches
   \                  /
   v1a-v1b--v1z - - -.

The key idea here is to use the existing branching model, but then to add the cover letter and other details at the end, rather than the beginning as might have been expected from the email transmit sequence.

Philip

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]