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

RE: [PATCH v1 2/3] sub-process: refactor the filter process code into a reusable module

From
Ben Peart <ben.peart@microsoft.com>
Date
Mar 27, 2017, 22:04 UTC
Message-ID
<BL2PR03MB3237E6E03677DAFB22F58FEF4330@BL2PR03MB323.namprd03.prod.outlook.com>
In-Reply-To
<xmqqd1d68ukr.fsf@gitster.mtv.corp.google.com>
Show 27 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> 
> To avoid confusion (although readers may not require), even though I
> explained "boring mechanical part" first and "refactoring", that was purely
> for explanation.
> 
> In practice, I would expect that it would be easier to both do and review if
> refactoring is done with the original name.
> 
> A function that will keep its name in the final result (e.g.
> start_multi_file_filter()) will call a new and more generic helper function.  The
> new helper may start using the new name from the get-go (e.g.
> subprocess_start()), but the data types it shares with the original part of the
> code (e.g. 'struct cmd2process') may still be using the original name.
> 
> And after completing "2 or more" refactoring would be a good place to do
> the remaining "boring mechanical rename".  IOW, the count above could be
> 
>      2 or more (refactoring) +
>      1 (boring mechanical part) +
>      1 (final movement)
> 
> and I didn't mean to say that you need to rename first.  What we want is "if
> you need to have a single large patch that cannot be split, see if you can
> make it purely mechanical.", as a single large patch that is _not_ mechanical
> conversion is the worst kind of patch for reviewers.
Thanks, I think I better understand what you are looking for in a patch series.  In short, any non trivial refactoring should take place within the same file using 1 or more patches to keep each patch as simple as possible.  Any large or cross file refactoring should be made as boring/mechanical as possible. This is to make it easier to see any complex changes within a single format patch section and avoid having to look between two file patches to ensure the refactoring didn't unintentionally change behavior.
I'll throw out my current refactoring and do it again attempting to follow these guidelines as soon as I can find the time ($DAYJOB tends to take priority over my open source work).
Previous: Junio C HamanoNext: Duy Nguyen
Message 11 of 12 in “Add support for downloading blobs on demand”
  1. 0/3 Add support for downloading blobs on demandBen Peart, Mar 22, 2017
  2. 1/3 pkt-line: add packet_write_list_gently()Ben Peart, Mar 22, 2017
  3. Junio C HamanoMar 22, 2017
  4. Ben PeartMar 24, 2017
  5. 3/3 convert: use new sub-process module for filter processesBen Peart, Mar 22, 2017
  6. 2/3 sub-process: refactor the filter process code into a reusable moduleBen Peart, Mar 22, 2017
  7. Junio C HamanoMar 23, 2017
  8. Ben PeartMar 24, 2017
  9. Junio C HamanoMar 24, 2017
  10. Junio C HamanoMar 24, 2017
  11. Ben PeartMar 27, 2017
  12. Duy NguyenMar 25, 2017

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.