Re: [PATCH 1/2] init: support --import to add all files and commit right after init
- From
Jeff King <peff@peff.net>
- Date
- Mar 25, 2009, 11:35 UTC
- Message-ID
- <20090325113510.GB4437@coredump.intra.peff.net>
- In-Reply-To
- <1237978720-2500-1-git-send-email-pclouds@gmail.com>
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.
Show 9 quoted lines
> + 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
-Peff