From ccc85ec3caff5d97aaf8ba4511c6258f88e4ca90 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Feb 10 2016 14:44:43 +0000 Subject: If a project's settings always_merge is True, always do a merge commit --- diff --git a/pagure/lib/git.py b/pagure/lib/git.py index bca19a9..a2d22cb 100644 --- a/pagure/lib/git.py +++ b/pagure/lib/git.py @@ -1038,11 +1038,26 @@ def merge_pull_request( mergecode & pygit2.GIT_MERGE_ANALYSIS_FASTFORWARD)): if domerge: - if merge is not None: - # This is depending on the pygit2 version - branch_ref.target = merge.fastforward_oid - elif merge is None and mergecode is not None: - branch_ref.set_target(repo_commit.oid.hex) + if not request.project.settings.get('always_merge', False): + if merge is not None: + # This is depending on the pygit2 version + branch_ref.target = merge.fastforward_oid + elif merge is None and mergecode is not None: + branch_ref.set_target(repo_commit.oid.hex) + else: + tree = new_repo.index.write_tree() + head = new_repo.lookup_reference('HEAD').get_object() + user_obj = pagure.lib.__get_user(session, username) + author = pygit2.Signature( + user_obj.fullname, + user_obj.default_email) + new_repo.create_commit( + 'refs/heads/%s' % request.branch, + author, + author, + 'Merge #%s `%s`' % (request.id, request.title), + tree, + [head.hex, repo_commit.oid.hex]) PagureRepo.push(ori_remote, refname) else: