2007/11/10, Junio C Hamano <gitster@xxxxxxxxx>: > Carlos Rica <jasampler@xxxxxxxxx> writes: > > > Also, this removes those tests ensuring that repeated > > -m options don't allocate memory more than once, because now > > this is done after parsing options, using the last one > > when more are given. The same for -F. > > The reason for this change is...? Is this because it is > cumbersome to detect and refuse multiple -m options using the > parseopt API? If so, the API may be what needs to be fixed. > Taking the last one and discarding earlier ones feels to me an > arbitrary choice. You can do many things with repeated options. Here in git-tag we considered two different ways to manage them: Concatenating values for the option and/or refusing more than one. I found that current option-parser can do both from the client using callbacks, as Pierre shows me, so I think it is the right way to do it. Pierre, by default, I think that the parser should print an error when more than one option of the same type is given, in order to report it to the command-line user, but make this behaviour optional for the programmer. Specifically, I thought in this last option: enum parse_opt_option_flags { PARSE_OPT_OPTARG = 1, PARSE_OPT_NOARG = 2, PARSE_OPT_ALLOWREP = 4 }; > While I freely admit that I do not particularly find the "One -m > introduces one new line, concatenated to form the final > paragraph" handling of multiple -m options done by git-commit > nice nor useful, I suspect that it would make more sense to make > git-tag and git-commit handle multiple -m option consistently, > if you are going to change the existing semantics. Since some > people really seem to like multiple -m handling of git-commit, > the avenue of the least resistance for better consistency would > be to accept and concatenate (with LF in between) multiple -m > options. > > With multiple -F, I think erroring out would be the sensible > thing to do, but some people might prefer concatenation. I do > not care either way as long as commit and tag behave > consistently. Then, Kristian, what are you willing to do in such case? It seems easier for me to concatenate of -m and -F options, even when both types are given. I don't know why "people" want multiple -m options, but I think that mixing -m and -F options could be interesting for them too. If someone know if this have been discussed and decided already, please give me the link. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html