From: Nguyen Thai Ngoc Duy Date: Wed, 25 Mar 2009 22:54:56 GMT Subject: Re: [PATCH 1/2] init: support --import to add all files and commit right after init Message-ID: In-Reply-To: <20090325113510.GB4437@coredump.intra.peff.net> 2009/3/25 Jeff King : > On Wed, Mar 25, 2009 at 09:58:40PM +1100, Nguyễn Thái Ngọc Duy wrote: > >> -'git init' [-q | --quiet] [--bare] [--template=] [--shared[=]] >> +'git init' [-q | --quiet] [--bare] [--template=] >> +           [--shared[=]] [-m|--import []] > > What happened to --import=? Whether or not "--import " 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 Right. Should not work late (or send it in the same night). Will rework. -- Duy