Sha256: f7602e9908a2db6ce56ad500bcbec5ba40906cbff0e622ea6dedf44415d1b1f4

Contents?: true

Size: 1.17 KB

Versions: 4

Compression:

Stored size: 1.17 KB

Contents

command :diff do |c|
  c.desc "Shows the differences between changesets"
  c.opt :"no-color", "Turns off colored formatting", :short => "-c"
  c.opt :rev, "Specifies a revision for diffing.", :short => "-r", :multi => true, :type => :integer
  c.on_run do |opts, args|
    repo = opts[:repository]
    revs = opts[:rev] || []
    
    revs << "tip" if revs.size == 0
    revs << nil   if revs.size == 1
    
    revs.map! {|key| repo[key]}
    
    differences = repo.status(:node_1 => revs[0], :node_2 => revs[1])
    files = differences[:added] + differences[:removed] + differences[:deleted] + differences[:modified]
    
    files.each do |filename|
      vf_old, vf_new     = revs.map {|rev| rev.get_file filename} 
      date_old, date_new = revs.map {|rev| rev.easy_date }
      path_old, path_new = vf_old.path, vf_new.path || "/dev/null"
      rev_old, rev_new   = vf_old.file_rev, vf_new.file_rev
      
      diff = vf_new.file_log.unified_revision_diff rev_old, date_old, rev_new, 
                                                   date_new, path_old, path_new, 
                                                   :pretty => !opts[:"no-color"]
      Amp::UI::say diff
    end
    
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
amp-0.5.2 lib/amp/commands/commands/workflows/hg/diff.rb
amp-0.5.1 lib/amp/commands/commands/workflows/hg/diff.rb
amp-pure-0.5.0 lib/amp/commands/commands/workflows/hg/diff.rb
amp-0.5.0 lib/amp/commands/commands/workflows/hg/diff.rb