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

Re: [PATCH] config: Add new option to open an editor.

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Feb 3, 2009, 23:25 UTC
Message-ID
<94a0d4530902031525o11e512barfc2f50c33a520474@mail.gmail.com>
In-Reply-To
<alpine.DEB.1.00.0902040002360.9822@pacific.mpi-cbg.de>

On Wed, Feb 4, 2009 at 1:05 AM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 21 quoted lines
> Hi,
>
> On Wed, 4 Feb 2009, Felipe Contreras wrote:
>
>> On Wed, Feb 4, 2009 at 12:53 AM, Johannes Schindelin
>> <Johannes.Schindelin@gmx.de> wrote:
>>
>> > On Wed, 4 Feb 2009, Felipe Contreras wrote:
>> >
>> >>  static const char git_config_set_usage[] =
>> >> -"git config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]";
>> >> +"git config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty] | --edit | -e ]";
>> >
>> > This line is getting way too long...  (Not nit-picking your current patch,
>> > but maybe you could provide another patch to break the line, while you're
>> > at builtin-config.c already.  Maybe even parseopt'ifying it... ;-)
>>
>> Yeah, I'll send another patch to clean that string. Is there any
>> example of that parseopt thing?
>
> Yep... test-parse-options.c ;-)
Cool, I'll check that.
Show 21 quoted lines
>> >> @@ -362,6 +362,15 @@ int cmd_config(int argc, const char **argv, const char *prefix)
>> >>                       return get_color(argc-2, argv+2);
>> >>               } else if (!strcmp(argv[1], "--get-colorbool")) {
>> >>                       return get_colorbool(argc-2, argv+2);
>> >> +             } else if (!strcmp(argv[1], "--edit") || !strcmp(argv[1], "-e")) {
>> >> +                     char *config_filename;
>> >> +                     if (config_exclusive_filename)
>> >> +                             config_filename = xstrdup(config_exclusive_filename);
>> >> +                     else
>> >> +                             config_filename = git_pathdup("config");
>> >> +                     launch_editor(config_filename, NULL, NULL);
>> >> +                     free(config_filename);
>> >> +                     return 0;
>> >
>> > Does launch_editor() not take a 'const char *' on purpose?  IOW you do not
>> > need to xstrdup() the filename.  You do not even need git_pathdup(), as
>> > launch_editor() does not use git_path() itself.
>>
>> So, s/git_pathdup/git_path/ ?
>
> And s/xstrdup(\(.*\))/\1/.
Yeah, I understood that.
Show 8 quoted lines
>> > However, a test case would be nice...
>>
>> What would the the test case check?
>
> That 'GIT_CONFIG=bla GIT_EDITOR=echo git config -e' and 'GIT_DIR=blub
> GIT_EDITOR=echo git config -e' do the right thing.  Maybe even --global,
> but that would also be a good test that "git config --global -e" does not
> fail when there is no original file.

Hmm, I'm not sure what issues this test case would find. If there's a problem with launch_editor that's something other test case should find.

If there's no original file it's up to the editor to create one, if for some reason the editor fails at doing that it's a problem of the editor, and there's not much 'git config -e' could do except show an error, and that's what launch_editor would do. Same thing if the editor is wrong (GIT_EDITOR=blah).

I'll resend.
-- 
Felipe Contreras
Previous: Johannes SchindelinNext: Felipe Contreras
Message 5 of 25 in “config: Add new option to open an editor.”
  1. config: Add new option to open an editor.Felipe Contreras, Feb 3, 2009
  2. Johannes SchindelinFeb 3, 2009
  3. Felipe ContrerasFeb 3, 2009
  4. Johannes SchindelinFeb 3, 2009
  5. Felipe ContrerasFeb 3, 2009
  6. config: Add new option to open an editor.Felipe Contreras, Feb 3, 2009
  7. Johannes SchindelinFeb 3, 2009
  8. Felipe ContrerasFeb 3, 2009
  9. Jeff KingFeb 4, 2009
  10. Felipe ContrerasFeb 4, 2009
  11. Jeff KingFeb 4, 2009
  12. Felipe ContrerasFeb 4, 2009
  13. config: Add new option to open an editor.Felipe Contreras, Feb 4, 2009
  14. Junio C HamanoFeb 4, 2009
  15. Felipe ContrerasFeb 4, 2009
  16. Johannes SchindelinFeb 4, 2009
  17. Johannes SchindelinFeb 4, 2009
  18. Felipe ContrerasFeb 7, 2009
  19. Johannes SchindelinFeb 7, 2009
  20. Felipe ContrerasFeb 7, 2009
  21. Junio C HamanoFeb 7, 2009
  22. Felipe ContrerasFeb 7, 2009
  23. config: Add new option to open an editor.Felipe Contreras, Feb 7, 2009
  24. Johannes SchindelinFeb 4, 2009
  25. Felipe ContrerasFeb 4, 2009

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.