aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMartin Afanasjew2015-12-12 17:03:39 +0100
committerMartin Afanasjew2015-12-13 22:18:14 +0100
commit9789726fff9497855080026b6e1c2d07af5f6284 (patch)
tree7e97d273025565e658e697c5abb8caecaefc2082 /Library
parent18bf5a74a8365a990240e3931446b2a13dbbacde (diff)
downloadbrew-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.rb4
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