Commit 58064027408bcbfb9e6216a3157dffd9c324848d

Authored by Izaak Alpert
1 parent 0e82c981

Raise Error for diff_between/commit_between for non fork mr's in satellite

-Fixed tests to account for this
-Trigger update after update_branches for list:update selecting first commit, have it also trigger sha lookup

Change-Id: Ie4c3d4fbf57aeadd7d141d3704f4ea0f0684a7a5
app/views/projects/merge_requests/update_branches.js.haml
1 1 :plain
2 2 $(".target_branch").html("#{escape_javascript(options_for_select(@target_branches))}");
3 3 $(".target_branch").trigger("liszt:updated");
4   - $(".mr_target_commit").html("");
5 4 \ No newline at end of file
  5 + $(".mr_target_commit").html("");
  6 + $(".target_branch").trigger("change");
6 7 \ No newline at end of file
... ...
lib/gitlab/satellite/merge_action.rb
... ... @@ -74,9 +74,7 @@ module Gitlab
74 74 #this method doesn't take default options
75 75 diffs = merge_repo.diff(common_commit, "source/#{merge_request.source_branch}")
76 76 else
77   - common_commit = merge_repo.git.native(:merge_base, default_options, ["#{merge_request.target_branch}", "#{merge_request.source_branch}"]).strip
78   - #this method doesn't take default options
79   - diffs = merge_repo.diff(common_commit, "#{merge_request.source_branch}")
  77 + raise "Attempt to determine diffs between for a non forked merge request in satellite MergeRequest.id:[#{merge_request.id}]"
80 78 end
81 79 diffs = diffs.map { |diff| Gitlab::Git::Diff.new(diff) }
82 80 return diffs
... ... @@ -109,7 +107,7 @@ module Gitlab
109 107 if (merge_request.for_fork?)
110 108 commits = merge_repo.commits_between("origin/#{merge_request.target_branch}", "source/#{merge_request.source_branch}")
111 109 else
112   - commits = merge_repo.commits_between("#{merge_request.target_branch}", "#{merge_request.source_branch}")
  110 + raise "Attempt to determine commits between for a non forked merge request in satellite MergeRequest.id:[#{merge_request.id}]"
113 111 end
114 112 commits = commits.map { |commit| Gitlab::Git::Commit.new(commit, nil) }
115 113 return commits
... ...
spec/lib/gitlab/satellite/merge_action_spec.rb
... ... @@ -38,16 +38,14 @@ describe 'Gitlab::Satellite::MergeAction' do
38 38 end
39 39  
40 40 context 'between branches' do
41   - it 'should get proper commits between' do
  41 + it 'should raise exception -- not expected to be used by non forks' do
42 42 merge_request.target_branch = @one_after_stable[0]
43 43 merge_request.source_branch = @master[0]
44   - commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between
45   - verify_commits(commits, @one_after_stable[1], @master[1])
  44 + expect {Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between}.to raise_error
46 45  
47 46 merge_request.target_branch = @wiki_branch[0]
48 47 merge_request.source_branch = @master[0]
49   - commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between
50   - verify_commits(commits, @wiki_branch[1], @master[1])
  48 + expect {Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between}.to raise_error
51 49 end
52 50 end
53 51 end
... ... @@ -104,13 +102,7 @@ describe 'Gitlab::Satellite::MergeAction' do
104 102 it 'should get proper diffs' do
105 103 merge_request.target_branch = @close_commit1[0]
106 104 merge_request.source_branch = @master[0]
107   - diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite
108   -
109   - merge_request.target_branch = @close_commit1[0]
110   - merge_request.source_branch = @master[0]
111   - diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite
112   -
113   - is_a_matching_diff(diff, diffs)
  105 + expect{Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite}.to raise_error
114 106 end
115 107 end
116 108 end
... ...