end
def compare(project, from, to)
- first = project.commit(to.try(:strip))
- last = project.commit(from.try(:strip))
-
result = {
commits: [],
diffs: [],
- commit: nil
+ commit: nil,
+ same: false
}
+ return result unless from && to
+
+ first = project.commit(to.try(:strip))
+ last = project.commit(from.try(:strip))
+
if first && last
commits = [first, last].sort_by(&:created_at)
younger = commits.first
older = commits.last
+ result[:same] = (younger.id == older.id)
result[:commits] = project.repo.commits_between(younger.id, older.id).map {|c| Commit.new(c)}
result[:diffs] = project.repo.diff(younger.id, older.id) rescue []
result[:commit] = Commit.new(older)
= render "head"
-%h3
+%h3.page_title
Compare View
%hr
%div
- %p
+ %p.slead
Fill input field with commit id like
- %code '4eedf23'
+ %code.label_branch 4eedf23
or branch/tag name like
- %code master
- & press compare button for commits list, code diff.
+ %code.label_branch master
+ and press compare button for commits list, code diff.
%br
= text_field_tag :from, params[:from], placeholder: "master", class: "xlarge"
= "..."
= text_field_tag :to, params[:to], placeholder: "aa8b4ef", class: "xlarge"
+ - if @refs_are_same
+ .alert
+ %span Refs are the same
.actions
- = submit_tag "Compare", class: "btn primary"
+ = submit_tag "Compare", class: "btn primary wide commits-compare-btn"
-
-- unless @commits.empty?
+- if @commits.present?
%div.ui-box
%h5.small Commits (#{@commits.count})
%ul.unstyled= render @commits
-- unless @diffs.empty?
- %h4 Diff
- = render "commits/diffs", diffs: @diffs
+ - unless @diffs.empty?
+ %h4 Diff
+ = render "commits/diffs", diffs: @diffs
:javascript
$(function() {
- var availableTags = #{@project.heads.map(&:name).to_json};
+ var availableTags = #{@project.ref_names.to_json};
$("#from").autocomplete({
source: availableTags,
source: availableTags,
minLength: 1
});
+
+ disableButtonIfEmptyField('#to', '.commits-compare-btn');
});