# HG changeset patch # User Marcin Kuzminski # Date 2020-10-12 12:11:47 # Node ID 10c5ceba293b61d9c34a5f2feadd711fb14073e9 # Parent ea50ffa937495e67a7c9cd0d71e1c2caa415d9bf default-reviewers: handle no common ancestor case. diff --git a/rhodecode/apps/repository/views/repo_review_rules.py b/rhodecode/apps/repository/views/repo_review_rules.py --- a/rhodecode/apps/repository/views/repo_review_rules.py +++ b/rhodecode/apps/repository/views/repo_review_rules.py @@ -72,11 +72,18 @@ class RepoReviewRulesView(RepoAppView): target_type = request.GET['target_ref_type'] target_name = request.GET['target_ref_name'] - review_data = get_default_reviewers_data( - current_user, - source_repo, - Reference(source_type, source_name, source_commit_id), - target_repo, - Reference(target_type, target_name, target_commit_id) - ) + try: + review_data = get_default_reviewers_data( + current_user, + source_repo, + Reference(source_type, source_name, source_commit_id), + target_repo, + Reference(target_type, target_name, target_commit_id) + ) + except ValueError: + # No common ancestor + msg = "No Common ancestor found between target and source reference" + log.exception(msg) + return {'diff_info': {'error': msg}} + return review_data diff --git a/rhodecode/public/js/src/rhodecode/pullrequests.js b/rhodecode/public/js/src/rhodecode/pullrequests.js --- a/rhodecode/public/js/src/rhodecode/pullrequests.js +++ b/rhodecode/public/js/src/rhodecode/pullrequests.js @@ -332,7 +332,10 @@ window.ReviewersController = function () // review rules self.loadReviewRules(data); - self.handleDiffData(data["diff_info"]); + var diffHandled = self.handleDiffData(data["diff_info"]); + if (diffHandled === false) { + return + } for (var i = 0; i < data.reviewers.length; i++) { var reviewer = data.reviewers[i]; @@ -473,7 +476,7 @@ window.ReviewersController = function () }; this.handleDiffData = function (data) { - self.diffDataHandler(data) + return self.diffDataHandler(data) } }; diff --git a/rhodecode/templates/pullrequests/pullrequest.mako b/rhodecode/templates/pullrequests/pullrequest.mako --- a/rhodecode/templates/pullrequests/pullrequest.mako +++ b/rhodecode/templates/pullrequests/pullrequest.mako @@ -309,6 +309,13 @@ var codeMirrorInstance = $('#pullrequest_desc').get(0).MarkupForm.cm; var diffDataHandler = function(data) { + if (data['error'] !== undefined) { + var noCommitsMsg = '{0}'.format(data['error']); + prButtonLock(true, noCommitsMsg, 'compare'); + //make both panels equal + $('.target-panel').height($('.source-panel').height()) + return false + } var commitElements = data['commits']; var files = data['files']; @@ -395,7 +402,8 @@ } //make both panels equal - $('.target-panel').height($('.source-panel').height()) + $('.target-panel').height($('.source-panel').height()); + return true }; reviewersController = new ReviewersController();