Skip to content
Snippets Groups Projects
Verified Commit 810c91fe authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Refactor search by commits message

parent a0d0a017
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -14,6 +14,7 @@ v 8.2.0 (unreleased)
- Fix: 500 error returned if destroy request without HTTP referer (Kazuki Shimizu)
- Remove deprecated CI events from project settings page
- Use issue editor as cross reference comment author when issue is edited with a new mention.
- Include commit logs in project search
 
v 8.1.1
- Fix cloning Wiki repositories via HTTP (Stan Hu)
Loading
Loading
@@ -29,9 +30,6 @@ v 8.1.0
- Ensure MySQL CI limits DB migrations occur after the fields have been created (Stan Hu)
- Fix duplicate repositories in GitHub import page (Stan Hu)
- Redirect to a default path if HTTP_REFERER is not set (Stan Hu)
- Include commit logs in project search
v 8.1.0 (unreleased)
- Send an email to admin email when a user is reported for spam (Jonathan Rochkind)
- Show notifications button when user is member of group rather than project (Grzegorz Bizon)
- Fix bug preventing mentioned issued from being closed when MR is merged using fast-forward merge.
Loading
Loading
Loading
Loading
@@ -33,6 +33,8 @@
}
 
li.commit {
list-style: none;
.commit-row-title {
font-size: $list-font-size;
line-height: 20px;
Loading
Loading
Loading
Loading
@@ -87,12 +87,12 @@ class Repository
commits
end
 
def find_commits_with_matching_log(query)
def find_commits_by_message(query)
# Limited to 1000 commits for now, could be parameterized?
args = %W(git log --pretty=%H --max-count 1000 --grep=#{query})
 
git_log_results = Gitlab::Popen.popen(args, path_to_repo).first.lines.map{ |l| l.chomp }
commits = git_log_results.map{ |c| commit(c) }
git_log_results = Gitlab::Popen.popen(args, path_to_repo).first.lines.map(&:chomp)
commits = git_log_results.map { |c| commit(c) }
commits
end
 
Loading
Loading
Loading
Loading
@@ -46,7 +46,7 @@
= link_to search_filter_path(scope: 'commits') do
= icon('history fw')
%span
Commit Logs
Commits
%span.badge
= @search_results.commits_count
 
Loading
Loading
.search-result-row
.commits-row-title
%strong.str-truncated
= link_to commits.title, namespace_project_commit_path(@project.namespace, @project, commits.id), class: "commit_short_id"
.pull-right
= link_to commits.short_id, namespace_project_commit_path(@project.namespace, @project, commits.id), class: "commit_short_id"
.notes_count
- if @note_counts
- note_count = @note_counts.fetch(commits.id, 0)
- else
- notes = commits.notes
- note_count = notes.user.count
- if note_count > 0
%span.light
%i.fa.fa-comments
= note_count
- if commits.description?
.commits-row-description
%pre
= preserve(gfm(escape_once(commits.description)))
.commits-row-info
= commit_author_link(commits, avatar: true, size: 24)
authored
.committed_ago
#{time_ago_with_tooltip(commits.committed_date)}  
= link_to_browse_code(@project, commits)
%br
= render 'projects/commits/commit', project: @project, commit: commits
Loading
Loading
@@ -77,7 +77,7 @@ module Gitlab
end
 
def commits
project.repository.find_commits_with_matching_log(query)
project.repository.find_commits_by_message(query)
end
 
def limit_project_ids
Loading
Loading
Loading
Loading
@@ -26,8 +26,8 @@ describe Repository do
it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') }
end
 
describe :find_commits_with_matching_log do
subject { repository.find_commits_with_matching_log('submodule').map{ |k| k.id } }
describe :find_commits_by_message do
subject { repository.find_commits_by_message('submodule').map{ |k| k.id } }
 
it { is_expected.to include('5937ac0a7beb003549fc5fd26fc247adbce4a52e') }
it { is_expected.to include('6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment