Skip to content
  • Johannes Schindelin's avatar
    tests: disallow the use of abbreviated options (by default) · b02e7d5d
    Johannes Schindelin authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Git's command-line parsers support uniquely abbreviated options, e.g.
    `git init --ba` would automatically expand `--ba` to `--bare`.
    
    This is a very convenient feature in every day life for Git users, in
    particular when tab completion is not available.
    
    However, it is not a good idea to rely on that in Git's test suite, as
    something that is a unique abbreviation of a command line option today
    might no longer be a unique abbreviation tomorrow.
    
    For example, if a future contribution added a new mode
    `git init --babyproofing` and a previously-introduced test case used the
    fact that `git init --ba` expanded to `git init --bare`, that future
    contribution would now have to touch seemingly unrelated tests just to
    keep the test suite from failing.
    
    So let's disallow abbreviated options in the test suite by default.
    
    Note: for ease of implementation, this patch really only touches the
    `parse-options` machinery: more and more hand-rolled option parsers are
    converted to use that internal API, and more and more scripts are
    converted to built-ins (naturally using the parse-options API, too), so
    in practice this catches most issues, and is definitely the biggest bang
    for the buck.
    
    Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    b02e7d5d