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

Re: [RFC PATCH] config: learn the "onbranch:" includeIf condition

From
Denton Liu <liu.denton@gmail.com>
Date
May 31, 2019, 13:16 UTC
Message-ID
<20190531131626.GA30114@archbookpro.localdomain>
In-Reply-To
<nycvar.QRO.7.76.6.1905311453420.44@tvgsbejvaqbjf.bet>
Hi Johannes,
On Fri, May 31, 2019 at 02:58:30PM +0200, Johannes Schindelin wrote:
Show 18 quoted lines
> Hi,
> 
> On Thu, 30 May 2019, Denton Liu wrote:
> 
> > Currently, if a user wishes to have individual settings per branch, they
> > are required to manually keep track of the settings in their head and
> > manually set the options on the command-line or change the config at
> > each branch.
> >
> > Teach config the "onbranch:" includeIf condition so that it can
> > conditionally include configuration files if the branch is checked out
> > in the current worktree.
> 
> What a coincidence. I actually wished for something like this, to have
> branch-specific aliases.
> 
> However, I would need this to handle patterns (via `wildmatch()`?) rather
> than branch names.

Do you mean that we should be able to match a branch by pattern? So, for example, if we had

	[includeIf "onbranch:mas*"]
we'd match if we were on "master"?
Show 21 quoted lines
> 
> > I decided to go ahead and implement the includeIf onbranch semantics for
> > fun. For completeness, I'm sending it to the list but I'm not really
> > sure if this should get merged, since I don't really have a use-case for
> > this, especially if we go the branch-specific format-patch config route.
> >
> > Another thing to note is that this change doesn't completely cover all
> > the use-cases that the branch-specific format-patch does. In particular,
> > if I run
> >
> > 	$ git checkout foo
> > 	$ git format-patch master..bar
> >
> > with the `format.bar.*`, we'd get bar-specific configs, whereas with
> > `includeIf "onbranch:bar"`, we'd fail to include bar-specific configs
> > and, more dangerously, we'd be including foo's configs.
> 
> I actually think that this is fine. "on branch" means that you are on the
> specified branch, not that you merely mention the branch name on the
> command-line (in which case there would be the ambiguity "did the user
> mean `master` or `bar`?").

The reason why I brought this up as a use case was because currently, when format-patch generates a cover letter, with the above, it'll use bar's branch description to populate it even if "foo" is checked out. As a result, when implementing the branch-specific format-patch stuff, I wanted to make this consistent so that we wouldn't end up in a situation where the cover letter has the branch's description but is missing its Cc's.

> 
> Ciao,
> Dscho
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 17 of 59 in “teach branch-specific options for format-patch”
  1. 0/7 teach branch-specific options for format-patchDenton Liu, May 5, 2019
  2. 1/7 t4014: clean up styleDenton Liu, May 5, 2019
  3. 2/7 Doc: add more detail for git-format-patchDenton Liu, May 5, 2019
  4. 3/7 branch.c: extract read_branch_config functionDenton Liu, May 5, 2019
  5. 4/7 format-patch: make cover letter subject configurableDenton Liu, May 5, 2019
  6. 5/7 format-patch: move extra_headers logic laterDenton Liu, May 5, 2019
  7. 6/7 string-list: create string_list_append_allDenton Liu, May 5, 2019
  8. 7/7 format-patch: read branch-specific To: and Cc: headersDenton Liu, May 5, 2019
  9. Junio C HamanoMay 7, 2019
  10. Denton LiuMay 7, 2019
  11. Junio C HamanoMay 7, 2019
  12. Denton LiuMay 7, 2019
  13. Ævar Arnfjörð BjarmasonMay 7, 2019
  14. Junio C HamanoMay 8, 2019
  15. config: learn the "onbranch:" includeIf conditionDenton Liu, May 31, 2019
  16. Johannes SchindelinMay 31, 2019
  17. Denton LiuMay 31, 2019
  18. Johannes SchindelinMay 31, 2019
  19. Denton LiuMay 31, 2019
  20. config: learn the "onbranch:" includeIf conditionDenton Liu, May 31, 2019
  21. Johannes SchindelinMay 31, 2019
  22. Johannes SchindelinJun 5, 2019
  23. Duy NguyenJun 5, 2019
  24. config: learn the "onbranch:" includeIf conditionDenton Liu, Jun 5, 2019
  25. Johannes SchindelinJun 6, 2019
  26. 0/6 teach branch-specific options for format-patchDenton Liu, May 17, 2019
  27. 1/6 t4014: clean up styleDenton Liu, May 17, 2019
  28. 2/6 Doc: add more detail for git-format-patchDenton Liu, May 17, 2019
  29. 3/6 format-patch: make cover letter subject configurableDenton Liu, May 17, 2019
  30. 4/6 format-patch: move extra_headers logic laterDenton Liu, May 17, 2019
  31. 5/6 string-list: create string_list_append_allDenton Liu, May 17, 2019
  32. 6/6 format-patch: read branch-specific To: and Cc: headersDenton Liu, May 17, 2019
  33. Junio C HamanoMay 17, 2019
  34. Denton LiuMay 17, 2019
  35. Denton LiuMay 17, 2019
  36. 0/8 teach branch-specific options for format-patchDenton Liu, May 22, 2019
  37. 1/8 t4014: clean up styleDenton Liu, May 22, 2019
  38. 2/8 Doc: add more detail for git-format-patchDenton Liu, May 22, 2019
  39. 3/8 format-patch: infer cover letter from branch descriptionDenton Liu, May 22, 2019
  40. 4/8 format-patch: move extra_headers logic laterDenton Liu, May 22, 2019
  41. 5/8 string-list: create string_list_append_allDenton Liu, May 22, 2019
  42. 6/8 format-patch: read branch-specific To: and Cc: headersDenton Liu, May 22, 2019
  43. 7/8 format-patch: move output_directory logic laterDenton Liu, May 22, 2019
  44. 8/8 format-patch: read branch-specific output directoryDenton Liu, May 22, 2019
  45. Denton LiuMay 31, 2019
  46. 0/8 teach branch-specific options for format-patchDenton Liu, Jun 14, 2019
  47. 1/8 t4014: clean up styleDenton Liu, Jun 14, 2019
  48. 2/8 Doc: add more detail for git-format-patchDenton Liu, Jun 14, 2019
  49. 3/8 format-patch: infer cover letter from branch descriptionDenton Liu, Jun 14, 2019
  50. 4/8 format-patch: move extra_headers logic laterDenton Liu, Jun 14, 2019
  51. 6/8 format-patch: read branch-specific To: and Cc: headersDenton Liu, Jun 14, 2019
  52. 5/8 string-list: create string_list_append_allDenton Liu, Jun 14, 2019
  53. 8/8 format-patch: read branch-specific output directoryDenton Liu, Jun 14, 2019
  54. 7/8 format-patch: move output_directory logic laterDenton Liu, Jun 14, 2019
  55. 0/3 format-patch: learn --infer-cover-subject option (also t4014 cleanup)Denton Liu, Oct 15, 2019
  56. 1/3 format-patch: replace erroneous and conditionDenton Liu, Oct 15, 2019
  57. 2/3 format-patch: use enum variablesDenton Liu, Oct 15, 2019
  58. 3/3 format-patch: teach --cover-from-description optionDenton Liu, Oct 15, 2019
  59. Junio C HamanoOct 16, 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.