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

Re: [PATCH 03/14] builtin: consistently pass cmd_* prefix to parse_options

From
Derrick Stolee <stolee@gmail.com>
Date
May 10, 2019, 12:10 UTC
Message-ID
<3851512b-9957-8e77-f4f7-3a859f808676@gmail.com>
In-Reply-To
<20190509212850.GC15837@sigill.intra.peff.net>
On 5/9/2019 5:28 PM, Jeff King wrote:
Show 17 quoted lines
> If a builtin uses RUN_SETUP to request that git.c enter the repository
> directory, we'll get passed in a "prefix" variable with the path to the
> original directory.  It's important to pass this to parse_options(),
> since we may use it to fix up relative OPT_FILENAME() options. Some
> builtins don't bother; let's make sure we do so consistently.
> 
> There may not be any particular bugs fixed here; OPT_FILENAME is
> actually pretty rare, and none of these commands use it directly.
> However, this does future-proof us against somebody adding an option
> that uses it and creating a subtle bug that only shows up when you're in
> a subdirectory of the repository.
> 
> In some cases, like hash-object and upload-pack, we don't specify
> RUN_SETUP, so we know the prefix will always be empty. It's still worth
> passing the variable along to keep the idiom consistent across all
> builtins (and of course it protects us if they ever _did_ switch to
> using RUN_SETUP).

Good explanation that we _should_ be using these parameters. Forgetting to add these prefix uses would probably not be obvious if a patch added RUN_SETUP.

Thanks, -Stolee

Previous: Jeff KingNext: Jeff King
Message 7 of 20 in “"final" batch of unused parameter cleanups”
  1. 0/14 "final" batch of unused parameter cleanupsJeff King, May 9, 2019
  2. 01/14 cmd_{read,write}_tree: rename "unused" variable that is usedJeff King, May 9, 2019
  3. Derrick StoleeMay 10, 2019
  4. Junio C HamanoMay 13, 2019
  5. 02/14 submodule: drop unused prefix parameter from some functionsJeff King, May 9, 2019
  6. 03/14 builtin: consistently pass cmd_* prefix to parse_optionsJeff King, May 9, 2019
  7. Derrick StoleeMay 10, 2019
  8. 04/14 clone: drop dest parameter from copy_alternates()Jeff King, May 9, 2019
  9. 05/14 read-cache: drop unused parameter from threaded loadJeff King, May 9, 2019
  10. 06/14 wt-status: drop unused status parameterJeff King, May 9, 2019
  11. 07/14 mktree: drop unused length parameterJeff King, May 9, 2019
  12. 08/14 name-rev: drop unused parameters from is_better_name()Jeff King, May 9, 2019
  13. 09/14 pack-objects: drop unused rev_info parametersJeff King, May 9, 2019
  14. 10/14 receive-pack: drop unused "commands" from prepare_shallow_update()Jeff King, May 9, 2019
  15. 11/14 remove_all_fetch_refspecs(): drop unused "remote" parameterJeff King, May 9, 2019
  16. 12/14 rev-list: drop unused void pointer from finish_commit()Jeff King, May 9, 2019
  17. 13/14 show-branch: drop unused parameter from show_independent()Jeff King, May 9, 2019
  18. 14/14 verify-commit: simplify parameters to run_gpg_verify()Jeff King, May 9, 2019
  19. Derrick StoleeMay 10, 2019
  20. Derrick StoleeMay 10, 2019

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.