aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2017-03-31 10:28:45 +0100
committerMike McQuaid2017-03-31 10:28:45 +0100
commit7d07d859ce10f5ea2c94033660674f3bf4ec0ece (patch)
tree3b58898d309fba934dbf79d6ab2d79bee28d561c /Library
parentdd7121dd7c0ba3121919a2b74b78ea690ff10175 (diff)
downloadbrew-7d07d859ce10f5ea2c94033660674f3bf4ec0ece.tar.bz2
migrator: check if taps are from same user instead
This avoids needing to use `force: true` and still let's Homebrew do what we want with our own taps.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/update-report.rb7
-rw-r--r--Library/Homebrew/migrator.rb17
2 files changed, 11 insertions, 13 deletions
diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb
index 065890707..a6936c78c 100644
--- a/Library/Homebrew/cmd/update-report.rb
+++ b/Library/Homebrew/cmd/update-report.rb
@@ -525,12 +525,7 @@ class Reporter
next
end
- begin
- migrator = Migrator.new(f, force: true)
- migrator.migrate
- rescue Exception => e
- onoe e
- end
+ Migrator.migrate_if_needed(f)
end
end
diff --git a/Library/Homebrew/migrator.rb b/Library/Homebrew/migrator.rb
index e745b8554..17f7ba4b4 100644
--- a/Library/Homebrew/migrator.rb
+++ b/Library/Homebrew/migrator.rb
@@ -95,7 +95,7 @@ class Migrator
def self.migrate_if_needed(formula)
return unless Migrator.needs_migration?(formula)
begin
- migrator = Migrator.new(formula, force: true)
+ migrator = Migrator.new(formula)
migrator.migrate
rescue Exception => e
onoe e
@@ -114,7 +114,7 @@ class Migrator
@old_tabs = old_cellar.subdirs.map { |d| Tab.for_keg(Keg.new(d)) }
@old_tap = old_tabs.first.tap
- if !force && !from_same_taps?
+ if !force && !from_same_tap_user?
raise MigratorDifferentTapsError.new(formula, old_tap)
end
@@ -140,15 +140,19 @@ class Migrator
end
end
- def from_same_taps?
+ def from_same_tap_user?
+ formula_tap_user = formula.tap.user if formula.tap
+ old_tap_user = nil
+
new_tap = if old_tap
+ old_tap_user, = old_tap.user
if migrate_tap = old_tap.tap_migrations[formula.oldname]
- new_tap_user, new_tap_repo, = migrate_tap.split("/")
+ new_tap_user, new_tap_repo = migrate_tap.split("/")
"#{new_tap_user}/#{new_tap_repo}"
end
end
- if formula.tap == old_tap
+ if formula_tap_user == old_tap_user
true
# Homebrew didn't use to update tabs while performing tap-migrations,
# so there can be INSTALL_RECEIPT's containing wrong information about tap,
@@ -215,8 +219,7 @@ class Migrator
end
if conflicted
- onoe "Remove #{new_cellar} manually and run brew migrate #{oldname}."
- return
+ odie "Remove #{new_cellar} manually and run brew migrate #{oldname}."
end
end