Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2016-12-06 13:47:24 +0300
committerLin Jen-Shin <godfat@godfat.org>2016-12-06 13:47:24 +0300
commit65806ec632f2ea1e2087b7cdc64f13e6db49c88a (patch)
tree043e53302145a49cefe4fb4511b2da6b755a8c57 /app/services/git_operation_service.rb
parent444da6f47ed77172471a27386b969e6401d7cf84 (diff)
Re-enable tests for update_branch_with_hooks and
Add back check if we're losing commits in a merge.
Diffstat (limited to 'app/services/git_operation_service.rb')
-rw-r--r--app/services/git_operation_service.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/app/services/git_operation_service.rb b/app/services/git_operation_service.rb
index 88175c6931d..c34d4bde150 100644
--- a/app/services/git_operation_service.rb
+++ b/app/services/git_operation_service.rb
@@ -102,9 +102,20 @@ GitOperationService = Struct.new(:user, :repository) do
raise Repository::CommitError.new('Failed to create commit')
end
- service.newrev = nextrev
+ branch =
+ repository.find_branch(ref[Gitlab::Git::BRANCH_REF_PREFIX.size..-1])
+
+ prevrev = if branch &&
+ !repository.rugged.lookup(nextrev).parent_ids.empty?
+ repository.rugged.merge_base(
+ nextrev, branch.dereferenced_target.sha)
+ else
+ newrev
+ end
- update_ref!(ref, nextrev, newrev)
+ update_ref!(ref, nextrev, prevrev)
+
+ service.newrev = nextrev
# If repo was empty expire cache
repository.after_create if was_empty