From 194c88915d76a16008fbdef3b0edd053957bb7cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= <glen@delfi.ee>
Date: Thu, 12 Jan 2017 14:08:02 +0200
Subject: [PATCH 1/3] Update rugged to 0.25.1.1

---
 Gemfile                                           |  4 ++--
 Gemfile.lock                                      | 10 +++++-----
 changelogs/unreleased/17325-rugged-gem-update.yml |  4 ++++
 3 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 changelogs/unreleased/17325-rugged-gem-update.yml

diff --git a/Gemfile b/Gemfile
index c4368d79d5d..562ee2d1b9e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -15,7 +15,7 @@ gem 'default_value_for', '~> 3.0.0'
 gem 'mysql2', '~> 0.3.16', group: :mysql
 gem 'pg', '~> 0.18.2', group: :postgres
 
-gem 'rugged', '~> 0.24.0'
+gem 'rugged', '~> 0.25.1.1'
 
 # Authentication libraries
 gem 'devise', '~> 4.2'
@@ -63,7 +63,7 @@ gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: 'omniauth-ldap'
 # Git Wiki
 # Required manually in config/initializers/gollum.rb to control load order
 gem 'gollum-lib', '~> 4.2', require: false
-gem 'gollum-rugged_adapter', '~> 0.4.2', require: false
+gem 'gollum-rugged_adapter', '~> 0.4.4', require: false
 
 # Language detection
 gem 'github-linguist', '~> 4.7.0', require: 'linguist'
diff --git a/Gemfile.lock b/Gemfile.lock
index 2cb0e88962a..8382de2b7a0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -288,9 +288,9 @@ GEM
       rouge (~> 2.0)
       sanitize (~> 2.1.0)
       stringex (~> 2.5.1)
-    gollum-rugged_adapter (0.4.2)
+    gollum-rugged_adapter (0.4.4)
       mime-types (>= 1.15)
-      rugged (~> 0.24.0, >= 0.21.3)
+      rugged (~> 0.25)
     gon (6.1.0)
       actionpack (>= 3.0)
       json
@@ -682,7 +682,7 @@ GEM
     rubypants (0.2.0)
     rubyzip (1.2.1)
     rufus-scheduler (3.1.10)
-    rugged (0.24.0)
+    rugged (0.25.1.1)
     safe_yaml (1.0.4)
     sanitize (2.1.0)
       nokogiri (>= 1.4.4)
@@ -905,7 +905,7 @@ DEPENDENCIES
   gitlab-markup (~> 1.5.1)
   gitlab_omniauth-ldap (~> 1.2.1)
   gollum-lib (~> 4.2)
-  gollum-rugged_adapter (~> 0.4.2)
+  gollum-rugged_adapter (~> 0.4.4)
   gon (~> 6.1.0)
   google-api-client (~> 0.8.6)
   grape (~> 0.19.0)
@@ -987,7 +987,7 @@ DEPENDENCIES
   rubocop-rspec (~> 1.12.0)
   ruby-fogbugz (~> 0.2.1)
   ruby-prof (~> 0.16.2)
-  rugged (~> 0.24.0)
+  rugged (~> 0.25.1.1)
   sanitize (~> 2.0)
   sass-rails (~> 5.0.6)
   scss_lint (~> 0.47.0)
diff --git a/changelogs/unreleased/17325-rugged-gem-update.yml b/changelogs/unreleased/17325-rugged-gem-update.yml
new file mode 100644
index 00000000000..7ca619439c4
--- /dev/null
+++ b/changelogs/unreleased/17325-rugged-gem-update.yml
@@ -0,0 +1,4 @@
+---
+title: Update rugged to 0.25.1.1
+merge_request: 10286
+author: Elan Ruusamäe
-- 
GitLab


From e396b43771da1e8d47bf5ce6832adb541ed55b34 Mon Sep 17 00:00:00 2001
From: Adam Niedzielski <adamsunday@gmail.com>
Date: Tue, 31 Jan 2017 15:40:06 +0100
Subject: [PATCH 2/3] Remove unused method
 Gitlab::Git::Repository#commits_since

---
 lib/gitlab/git/repository.rb | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 2187dd70ff4..7be2fc7f6f7 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -828,23 +828,6 @@ module Gitlab
         Rugged::Commit.create(rugged, actual_options)
       end
 
-      def commits_since(from_date)
-        walker = Rugged::Walker.new(rugged)
-        walker.sorting(Rugged::SORT_DATE | Rugged::SORT_REVERSE)
-
-        rugged.references.each("refs/heads/*") do |ref|
-          walker.push(ref.target_id)
-        end
-
-        commits = []
-        walker.each do |commit|
-          break if commit.author[:time].to_date < from_date
-          commits.push(commit)
-        end
-
-        commits
-      end
-
       AUTOCRLF_VALUES = {
         "true" => true,
         "false" => false,
-- 
GitLab


From 91e150266adeeaa60c8626a3dd1ddc467347744f Mon Sep 17 00:00:00 2001
From: Adam Niedzielski <adamsunday@gmail.com>
Date: Thu, 2 Feb 2017 15:41:23 +0100
Subject: [PATCH 3/3] Use Rugged::SORT_NONE instead of Rugged::SORT_DATE

Meaning of SORT_DATE was changed in libgit2.
See https://github.com/libgit2/libgit2/commit/82d4c0e6b841ae0e466bd97ab1faec0920a6b7a2

SORT_NONE is the order produced by "git log".
---
 lib/gitlab/git/repository.rb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 7be2fc7f6f7..057f7748c3e 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -320,7 +320,7 @@ module Gitlab
       def log_by_walk(sha, options)
         walk_options = {
           show: sha,
-          sort: Rugged::SORT_DATE,
+          sort: Rugged::SORT_NONE,
           limit: options[:limit],
           offset: options[:offset]
         }
@@ -382,7 +382,7 @@ module Gitlab
       # a detailed list of valid arguments.
       def commits_between(from, to)
         walker = Rugged::Walker.new(rugged)
-        walker.sorting(Rugged::SORT_DATE | Rugged::SORT_REVERSE)
+        walker.sorting(Rugged::SORT_NONE | Rugged::SORT_REVERSE)
 
         sha_from = sha_from_ref(from)
         sha_to = sha_from_ref(to)
@@ -460,7 +460,7 @@ module Gitlab
         if actual_options[:order] == :topo
           walker.sorting(Rugged::SORT_TOPO)
         else
-          walker.sorting(Rugged::SORT_DATE)
+          walker.sorting(Rugged::SORT_NONE)
         end
 
         commits = []
-- 
GitLab