Thread (10 messages) flat view 10 messages, 2 authors, 2016-06-15

Re: [PATCHv2 3/3] cvsimport.txt: document the mapping between config and options

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:50:08

Junio C Hamano venit, vidit, dixit 29.11.2010 21:23:
Michael J Gruber [off-list ref] writes:
quoted
Signed-off-by: Michael J Gruber <redacted>
---
 Documentation/git-cvsimport.txt |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index 608cd63..b5d5b27 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -176,6 +176,13 @@ messages, bug-tracking systems, email archives, and the like.
 -h::
 	Print a short usage message and exit.
 
+CONFIG
+------
+For any option '-x' you can set the config variable 'cvsimport.x' to the value
+you would specify for '-x', or to 'true' for a boolean option. For an
+uppercase option '-X' use the config variable 'cvsimport.xx' (or
+'cvsimport.XX').
+
I still think this is not about fixing "parsing" as 2/3 states but about
"working around the initial design flaw of how configuration variables are
used in cvsimport" in that the initial design didn't take it into account
that the last component of a configuration variable is case insensitive.
I don't care too much about the naming. But if I specify a correct
string value for "cvsimport.r" (correct as in correct for "-r", lower
case!) and "git cvsimport" gives me

fatal: bad config value for 'cvsimport.r' in .git/config

then I call this a bug, notwithstanding the fact that cvsimport does use
the value from cvsimport.r for "-r" and continues its operation.

This occurs really without even any attempt at specfiying values for
upper case options.
While mapping -X to .xx may be a usable workaround, it looks really ugly.
Worse, if we are going to give long command line options to the command
someday, we will really regret it doing it the way your patch does.

Would it be a better alternative to give conflicting but rarely used
uppercase options longer option name synonyms, and have them specified in
the gitconfig file in their full names?  Then we can disambiguate with
something like

    [cvsimport]
    	generate-cvs-revisions = yes
        remote = origin

which would be more readable, no?
Well, cvsimport does not have any long options now, and given the fact
that most cvsimport related activity lately has been on documenting its
shortcomings and promoting cvs2git, I consider that scenario highly
unlikely. (I'm not hooked on cvsimport - it's simply the only
*incremental* cvs-to-git importer that I know of, and the only one not
requiring local access.)

How about using a naming scheme like:

[cvsimport]
	r = origin
	capital-r = yes

This would be safe against any possible future long-options, quickly
implementable, and we would not have to invent long names now for the
existing one-letter options (and thus hindering any future attempts
also). Whether this is more or less ugly lies in the eye of the
s/beholder/maintainer/ :)

Michael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help