doctor: don't let gitconfig break dirty-tree check

`brew doctor` always complains about uncommitted modifications to
Homebrew when you have status.branch=true in your git config, because
the implicit --branch makes `git status -s` always print branch/tracking
info. The --porcelain mode is similar to -s/--short, but ignores most of
the user's config and should remain stable.

The --untracked-files option ensures we'll see untracked files even for
users with status.showUntrackedFiles=no, which is not suppressed by
--porcelain for some reason.

Closes Homebrew/homebrew#25230.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Chris Kampmeier 2013-12-15 05:13:08 -08:00 committed by Mike McQuaid
parent d1d6451a6a
commit 2635817ca8

View File

@ -909,7 +909,7 @@ end
def check_git_status def check_git_status
return unless which "git" return unless which "git"
HOMEBREW_REPOSITORY.cd do HOMEBREW_REPOSITORY.cd do
unless `git status -s -- Library/Homebrew/ 2>/dev/null`.chomp.empty? unless `git status --untracked-files=all --porcelain -- Library/Homebrew/ 2>/dev/null`.chomp.empty?
<<-EOS.undent_________________________________________________________72 <<-EOS.undent_________________________________________________________72
You have uncommitted modifications to Homebrew You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications. If this a surprise to you, then you should stash these modifications.