Sha256: c530837056ec9e0aee50da8280085733b453067f280f63b21bc33323dd4aedce

Contents?: true

Size: 850 Bytes

Versions: 1

Compression:

Stored size: 850 Bytes

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}
      
      diff = vf_old.unified_diff_with vf_new, :pretty => !opts[:"no-color"]
      Amp::UI::say diff
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
amp-0.5.3 lib/amp/commands/commands/workflows/hg/diff.rb