From a4522bc3c7ab71bff3d603503d509399dd6f049f Mon Sep 17 00:00:00 2001 From: Alexander Machehin Date: Thu, 21 Mar 2013 22:55:12 +0600 Subject: [PATCH] add one more check for merging pull requests --- app/models/pull_request.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/pull_request.rb b/app/models/pull_request.rb index 77a769dce..446e839a2 100644 --- a/app/models/pull_request.rb +++ b/app/models/pull_request.rb @@ -78,12 +78,17 @@ class PullRequest < ActiveRecord::Base def merge!(who) return false unless can_merging? Dir.chdir(path) do + old_commit = to_project.repo.commits(to_ref).first commit = repo.commits(to_ref).first system "git config user.name \"#{who.uname}\" && git config user.email \"#{who.email}\"" res = merge if commit.id != repo.commits(to_ref).first.id - system("export GL_ID=user-#{who.id} && git push origin HEAD") + res2 = %x(export GL_ID=user-#{who.id} && git push origin HEAD) system("git reset --hard HEAD^") # for diff maybe FIXME + + if old_commit.id == to_project.repo.commits(to_ref).first.id + raise "merge result pull_request #{id}: #{res}; #{res2}" + end set_user_and_time who merging else # Try to catch no merge errors