Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Okstad <pokstad@gitlab.com>2019-11-15 03:25:32 +0300
committerPaul Okstad <pokstad@gitlab.com>2019-11-15 03:25:32 +0300
commitd42df237d1b771df6c858a984b98fdc000dac2c5 (patch)
treedd8d475f923f73cc9fcf692e805fc28f66f14a98
parent8925c3db0a9ee56f91674fcfb20499a63e0f47ea (diff)
parentdeda4a870e81fa0ed3fa73583c6e59a82b777b6c (diff)
Merge branch 'faster-rebase-poc' into 'master'
Changed files used for sparse checkout See merge request gitlab-org/gitaly!1611
-rw-r--r--changelogs/unreleased/faster-rebase-poc.yml5
-rw-r--r--ruby/lib/gitlab/git/repository.rb11
2 files changed, 15 insertions, 1 deletions
diff --git a/changelogs/unreleased/faster-rebase-poc.yml b/changelogs/unreleased/faster-rebase-poc.yml
new file mode 100644
index 000000000..508b436e6
--- /dev/null
+++ b/changelogs/unreleased/faster-rebase-poc.yml
@@ -0,0 +1,5 @@
+---
+title: Changed files used for sparse checkout
+merge_request: 1611
+author:
+type: performance
diff --git a/ruby/lib/gitlab/git/repository.rb b/ruby/lib/gitlab/git/repository.rb
index e269ea72c..8979153c4 100644
--- a/ruby/lib/gitlab/git/repository.rb
+++ b/ruby/lib/gitlab/git/repository.rb
@@ -358,7 +358,16 @@ module Gitlab
remote_repo_path = remote_repository.path
end
- with_worktree(worktree, branch, env: env) do
+ diff_range = "#{branch}...#{remote_branch}"
+ diff_files = begin
+ run_git!(
+ %W[diff --name-only #{diff_range}]
+ ).chomp
+ rescue GitError
+ []
+ end
+
+ with_worktree(worktree, branch, sparse_checkout_files: diff_files, env: env) do
run_git!(
%W[pull --rebase #{remote_repo_path} #{remote_branch}],
chdir: worktree.path, env: env, include_stderr: true