Skip to content
  • Jeff King's avatar
    diff: always try to set up the repository · 28a4e580
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    If we see an explicit "--no-index", we do not bother calling
    setup_git_directory_gently() at all. This means that we may
    miss out on reading repo-specific config.
    
    It's arguable whether this is correct or not. If we were
    designing from scratch, making "git diff --no-index"
    completely ignore the repository makes some sense. But we
    are nowhere near scratch, so let's look at the existing
    behavior:
    
      1. If you're in the top-level of a repository and run an
         explicit "diff --no-index", the config subsystem falls
         back to reading ".git/config", and we will respect repo
         config.
    
      2. If you're in a subdirectory of a repository, then we
         still try to read ".git/config", but it generally
         doesn't exist. So "diff --no-index" there does not
         respect repo config.
    
      3. If you have $GIT_DIR set in the environment, we read
         and respect $GIT_DIR/config,
    
      4. If you run "git diff /tmp/foo /tmp/bar" to get an
         implicit no-index, we _do_ run the repository setup,
         and set $GIT_DIR (or respect an existing $GIT_DIR
         variable). We find the repo config no matter where we
         started, and respect it.
    
    So we already respect the repository config in a number of
    common cases, and case (2) is the only one that does not.
    And at least one of our tests, t4034, depends on case (1)
    behaving as it does now (though it is just incidental, not
    an explicit test for this behavior).
    
    So let's bring case (2) in line with the others by always
    running the repository setup, even with an explicit
    "--no-index". We shouldn't need to change anything else, as the
    implicit case already handles the prefix.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    28a4e580