From b1ff9c42d67598d6d09a71ee4ef333847dd09e1b Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 11 Sep 2015 11:00:07 +0100 Subject: update: fix when `HEAD` doesn't exist. e.g. when it's a detached `HEAD` through checking out a commit rather than a branch. --- Library/Homebrew/cmd/update.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'Library/Homebrew/cmd') diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 4be763b6a..9890d15ef 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -187,7 +187,13 @@ class Updater @stashed = true end - @initial_branch = `git symbolic-ref --short HEAD`.chomp + + begin + @initial_branch = `git symbolic-ref --short HEAD 2>/dev/null`.chomp + rescue ErrorDuringExecution + @initial_branch = "" + end + if @initial_branch != "master" && !@initial_branch.empty? safe_system "git", "checkout", "master", *quiet end @@ -227,7 +233,7 @@ class Updater ignore_interrupts { yield } ensure if $?.signaled? && $?.termsig == 2 # SIGINT - safe_system "git", "checkout", @initial_branch + safe_system "git", "checkout", @initial_branch unless @initial_branch.empty? safe_system "git", "reset", "--hard", @initial_revision safe_system "git", "stash", "pop" if @stashed end -- cgit v1.2.3