Commit ae565d24ee6c0d1f26bc47b3419ca2b58474d7a3
1 parent
7058258a
Exists in
master
and in
4 other branches
Increased automerge timeout. Works for 300 commits MR on repo with 200MB size
Showing
1 changed file
with
18 additions
and
14 deletions
Show diff stats
lib/gitlab_merge.rb
... | ... | @@ -28,21 +28,25 @@ class GitlabMerge |
28 | 28 | end |
29 | 29 | |
30 | 30 | def pull |
31 | - File.open(File.join(Rails.root, "tmp", "merge_repo", "#{project.path}.lock"), "w+") do |f| | |
32 | - f.flock(File::LOCK_EX) | |
33 | - | |
34 | - self.project.repo.git.clone({:branch => merge_request.target_branch}, project.url_to_repo, merge_path) | |
35 | - unless File.exist?(self.merge_path) | |
36 | - raise "Gitlab user do not have access to repo. You should run: rake gitlab_enable_automerge" | |
31 | + Grit::Git.with_timeout(30.seconds) do | |
32 | + File.open(File.join(Rails.root, "tmp", "merge_repo", "#{project.path}.lock"), "w+") do |f| | |
33 | + f.flock(File::LOCK_EX) | |
34 | + | |
35 | + self.project.repo.git.clone({:branch => merge_request.target_branch}, project.url_to_repo, merge_path) | |
36 | + unless File.exist?(self.merge_path) | |
37 | + raise "Gitlab user do not have access to repo. You should run: rake gitlab_enable_automerge" | |
38 | + end | |
39 | + Dir.chdir(merge_path) do | |
40 | + merge_repo = Grit::Repo.new('.') | |
41 | + merge_repo.git.sh "git config user.name \"#{user.name}\"" | |
42 | + merge_repo.git.sh "git config user.email \"#{user.email}\"" | |
43 | + output = merge_repo.git.pull({}, "--no-ff", "origin", merge_request.source_branch) | |
44 | + yield(merge_repo, output) | |
45 | + end | |
37 | 46 | end |
38 | - Dir.chdir(merge_path) do | |
39 | - merge_repo = Grit::Repo.new('.') | |
40 | - merge_repo.git.sh "git config user.name \"#{user.name}\"" | |
41 | - merge_repo.git.sh "git config user.email \"#{user.email}\"" | |
42 | - output = merge_repo.git.pull({}, "--no-ff", "origin", merge_request.source_branch) | |
43 | - yield(merge_repo, output) | |
44 | - end | |
45 | - | |
46 | 47 | end |
48 | + | |
49 | + rescue Grit::Git::GitTimeout | |
50 | + return false | |
47 | 51 | end |
48 | 52 | end | ... | ... |