Class: Dolt::Git::Repository

Inherits:
EMRugged::Repository
  • Object
show all
Defined in:
lib/dolt/git/repository.rb

Instance Method Summary collapse

Instance Method Details

#blame(ref, path) ⇒ Object



28
29
30
31
32
# File 'lib/dolt/git/repository.rb', line 28

def blame(ref, path)
  deferred_method("blame -l -t -p #{ref} #{path}") do |output, s|
    Dolt::Git::Blame.parse_porcelain(output)
  end
end

#log(ref, path, limit) ⇒ Object



34
35
36
# File 'lib/dolt/git/repository.rb', line 34

def log(ref, path, limit)
  entry_history(ref, path, limit)
end

#tree_history(ref, path, limit = 1) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/dolt/git/repository.rb', line 38

def tree_history(ref, path, limit = 1)
  d = EventMachine::DefaultDeferrable.new
  rp = rev_parse("#{ref}:#{path}")
  rp.errback { |err| d.fail(err) }
  rp.callback do |tree|
    if tree.class != Rugged::Tree
      message = "#{ref}:#{path} is not a tree (#{tree.class.to_s})"
      break d.fail(Exception.new(message))
    end

    building = build_history(path || "./", ref, tree, limit)
    building.callback { |history| d.succeed(history) }
    building.errback { |err| d.fail(err) }
  end
  d
end