Thread (14 messages) flat view 14 messages, 5 authors, 2016-06-15

Re: [PATCH 1/2] init: support --import to add all files and commit right after init

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:46:28

2009/3/25 Jeff King [off-list ref]:
On Wed, Mar 25, 2009 at 09:58:40PM +1100, Nguyễn Thái Ngọc Duy wrote:
quoted
-'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.
quoted
+             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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help