diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-25 13:58:20 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-25 13:58:20 +0000 |
commit | 3a72af480d5a89a0cf5fd27e65e473c49e63eaad (patch) | |
tree | 283ce8045df34394b32a674ad4f82123669d2b1d /lib | |
parent | 9cd5ff043a72001201b4c8192a45f8029ebe84ac (diff) | |
parent | eaeb4a90d431ff5e1e6156c10f3118f70c3c4f8e (diff) | |
download | gitlab-ce-3a72af480d5a89a0cf5fd27e65e473c49e63eaad.tar.gz |
Merge branch 'use-more-rugged' into 'master'
Make GitLab CE works with new gitlab_git
Recently we removed grit dependency from `gitlab_git` in favor of rugged.
This changes make GitLab works with new library.
See merge request !194
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/branches.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/diff/file.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/project_search_results.rb | 16 | ||||
-rw-r--r-- | lib/gitlab/satellite/merge_action.rb | 22 |
4 files changed, 27 insertions, 17 deletions
diff --git a/lib/api/branches.rb b/lib/api/branches.rb index 75783628e3d..14f8b20f6b2 100644 --- a/lib/api/branches.rb +++ b/lib/api/branches.rb @@ -14,7 +14,7 @@ module API # Example Request: # GET /projects/:id/repository/branches get ":id/repository/branches" do - present user_project.repo.heads.sort_by(&:name), with: Entities::RepoObject, project: user_project + present user_project.repository.branches.sort_by(&:name), with: Entities::RepoObject, project: user_project end # Get a single branch @@ -25,7 +25,7 @@ module API # Example Request: # GET /projects/:id/repository/branches/:branch get ':id/repository/branches/:branch', requirements: { branch: /.*/ } do - @branch = user_project.repo.heads.find { |item| item.name == params[:branch] } + @branch = user_project.repository.branches.find { |item| item.name == params[:branch] } not_found!("Branch does not exist") if @branch.nil? present @branch, with: Entities::RepoObject, project: user_project end diff --git a/lib/gitlab/diff/file.rb b/lib/gitlab/diff/file.rb index 19a1198c68c..4daf65331e8 100644 --- a/lib/gitlab/diff/file.rb +++ b/lib/gitlab/diff/file.rb @@ -24,7 +24,7 @@ module Gitlab end def raw_diff - diff.diff + diff.diff.to_s end def next_line(index) diff --git a/lib/gitlab/project_search_results.rb b/lib/gitlab/project_search_results.rb index 9dc8b34d9c7..8b85f3da83f 100644 --- a/lib/gitlab/project_search_results.rb +++ b/lib/gitlab/project_search_results.rb @@ -4,7 +4,11 @@ module Gitlab def initialize(project_id, query, repository_ref = nil) @project = Project.find(project_id) - @repository_ref = repository_ref + @repository_ref = if repository_ref.present? + repository_ref + else + nil + end @query = Shellwords.shellescape(query) if query.present? end @@ -41,7 +45,7 @@ module Gitlab private def blobs - if project.empty_repo? + if project.empty_repo? || query.blank? [] else project.repository.search_files(query, repository_ref) @@ -49,11 +53,11 @@ module Gitlab end def wiki_blobs - if project.wiki_enabled? - wiki_repo = Repository.new(ProjectWiki.new(project).path_with_namespace) + if project.wiki_enabled? && query.present? + project_wiki = ProjectWiki.new(project) - if wiki_repo.exists? - wiki_repo.search_files(query) + unless project_wiki.empty? + project_wiki.search_files(query) else [] end diff --git a/lib/gitlab/satellite/merge_action.rb b/lib/gitlab/satellite/merge_action.rb index 7c9b2294647..e9141f735aa 100644 --- a/lib/gitlab/satellite/merge_action.rb +++ b/lib/gitlab/satellite/merge_action.rb @@ -65,15 +65,16 @@ module Gitlab prepare_satellite!(merge_repo) update_satellite_source_and_target!(merge_repo) if merge_request.for_fork? - # Only show what is new in the source branch compared to the target branch, not the other way around. - # The line below with merge_base is equivalent to diff with three dots (git diff branch1...branch2) - # From the git documentation: "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B" - common_commit = merge_repo.git.native(:merge_base, default_options, ["origin/#{merge_request.target_branch}", "source/#{merge_request.source_branch}"]).strip - diffs = merge_repo.diff(common_commit, "source/#{merge_request.source_branch}") + repository = Gitlab::Git::Repository.new(merge_repo.path) + diffs = Gitlab::Git::Diff.between( + repository, + "source/#{merge_request.source_branch}", + "origin/#{merge_request.target_branch}" + ) else raise "Attempt to determine diffs between for a non forked merge request in satellite MergeRequest.id:[#{merge_request.id}]" end - diffs = diffs.map { |diff| Gitlab::Git::Diff.new(diff) } + return diffs end rescue Grit::Git::CommandFailed => ex @@ -97,11 +98,16 @@ module Gitlab prepare_satellite!(merge_repo) update_satellite_source_and_target!(merge_repo) if (merge_request.for_fork?) - commits = merge_repo.commits_between("origin/#{merge_request.target_branch}", "source/#{merge_request.source_branch}") + repository = Gitlab::Git::Repository.new(merge_repo.path) + commits = Gitlab::Git::Commit.between( + repository, + "origin/#{merge_request.target_branch}", + "source/#{merge_request.source_branch}" + ) else raise "Attempt to determine commits between for a non forked merge request in satellite MergeRequest.id:[#{merge_request.id}]" end - commits = commits.map { |commit| Gitlab::Git::Commit.new(commit, nil) } + return commits end rescue Grit::Git::CommandFailed => ex |