diff options
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r-- | app/models/repository.rb | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index 46efbede2a2..807b33b2a3e 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -411,36 +411,15 @@ class Repository } end - def can_be_merged?(source_sha, target_branch) + def can_be_merged?(source_branch, target_branch) our_commit = rugged.branches[target_branch].target - their_commit = rugged.lookup(source_sha) + their_commit = rugged.branches[source_branch].target if our_commit && their_commit !rugged.merge_commits(our_commit, their_commit).conflicts? - else - false end end - def merge(source_sha, target_branch, options = {}) - our_commit = rugged.branches[target_branch].target - their_commit = rugged.lookup(source_sha) - - raise "Invalid merge target" if our_commit.nil? - raise "Invalid merge source" if their_commit.nil? - - merge_index = rugged.merge_commits(our_commit, their_commit) - return false if merge_index.conflicts? - - actual_options = options.merge( - parents: [our_commit, their_commit], - tree: merge_index.write_tree(rugged), - update_ref: "refs/heads/#{target_branch}" - ) - - Rugged::Commit.create(rugged, actual_options) - end - def search_files(query, ref) offset = 2 args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} #{query} #{ref || root_ref}) @@ -474,11 +453,6 @@ class Repository ) end - def fetch_ref(source_path, source_ref, target_ref) - args = %W(git fetch #{source_path} #{source_ref}:#{target_ref}) - Gitlab::Popen.popen(args, path_to_repo) - end - private def cache |