Use git describe to get the HOMEBREW_VERSION.

For tagged commits produces the output:
- `1.0.1`

For untagged commits with a dirty tree produces the output:
- `1.0.1-19-g23efbc5-dirty`

Performance:
```
git describe --tags --dirty 2> /dev/null
0.07s user 0.01s system 96% cpu 0.086 total
```

This means we can tag any commit without needing to manually remember
to bump the revision every time.
This commit is contained in:
Mike McQuaid 2016-09-22 08:56:40 +01:00
parent 23efbc5198
commit f0e9292acd
3 changed files with 6 additions and 11 deletions

View File

@ -14,7 +14,7 @@ $:.unshift(HOMEBREW_LIBRARY_PATH.to_s)
require "global" require "global"
if ARGV == %w[--version] || ARGV == %w[-v] if ARGV == %w[--version] || ARGV == %w[-v]
puts "Homebrew #{Homebrew.homebrew_version_string}" puts "Homebrew #{HOMEBREW_VERSION}"
puts "Homebrew/homebrew-core #{Homebrew.core_tap_version_string}" puts "Homebrew/homebrew-core #{Homebrew.core_tap_version_string}"
exit 0 exit 0
end end

View File

@ -1,4 +1,8 @@
HOMEBREW_VERSION="1.0.0" HOMEBREW_VERSION="$(git describe --tags --dirty 2>/dev/null)"
if [[ -z "$HOMEBREW_VERSION" ]]
then
HOMEBREW_VERSION=">1.0.0 (no git repository)"
fi
onoe() { onoe() {
if [[ -t 2 ]] # check whether stderr is a tty. if [[ -t 2 ]] # check whether stderr is a tty.

View File

@ -248,15 +248,6 @@ module Homebrew
_system(cmd, *args) _system(cmd, *args)
end end
def self.homebrew_version_string
if pretty_revision = HOMEBREW_REPOSITORY.git_short_head
last_commit = HOMEBREW_REPOSITORY.git_last_commit_date
"#{HOMEBREW_VERSION} (git revision #{pretty_revision}; last commit #{last_commit})"
else
"#{HOMEBREW_VERSION} (no git repository)"
end
end
def self.core_tap_version_string def self.core_tap_version_string
require "tap" require "tap"
tap = CoreTap.instance tap = CoreTap.instance