diff options
author | Paul Okstad <pokstad@gitlab.com> | 2019-11-15 03:25:32 +0300 |
---|---|---|
committer | Paul Okstad <pokstad@gitlab.com> | 2019-11-15 03:25:32 +0300 |
commit | d42df237d1b771df6c858a984b98fdc000dac2c5 (patch) | |
tree | dd8d475f923f73cc9fcf692e805fc28f66f14a98 | |
parent | 8925c3db0a9ee56f91674fcfb20499a63e0f47ea (diff) | |
parent | deda4a870e81fa0ed3fa73583c6e59a82b777b6c (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.yml | 5 | ||||
-rw-r--r-- | ruby/lib/gitlab/git/repository.rb | 11 |
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 |