Commit 75f274b7505935cc5fd0b609a83afb1c8aaba79b

Authored by Jacob Vosmaer
1 parent 0a963ee1

Use Gitlab::VERSION to version backups

Previous to this commit, backups were tied to the git revision (SHA1) of
the app at the time the backup:create command was invoked. If the SHA1
at the time of restore was different, the script would refuse to restore
the backup.  This commit loosens this tie so that the backup script only
complains if the value of the Gitlab::VERSION constant is different
between the time of backup and the time of restore.
Showing 1 changed file with 10 additions and 16 deletions   Show diff stats
lib/backup/manager.rb
... ... @@ -7,7 +7,7 @@ module Backup
7 7 s = {}
8 8 s[:db_version] = "#{ActiveRecord::Migrator.current_version}"
9 9 s[:backup_created_at] = Time.now
10   - s[:gitlab_version] = %x{git rev-parse HEAD}.gsub(/\n/,"")
  10 + s[:gitlab_version] = Gitlab::VERSION
11 11 s[:tar_version] = %x{tar --version | head -1}.gsub(/\n/,"")
12 12  
13 13 Dir.chdir(Gitlab.config.backup.path)
... ... @@ -87,21 +87,15 @@ module Backup
87 87 settings = YAML.load_file("backup_information.yml")
88 88 ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0
89 89  
90   - # backups directory is not always sub of Rails root and able to execute the git rev-parse below
91   - begin
92   - Dir.chdir(Rails.root)
93   -
94   - # restoring mismatching backups can lead to unexpected problems
95   - if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/, "")
96   - puts "GitLab version mismatch:".red
97   - puts " Your current HEAD differs from the HEAD in the backup!".red
98   - puts " Please switch to the following revision and try again:".red
99   - puts " revision: #{settings[:gitlab_version]}".red
100   - exit 1
101   - end
102   - ensure
103   - # chdir back to original intended dir
104   - Dir.chdir(Gitlab.config.backup.path)
  90 + # restoring mismatching backups can lead to unexpected problems
  91 + if settings[:gitlab_version] != Gitlab::VERSION
  92 + puts "GitLab version mismatch:".red
  93 + puts " Your current GitLab version (#{Gitlab::VERSION}) differs from the GitLab version in the backup!".red
  94 + puts " Please switch to the following version and try again:".red
  95 + puts " version: #{settings[:gitlab_version]}".red
  96 + puts
  97 + puts "Hint: git checkout v#{settings[:gitlab_version]}"
  98 + exit 1
105 99 end
106 100 end
107 101 end
... ...