diff options
| author | Martin Afanasjew | 2015-12-12 17:03:39 +0100 |
|---|---|---|
| committer | Martin Afanasjew | 2015-12-13 22:18:14 +0100 |
| commit | 9789726fff9497855080026b6e1c2d07af5f6284 (patch) | |
| tree | 7e97d273025565e658e697c5abb8caecaefc2082 /Library | |
| parent | 18bf5a74a8365a990240e3931446b2a13dbbacde (diff) | |
| download | brew-9789726fff9497855080026b6e1c2d07af5f6284.tar.bz2 | |
update: make stashing local changes more robust
Users with local changes and without a configured Git identity won't be
able to update Homebrew via `brew update`, as the update will fail when
trying to stash the local modifications with `git stash`. They will be
unable to proceed until they follow Git's advice to configure their
identity or they manage to revert their local changes.
This change always sets a commit e-mail and name, avoiding this issue. A
nice bonus is that experienced Git users can see who created the stash
commit (identifying `brew update` as the author).
Fixes Homebrew/homebrew#46930.
Closes Homebrew/homebrew#46939.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index dfabe95ee..08062e15b 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -225,7 +225,9 @@ class Updater puts "Stashing uncommitted changes to #{repository}." system "git", "status", "--short", "--untracked-files=all" end - safe_system "git", "stash", "save", "--include-untracked", *@quiet_args + safe_system "git", "-c", "user.email=brew-update@localhost", + "-c", "user.name=brew update", + "stash", "save", "--include-untracked", *@quiet_args safe_system "git", "reset", "--hard", *@quiet_args @stashed = true end |
