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,21 +28,25 @@ class GitlabMerge | ||
28 | end | 28 | end |
29 | 29 | ||
30 | def pull | 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 | end | 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 | end | 47 | end |
48 | + | ||
49 | + rescue Grit::Git::GitTimeout | ||
50 | + return false | ||
47 | end | 51 | end |
48 | end | 52 | end |