From b21d724618b86e916b67393bf9ecfd450f8b451e Mon Sep 17 00:00:00 2001
From: Mike McQuaid <mike@mikemcquaid.com>
Date: Tue, 6 Sep 2016 12:00:08 +0100
Subject: [PATCH] test-bot: tweak cleaning behaviour again.

Always run `git clean -ffdx` on HOMEBREW_REPOSITORY. Also, ensure that
if we can't find a formula that's logged.
---
 Library/Homebrew/dev-cmd/test-bot.rb | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/Library/Homebrew/dev-cmd/test-bot.rb b/Library/Homebrew/dev-cmd/test-bot.rb
index 7d06b93c31..89397df449 100644
--- a/Library/Homebrew/dev-cmd/test-bot.rb
+++ b/Library/Homebrew/dev-cmd/test-bot.rb
@@ -251,7 +251,9 @@ module Homebrew
       raise if e.tap.installed?
       test "brew", "tap", e.tap.name
       retry unless steps.last.failed?
-    rescue FormulaUnavailableError, TapFormulaAmbiguityError, TapFormulaWithOldnameAmbiguityError
+    rescue FormulaUnavailableError, TapFormulaAmbiguityError, TapFormulaWithOldnameAmbiguityError => e
+      onoe e
+      puts e.backtrace
     end
 
     def git(*args)
@@ -689,7 +691,15 @@ module Homebrew
       end
       git "clean", "-ffdx"
 
-      Pathname.glob("{#{HOMEBREW_REPOSITORY},#{HOMEBREW_LIBRARY}/Taps/*/*}").each do |git_repo|
+      unless @repository == HOMEBREW_REPOSITORY
+        HOMEBREW_REPOSITORY.cd do
+          safe_system "git", "checkout", "-f", "master"
+          safe_system "git", "reset", "--hard", "origin/master"
+          safe_system "git", "clean", "-ffdx", "--exclude=/Library/Taps/"
+        end
+      end
+
+      Pathname.glob("#{HOMEBREW_LIBRARY}/Taps/*/*").each do |git_repo|
         next if @repository == git_repo
         git_repo.cd do
           safe_system "git", "checkout", "-f", "master"
@@ -720,7 +730,15 @@ module Homebrew
 
         Tap.names.each { |s| safe_system "brew", "untap", s if s != "homebrew/core" }
 
-        Pathname.glob("{#{HOMEBREW_REPOSITORY},#{HOMEBREW_LIBRARY}/Taps/*/*}").each do |git_repo|
+        unless @repository == HOMEBREW_REPOSITORY
+          HOMEBREW_REPOSITORY.cd do
+            safe_system "git", "checkout", "-f", "master"
+            safe_system "git", "reset", "--hard", "origin/master"
+            safe_system "git", "clean", "-ffdx", "--exclude=/Library/Taps/"
+          end
+        end
+
+        Pathname.glob("#{HOMEBREW_LIBRARY}/Taps/*/*").each do |git_repo|
           next if @repository == git_repo
           git_repo.cd do
             safe_system "git", "checkout", "-f", "master"
-- 
GitLab