Skip to content
  • Jeff King's avatar
    rev-parse: let some options run outside repository · fc7d47f0
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    Once upon a time, you could use "--local-env-vars" and
    "--resolve-git-dir" outside of any git repository, but they
    had to come first on the command line. Commit 68889b41
    
    
    (rev-parse: remove restrictions on some options, 2013-07-21)
    put them into the normal option-parsing loop, fixing the
    latter. But it inadvertently broke the former, as we call
    setup_git_directory() before starting that loop.
    
    We can note that those options don't care even conditionally
    about whether we are in a git repo. So it's fine if we
    simply wait to setup the repo until we see an option that
    needs it.
    
    However, there is one special exception we should make:
    historically, rev-parse will set up the repository and read
    config even if there are _no_ options. Some of the
    tests in t1300 rely on this to check "git -c $config"
    parsing. That's not mirroring real-world use, and we could
    tweak the test.  But t0002 uses a bare "git rev-parse" to
    check "are we in a git repository?". It's plausible that
    real-world scripts are relying on this.
    
    So let's cover this case specially, and treat an option-less
    "rev-parse" as "see if we're in a repo".
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    fc7d47f0