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 | ... | ... |