- Explain why `HOMEBREW_UPDATE_TEST` is set and what it does.
- Avoid auto-updating (this should already be not happening but let's
make sure).
- Set environment variables to ensure we're testing the default update
behaviour (rather than deferring to user configuration).
- Use `HOMEBREW_BREW_GIT_REMOTE` as well as setting
`git config remote.origin.url` ourselves.
- Run `brew help` quietly first to hide irrelevant portable Ruby output.
- Run `brew update --verbose --debug` to get even more output on
failure.
Fixes https://github.com/Homebrew/brew/issues/8979
- The `--local` option doesn't exist in early versions of git (~1.7),
but its behaviour is the default (saving in the current repo's .git
directory).
- As it's the default across versions, we don't need to specify it
everywhere.
- Reported in Linuxbrew/install issue 78.
- Ensure that `HOMEBREW_TEMP` is only displayed in `brew config` when
it's non-default.
- Attempt to create a missing `HOMEBREW_TEMP` directory rather than
failing to `realpath`. Note this will still fail on permissions errors
which is to be expected.
- `brew.rb` needed updated to fail unless on Ruby 2.3
- `brew update` should unset `HOMEBREW_RUBY_PATH` to ensure that this
doesn't "stick" on a Ruby 2.0 version after a portable Ruby has been
installed.
Don't try to `fetch --depth=1` unless we've confirmed the repository is
already shallow. Otherwise this can discard history from a full clone.
Additionally, if the repository wasn't shallow but there's no tags found
assume that Git is too old and try a naive sort if on Linux where `sort`
is able to sort versions.
Fail if the start or end commit are missing and retry finding the
previous tag by fetching all tags if they are missing.
This should fix CI on the current Homebrew/brew `master` branch.
Closes#2404.
`sha1` isn't a very accurate description of what this value can be
because it can be any git commit reference. For example, `brew test-bot`
uses `brew update-test --commit=HEAD`.