summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-09-25 13:58:20 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-09-25 13:58:20 +0000
commit3a72af480d5a89a0cf5fd27e65e473c49e63eaad (patch)
tree283ce8045df34394b32a674ad4f82123669d2b1d /lib
parent9cd5ff043a72001201b4c8192a45f8029ebe84ac (diff)
parenteaeb4a90d431ff5e1e6156c10f3118f70c3c4f8e (diff)
downloadgitlab-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.rb4
-rw-r--r--lib/gitlab/diff/file.rb2
-rw-r--r--lib/gitlab/project_search_results.rb16
-rw-r--r--lib/gitlab/satellite/merge_action.rb22
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