From 30caec327f6331985bb8157e1a3aac8174bb0a77 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Thu, 28 Feb 2019 11:07:15 -0800 Subject: [PATCH] Bump Rugged to 0.28.0 This version bump makes things consistent between Gitaly and fixes a significant number of bugs: https://github.com/libgit2/libgit2/releases This also decreases disk space of Omnibus builds by ~30 MB. There is also a workaround for https://github.com/libgit2/rugged/issues/785. If Gitaly or another process changes .gitconfig while Rugged has the file loaded, Rugged::Repository#each_key will report stale values unless a lookup is done first. This bug only manifests in a spec because we are using both Gitaly and Rugged at the same time there, and we normally don't use Rugged in the CE/EE code in this way. --- Gemfile | 2 +- Gemfile.lock | 4 ++-- spec/lib/gitlab/git/repository_spec.rb | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 81d98d36b9c..1ae063d8558 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for' gem 'mysql2', '~> 0.4.10', group: :mysql gem 'pg', '~> 1.1', group: :postgres -gem 'rugged', '~> 0.27' +gem 'rugged', '~> 0.28' gem 'grape-path-helpers', '~> 1.0' gem 'faraday', '~> 0.12' diff --git a/Gemfile.lock b/Gemfile.lock index be1fc37e968..4fba583b972 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -784,7 +784,7 @@ GEM rubyntlm (0.6.2) rubypants (0.2.0) rubyzip (1.2.2) - rugged (0.27.5) + rugged (0.28.0) safe_yaml (1.0.4) sanitize (4.6.6) crass (~> 1.0.2) @@ -1134,7 +1134,7 @@ DEPENDENCIES ruby-progressbar ruby_parser (~> 3.8) rubyzip (~> 1.2.2) - rugged (~> 0.27) + rugged (~> 0.28) sanitize (~> 4.6) sass (~> 3.5) sass-rails (~> 5.0.6) diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index 7e6dfa30e37..8ba6862392c 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -1688,6 +1688,11 @@ describe Gitlab::Git::Repository, :seed_helper do expect(repository.delete_config(*%w[does.not.exist test.foo1 test.foo2])).to be_nil + # Workaround for https://github.com/libgit2/rugged/issues/785: If + # Gitaly changes .gitconfig while Rugged has the file loaded + # Rugged::Repository#each_key will report stale values unless a + # lookup is done first. + expect(repository_rugged.config['test.foo1']).to be_nil config_keys = repository_rugged.config.each_key.to_a expect(config_keys).not_to include('test.foo1') expect(config_keys).not_to include('test.foo2')