forked from gitlabhq/grit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PURE_TODO
35 lines (25 loc) · 1.52 KB
/
PURE_TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
This is a listing of all the places I can find that Grit actually does a
'git' system call. My goal is to add native Ruby versions of all of them.
Completed
===========================
** lib/grit/blob.rb:36: @size ||= @repo.git.cat_file({:s => true}, id).chomp.to_i
** lib/grit/blob.rb:43: @data ||= @repo.git.cat_file({:p => true}, id)
** lib/grit/tree.rb:16: output = repo.git.ls_tree({}, treeish, *paths)
lib/grit/commit.rb:74: repo.git.rev_list({}, ref).strip.split("\n").size
lib/grit/commit.rb:92: output = repo.git.rev_list(actual_options, ref)
lib/grit/commit.rb:94: output = repo.git.rev_list(actual_options.merge(:all => true))
Next to do
===========================
lib/grit/tag.rb:28: output = repo.git.for_each_ref(actual_options, "refs/tags")
lib/grit/head.rb:37: output = repo.git.for_each_ref(actual_options, HEAD_PREFIX)
lib/grit/head.rb:50: self.new($1, repo.git.rev_parse(options, 'HEAD'))
lib/grit/config.rb:9: @repo.git.config({}, key, value)
lib/grit/config.rb:40: @repo.git.config(:list => true).split(/\n/)
May not be fast enough
=============================
lib/grit/blob.rb:58: data = repo.git.blame({:p => true}, commit, '--', file)
More Difficult
===========================
lib/grit/commit.rb:39: @id_abbrev ||= @repo.git.rev_parse({:short => true}, self.id).chomp
lib/grit/commit.rb:150: text = repo.git.diff({:full_index => true}, *paths)
lib/grit/commit.rb:156: diff = @repo.git.show({:full_index => true, :pretty => 'raw'}, @id)