Show 46 quoted lines
> On Wed, Mar 25, 2009 at 09:58:40PM +1100, Nguyễn Thái Ngọc Duy wrote:
>
>> -'git init' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]
>> +'git init' [-q | --quiet] [--bare] [--template=<template_directory>]
>> + [--shared[=<permissions>]] [-m|--import [<message>]]
>
> What happened to --import=? Whether or not "--import <arg>" works, the
> --long-opt= form should always work.
>
>> + else if (!strcmp(arg, "--import") || !strcmp(arg, "-m")) {
>> + if (i+1 >= argc)
>> + import_message = "Initial commit";
>> + else {
>> + import_message = argv[2];
>> + i++;
>> + argv++;
>> + }
>> + }
>
> This is the wrong way to do optional arguments. It means that
>
> git init --template=foo --import
>
> is different from
>
> git init --import --template=foo
>
> I think what you want is:
>
> else if (!strcmp(arg, "-m")) {
> if (i+1 >= argc)
> die("-m requires an import message");
> import_message = argv[2];
> i++;
> argv++;
> }
> else if (!strcmp(arg, "--import"))
> import_message = "Initial commit";
> else if (!prefixcmp(arg, "--import="))
> import_message = arg+9;
>
> That is, --import has a message or not depending on the '=', and "-m"
> always has a message. If you want "-m" to optionally have a message then
> it must be used as
>
> git init -mfoo