grit 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grit might be problematic. Click here for more details.
- data/History.txt +21 -0
- data/PURE_TODO +35 -0
- data/Rakefile +149 -0
- data/{test/bench/benchmarks.rb → benchmarks.rb} +6 -3
- data/benchmarks.txt +21 -0
- data/examples/ex_index.rb +7 -0
- data/grit.gemspec +76 -0
- data/lib/grit.rb +7 -5
- data/lib/grit/commit.rb +26 -12
- data/lib/grit/diff.rb +22 -13
- data/lib/grit/errors.rb +4 -1
- data/lib/grit/git-ruby.rb +12 -7
- data/lib/grit/git-ruby/git_object.rb +2 -2
- data/lib/grit/git-ruby/internal/loose.rb +1 -1
- data/lib/grit/git-ruby/internal/pack.rb +2 -0
- data/lib/grit/git-ruby/repository.rb +33 -6
- data/lib/grit/git.rb +9 -4
- data/lib/grit/index.rb +1 -1
- data/lib/{open3_detach.rb → grit/open3_detach.rb} +0 -0
- data/lib/grit/ref.rb +3 -1
- data/lib/grit/repo.rb +81 -1
- data/lib/grit/tag.rb +57 -4
- data/lib/grit/tree.rb +1 -1
- metadata +30 -46
- data/VERSION.yml +0 -4
- data/test/helper.rb +0 -18
- data/test/profile.rb +0 -21
- data/test/suite.rb +0 -6
- data/test/test_actor.rb +0 -35
- data/test/test_blame.rb +0 -32
- data/test/test_blame_tree.rb +0 -33
- data/test/test_blob.rb +0 -83
- data/test/test_commit.rb +0 -207
- data/test/test_commit_stats.rb +0 -33
- data/test/test_commit_write.rb +0 -20
- data/test/test_config.rb +0 -58
- data/test/test_diff.rb +0 -18
- data/test/test_file_index.rb +0 -56
- data/test/test_git.rb +0 -105
- data/test/test_grit.rb +0 -32
- data/test/test_head.rb +0 -47
- data/test/test_index_status.rb +0 -40
- data/test/test_merge.rb +0 -17
- data/test/test_raw.rb +0 -16
- data/test/test_real.rb +0 -19
- data/test/test_reality.rb +0 -17
- data/test/test_remote.rb +0 -14
- data/test/test_repo.rb +0 -349
- data/test/test_rubygit.rb +0 -192
- data/test/test_rubygit_alt.rb +0 -40
- data/test/test_rubygit_index.rb +0 -76
- data/test/test_rubygit_iv2.rb +0 -28
- data/test/test_submodule.rb +0 -69
- data/test/test_tag.rb +0 -67
- data/test/test_tree.rb +0 -101
data/test/test_real.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# require File.dirname(__FILE__) + '/helper'
|
2
|
-
#
|
3
|
-
# class TestReal < Test::Unit::TestCase
|
4
|
-
# def setup
|
5
|
-
# `rm -fr /Users/tom/dev/sandbox/grittest.git`
|
6
|
-
# `git --git-dir=/Users/tom/dev/sandbox/grittest.git init`
|
7
|
-
# @repo = Repo.new('/Users/tom/dev/sandbox/grittest.git')
|
8
|
-
# end
|
9
|
-
#
|
10
|
-
# def test_real
|
11
|
-
# Grit.debug = true
|
12
|
-
#
|
13
|
-
# index = @repo.index
|
14
|
-
# index.add('foo/bar/baz.txt', 'hello!')
|
15
|
-
# index.add('foo/qux/bam.txt', 'world!')
|
16
|
-
#
|
17
|
-
# puts index.commit('first commit')
|
18
|
-
# end
|
19
|
-
# end
|
data/test/test_reality.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
# class TestTreeRecursion < Test::Unit::TestCase
|
4
|
-
# def test_
|
5
|
-
# r = Repo.new("/Users/tom/dev/god")
|
6
|
-
# t = r.tree("HEAD")
|
7
|
-
#
|
8
|
-
# recurse(t)
|
9
|
-
# end
|
10
|
-
#
|
11
|
-
# def recurse(tree, indent = "")
|
12
|
-
# tree.contents.each do |c|
|
13
|
-
# # puts "#{indent}#{c.name} (#{c.id})"
|
14
|
-
# recurse(c, indent + " ") if c.kind_of?(Tree)
|
15
|
-
# end
|
16
|
-
# end
|
17
|
-
# end
|
data/test/test_remote.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class TestRemote < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@r = Repo.new(GRIT_REPO)
|
6
|
-
end
|
7
|
-
|
8
|
-
# inspect
|
9
|
-
|
10
|
-
def test_inspect
|
11
|
-
remote = @r.remotes.first
|
12
|
-
assert_equal %Q{#<Grit::Remote "#{remote.name}">}, remote.inspect
|
13
|
-
end
|
14
|
-
end
|
data/test/test_repo.rb
DELETED
@@ -1,349 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class TestRepo < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@r = Repo.new(GRIT_REPO)
|
6
|
-
end
|
7
|
-
|
8
|
-
def create_temp_repo(clone_path)
|
9
|
-
filename = 'git_test' + Time.now.to_i.to_s + rand(300).to_s.rjust(3, '0')
|
10
|
-
tmp_path = File.join("/tmp/", filename)
|
11
|
-
FileUtils.mkdir_p(tmp_path)
|
12
|
-
FileUtils.cp_r(clone_path, tmp_path)
|
13
|
-
File.join(tmp_path, 'dot_git')
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_update_refs_packed
|
17
|
-
gpath = create_temp_repo(File.join(File.dirname(__FILE__), *%w[dot_git]))
|
18
|
-
@git = Grit::Repo.new(gpath, :is_bare => true)
|
19
|
-
|
20
|
-
# new and existing
|
21
|
-
test = 'ac9a30f5a7f0f163bbe3b6f0abf18a6c83b06872'
|
22
|
-
master = 'ca8a30f5a7f0f163bbe3b6f0abf18a6c83b0687a'
|
23
|
-
|
24
|
-
@git.update_ref('testref', test)
|
25
|
-
new_t = @git.get_head('testref').commit.sha
|
26
|
-
assert new_t != master
|
27
|
-
|
28
|
-
@git.update_ref('master', test)
|
29
|
-
new_m = @git.get_head('master').commit.sha
|
30
|
-
assert new_m != master
|
31
|
-
|
32
|
-
old = @git.get_head('nonpack').commit.sha
|
33
|
-
@git.update_ref('nonpack', test)
|
34
|
-
newp = @git.get_head('nonpack').commit.sha
|
35
|
-
assert newp != old
|
36
|
-
|
37
|
-
FileUtils.rm_r(gpath)
|
38
|
-
end
|
39
|
-
|
40
|
-
# new
|
41
|
-
|
42
|
-
def test_new_should_raise_on_invalid_repo_location
|
43
|
-
assert_raise(InvalidGitRepositoryError) do
|
44
|
-
Repo.new("/tmp")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_new_should_raise_on_non_existant_path
|
49
|
-
assert_raise(NoSuchPathError) do
|
50
|
-
Repo.new("/foobar")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# descriptions
|
55
|
-
|
56
|
-
def test_description
|
57
|
-
assert_equal "Unnamed repository; edit this file to name it for gitweb.", @r.description
|
58
|
-
end
|
59
|
-
|
60
|
-
# refs
|
61
|
-
|
62
|
-
def test_refs_should_return_array_of_ref_objects
|
63
|
-
@r.refs.each do |ref|
|
64
|
-
assert ref.is_a?(Grit::Ref)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# heads
|
69
|
-
|
70
|
-
def test_current_head
|
71
|
-
@r = Repo.new(File.join(File.dirname(__FILE__), *%w[dot_git]), :is_bare => true)
|
72
|
-
head = @r.head
|
73
|
-
assert_equal Grit::Head, head.class
|
74
|
-
assert_equal 'master', head.name
|
75
|
-
assert_equal 'ca8a30f5a7f0f163bbe3b6f0abf18a6c83b0687a', @r.commits(head.name).first.id
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_heads_should_return_array_of_head_objects
|
79
|
-
@r.heads.each do |head|
|
80
|
-
assert_equal Grit::Head, head.class
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def test_heads_should_populate_head_data
|
85
|
-
@r = Repo.new(File.join(File.dirname(__FILE__), *%w[dot_git]), :is_bare => true)
|
86
|
-
head = @r.heads[1]
|
87
|
-
|
88
|
-
assert_equal 'test/master', head.name
|
89
|
-
assert_equal '2d3acf90f35989df8f262dc50beadc4ee3ae1560', head.commit.id
|
90
|
-
end
|
91
|
-
|
92
|
-
# branches
|
93
|
-
|
94
|
-
def test_branches
|
95
|
-
# same as heads
|
96
|
-
end
|
97
|
-
|
98
|
-
# commits
|
99
|
-
|
100
|
-
def test_commits
|
101
|
-
Git.any_instance.expects(:rev_list).returns(fixture('rev_list'))
|
102
|
-
|
103
|
-
commits = @r.commits('master', 10)
|
104
|
-
|
105
|
-
c = commits[0]
|
106
|
-
assert_equal '4c8124ffcf4039d292442eeccabdeca5af5c5017', c.id
|
107
|
-
assert_equal ["634396b2f541a9f2d58b00be1a07f0c358b999b3"], c.parents.map { |p| p.id }
|
108
|
-
assert_equal "672eca9b7f9e09c22dcb128c283e8c3c8d7697a4", c.tree.id
|
109
|
-
assert_equal "Tom Preston-Werner", c.author.name
|
110
|
-
assert_equal "tom@mojombo.com", c.author.email
|
111
|
-
assert_equal Time.at(1191999972), c.authored_date
|
112
|
-
assert_equal "Tom Preston-Werner", c.committer.name
|
113
|
-
assert_equal "tom@mojombo.com", c.committer.email
|
114
|
-
assert_equal Time.at(1191999972), c.committed_date
|
115
|
-
assert_equal "implement Grit#heads", c.message
|
116
|
-
|
117
|
-
c = commits[1]
|
118
|
-
assert_equal [], c.parents
|
119
|
-
|
120
|
-
c = commits[2]
|
121
|
-
assert_equal ["6e64c55896aabb9a7d8e9f8f296f426d21a78c2c", "7f874954efb9ba35210445be456c74e037ba6af2"], c.parents.map { |p| p.id }
|
122
|
-
assert_equal "Merge branch 'site'\n\n * Some other stuff\n * just one more", c.message
|
123
|
-
assert_equal "Merge branch 'site'", c.short_message
|
124
|
-
end
|
125
|
-
|
126
|
-
# commit_count
|
127
|
-
|
128
|
-
def test_commit_count
|
129
|
-
Git.any_instance.expects(:rev_list).with({}, 'master').returns(fixture('rev_list_count'))
|
130
|
-
|
131
|
-
assert_equal 655, @r.commit_count('master')
|
132
|
-
end
|
133
|
-
|
134
|
-
# commit
|
135
|
-
|
136
|
-
def test_commit
|
137
|
-
commit = @r.commit('634396b2f541a9f2d58b00be1a07f0c358b999b3')
|
138
|
-
|
139
|
-
assert_equal "634396b2f541a9f2d58b00be1a07f0c358b999b3", commit.id
|
140
|
-
end
|
141
|
-
|
142
|
-
# tree
|
143
|
-
|
144
|
-
def test_tree
|
145
|
-
Git.any_instance.expects(:ls_tree).returns(fixture('ls_tree_a'))
|
146
|
-
tree = @r.tree('master')
|
147
|
-
|
148
|
-
assert_equal 4, tree.contents.select { |c| c.instance_of?(Blob) }.size
|
149
|
-
assert_equal 3, tree.contents.select { |c| c.instance_of?(Tree) }.size
|
150
|
-
end
|
151
|
-
|
152
|
-
# blob
|
153
|
-
|
154
|
-
def test_blob
|
155
|
-
Git.any_instance.expects(:cat_file).returns(fixture('cat_file_blob'))
|
156
|
-
blob = @r.blob("abc")
|
157
|
-
assert_equal "Hello world", blob.data
|
158
|
-
end
|
159
|
-
|
160
|
-
# init_bare
|
161
|
-
|
162
|
-
def test_init_bare
|
163
|
-
Git.any_instance.expects(:init).returns(true)
|
164
|
-
Repo.expects(:new).with("/foo/bar.git", {})
|
165
|
-
Repo.init_bare("/foo/bar.git")
|
166
|
-
end
|
167
|
-
|
168
|
-
def test_init_bare_with_options
|
169
|
-
Git.any_instance.expects(:init).with(
|
170
|
-
:bare => true, :template => "/baz/sweet").returns(true)
|
171
|
-
Repo.expects(:new).with("/foo/bar.git", {})
|
172
|
-
Repo.init_bare("/foo/bar.git", :template => "/baz/sweet")
|
173
|
-
end
|
174
|
-
|
175
|
-
# fork_bare
|
176
|
-
|
177
|
-
def test_fork_bare
|
178
|
-
Git.any_instance.expects(:clone).with(
|
179
|
-
{:bare => true, :shared => true},
|
180
|
-
"#{absolute_project_path}/.git",
|
181
|
-
"/foo/bar.git").returns(nil)
|
182
|
-
Repo.expects(:new)
|
183
|
-
|
184
|
-
@r.fork_bare("/foo/bar.git")
|
185
|
-
end
|
186
|
-
|
187
|
-
def test_fork_bare_with_options
|
188
|
-
Git.any_instance.expects(:clone).with(
|
189
|
-
{:bare => true, :shared => true, :template => '/awesome'},
|
190
|
-
"#{absolute_project_path}/.git",
|
191
|
-
"/foo/bar.git").returns(nil)
|
192
|
-
Repo.expects(:new)
|
193
|
-
|
194
|
-
@r.fork_bare("/foo/bar.git", :template => '/awesome')
|
195
|
-
end
|
196
|
-
|
197
|
-
# diff
|
198
|
-
|
199
|
-
def test_diff
|
200
|
-
Git.any_instance.expects(:diff).with({}, 'master^', 'master', '--')
|
201
|
-
@r.diff('master^', 'master')
|
202
|
-
|
203
|
-
Git.any_instance.expects(:diff).with({}, 'master^', 'master', '--', 'foo/bar')
|
204
|
-
@r.diff('master^', 'master', 'foo/bar')
|
205
|
-
|
206
|
-
Git.any_instance.expects(:diff).with({}, 'master^', 'master', '--', 'foo/bar', 'foo/baz')
|
207
|
-
@r.diff('master^', 'master', 'foo/bar', 'foo/baz')
|
208
|
-
end
|
209
|
-
|
210
|
-
# commit_diff
|
211
|
-
|
212
|
-
def test_diff
|
213
|
-
Git.any_instance.expects(:diff).returns(fixture('diff_p'))
|
214
|
-
diffs = @r.commit_diff('master')
|
215
|
-
|
216
|
-
assert_equal 15, diffs.size
|
217
|
-
end
|
218
|
-
|
219
|
-
# init bare
|
220
|
-
|
221
|
-
# archive
|
222
|
-
|
223
|
-
def test_archive_tar
|
224
|
-
#@r.archive_tar -- no assertion being done here
|
225
|
-
end
|
226
|
-
|
227
|
-
# archive_tar_gz
|
228
|
-
|
229
|
-
def test_archive_tar_gz
|
230
|
-
#@r.archive_tar_gz -- again, no assertion
|
231
|
-
end
|
232
|
-
|
233
|
-
# enable_daemon_serve
|
234
|
-
|
235
|
-
def test_enable_daemon_serve
|
236
|
-
f = stub
|
237
|
-
f.expects("write").with('')
|
238
|
-
File.expects(:open).with(File.join(@r.path, 'git-daemon-export-ok'), 'w').yields(f)
|
239
|
-
@r.enable_daemon_serve
|
240
|
-
end
|
241
|
-
|
242
|
-
# disable_daemon_serve
|
243
|
-
|
244
|
-
def test_disable_daemon_serve
|
245
|
-
FileUtils.expects(:rm_rf).with(File.join(@r.path, 'git-daemon-export-ok'))
|
246
|
-
@r.disable_daemon_serve
|
247
|
-
end
|
248
|
-
|
249
|
-
def test_gc_auto
|
250
|
-
Git.any_instance.expects(:gc).with({:auto => true})
|
251
|
-
@r.gc_auto
|
252
|
-
end
|
253
|
-
|
254
|
-
# alternates
|
255
|
-
|
256
|
-
def test_alternates_with_two_alternates
|
257
|
-
File.expects(:exist?).with("#{absolute_project_path}/.git/objects/info/alternates").returns(true)
|
258
|
-
File.any_instance.expects(:read).returns("/path/to/repo1/.git/objects\n/path/to/repo2.git/objects\n")
|
259
|
-
|
260
|
-
assert_equal ["/path/to/repo1/.git/objects", "/path/to/repo2.git/objects"], @r.alternates
|
261
|
-
end
|
262
|
-
|
263
|
-
def test_alternates_no_file
|
264
|
-
File.expects(:exist?).returns(false)
|
265
|
-
|
266
|
-
assert_equal [], @r.alternates
|
267
|
-
end
|
268
|
-
|
269
|
-
# alternates=
|
270
|
-
|
271
|
-
def test_alternates_setter_ok
|
272
|
-
alts = %w{/path/to/repo.git/objects /path/to/repo2.git/objects}
|
273
|
-
|
274
|
-
alts.each do |alt|
|
275
|
-
File.expects(:exist?).with(alt).returns(true)
|
276
|
-
end
|
277
|
-
|
278
|
-
File.any_instance.expects(:write).with(alts.join("\n"))
|
279
|
-
|
280
|
-
assert_nothing_raised do
|
281
|
-
@r.alternates = alts
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
|
-
def test_alternates_setter_bad
|
286
|
-
alts = %w{/path/to/repo.git/objects}
|
287
|
-
|
288
|
-
alts.each do |alt|
|
289
|
-
File.expects(:exist?).with(alt).returns(false)
|
290
|
-
end
|
291
|
-
|
292
|
-
File.any_instance.expects(:write).never
|
293
|
-
|
294
|
-
assert_raise RuntimeError do
|
295
|
-
@r.alternates = alts
|
296
|
-
end
|
297
|
-
end
|
298
|
-
|
299
|
-
def test_alternates_setter_empty
|
300
|
-
File.any_instance.expects(:write)
|
301
|
-
@r.alternates = []
|
302
|
-
end
|
303
|
-
|
304
|
-
# inspect
|
305
|
-
|
306
|
-
def test_inspect
|
307
|
-
assert_equal %Q{#<Grit::Repo "#{File.expand_path(GRIT_REPO)}/.git">}, @r.inspect
|
308
|
-
end
|
309
|
-
|
310
|
-
# log
|
311
|
-
|
312
|
-
def test_log
|
313
|
-
Git.any_instance.expects(:log).times(2).with({:pretty => 'raw'}, 'master').returns(fixture('rev_list'))
|
314
|
-
|
315
|
-
assert_equal '4c8124ffcf4039d292442eeccabdeca5af5c5017', @r.log.first.id
|
316
|
-
assert_equal 'ab25fd8483882c3bda8a458ad2965d2248654335', @r.log.last.id
|
317
|
-
end
|
318
|
-
|
319
|
-
def test_log_with_path_and_options
|
320
|
-
Git.any_instance.expects(:log).with({:pretty => 'raw', :max_count => 1}, 'master', '--', 'file.rb').returns(fixture('rev_list'))
|
321
|
-
@r.log('master', 'file.rb', :max_count => 1)
|
322
|
-
end
|
323
|
-
|
324
|
-
# commit_deltas_from
|
325
|
-
|
326
|
-
def test_commit_deltas_from_nothing_new
|
327
|
-
other_repo = Repo.new(GRIT_REPO)
|
328
|
-
@r.git.expects(:rev_list).with({}, "master").returns(fixture("rev_list_delta_b"))
|
329
|
-
other_repo.git.expects(:rev_list).with({}, "master").returns(fixture("rev_list_delta_a"))
|
330
|
-
|
331
|
-
delta_blobs = @r.commit_deltas_from(other_repo)
|
332
|
-
assert_equal 0, delta_blobs.size
|
333
|
-
end
|
334
|
-
|
335
|
-
def test_commit_deltas_from_when_other_has_new
|
336
|
-
other_repo = Repo.new(GRIT_REPO)
|
337
|
-
@r.git.expects(:rev_list).with({}, "master").returns(fixture("rev_list_delta_a"))
|
338
|
-
other_repo.git.expects(:rev_list).with({}, "master").returns(fixture("rev_list_delta_b"))
|
339
|
-
%w[
|
340
|
-
4c8124ffcf4039d292442eeccabdeca5af5c5017
|
341
|
-
634396b2f541a9f2d58b00be1a07f0c358b999b3
|
342
|
-
ab25fd8483882c3bda8a458ad2965d2248654335
|
343
|
-
].each do |ref|
|
344
|
-
Commit.expects(:find_all).with(other_repo, ref, :max_count => 1).returns([stub()])
|
345
|
-
end
|
346
|
-
delta_blobs = @r.commit_deltas_from(other_repo)
|
347
|
-
assert_equal 3, delta_blobs.size
|
348
|
-
end
|
349
|
-
end
|
data/test/test_rubygit.rb
DELETED
@@ -1,192 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
require 'tempfile'
|
3
|
-
|
4
|
-
class TestRubyGit < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@git = Git.new(File.join(File.dirname(__FILE__), *%w[dot_git]))
|
8
|
-
@commit_sha = '5e3ee1198672257164ce3fe31dea3e40848e68d5'
|
9
|
-
@tree_sha = 'cd7422af5a2e0fff3e94d6fb1a8fff03b2841881'
|
10
|
-
@blob_sha = '4232d073306f01cf0b895864e5a5cfad7dd76fce'
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_init_gitdir
|
14
|
-
tf = Tempfile.new('gitdir')
|
15
|
-
temppath = tf.path
|
16
|
-
tf.unlink
|
17
|
-
|
18
|
-
git = Git.new(temppath)
|
19
|
-
git.init({})
|
20
|
-
assert File.exists?(File.join(temppath, 'config'))
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_log_merge
|
24
|
-
c1 = '420eac97a826bfac8724b6b0eef35c20922124b7'
|
25
|
-
c2 = '30e367cef2203eba2b341dc9050993b06fd1e108'
|
26
|
-
out = @git.rev_list({:pretty => 'raw', :max_count => 10}, 'master')
|
27
|
-
assert_match "commit #{c1}", out
|
28
|
-
assert_match "commit #{c2}", out
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_log_max_count
|
32
|
-
out = @git.rev_list({:max_count => 10}, 'master')
|
33
|
-
assert_equal 10, out.split("\n").size
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_diff
|
37
|
-
commit1 = '2d3acf90f35989df8f262dc50beadc4ee3ae1560'
|
38
|
-
commit2 = '420eac97a826bfac8724b6b0eef35c20922124b7'
|
39
|
-
out = @git.diff({}, commit1, commit2)
|
40
|
-
assert_match 'index 6afcf64..9e78ddf 100644', out
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_diff_single
|
44
|
-
commit1 = '2d3acf90f35989df8f262dc50beadc4ee3ae1560'
|
45
|
-
out = @git.diff({}, commit1, nil)
|
46
|
-
assert_match 'index ad42ff5..aa50f09 100644', out
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_diff_full
|
50
|
-
commit1 = '2d3acf90f35989df8f262dc50beadc4ee3ae1560'
|
51
|
-
commit2 = '420eac97a826bfac8724b6b0eef35c20922124b7'
|
52
|
-
out = @git.diff({:full_index => true}, commit1, commit2)
|
53
|
-
assert_match 'index 6afcf64c80da8253fa47228eb09bc0eea217e5d1..9e78ddfaabf79f8314cc9a53a2f59775aee06bd7', out
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_diff_add
|
57
|
-
commit1 = 'c9cf68fc61bd2634e90a4f6a12d88744e6297c4e'
|
58
|
-
commit2 = '7a8d32cb18a0ba2ff8bf86cadacc3fd2816da219'
|
59
|
-
out = @git.diff({}, commit1, commit2)
|
60
|
-
assert_match "--- /dev/null\n+++ b/test/test_tag.rb", out
|
61
|
-
assert_match "diff --git a/test/test_tag.rb b/test/test_tag.rb", out
|
62
|
-
assert_match 'index 0000000..2e3b0cb', out
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_diff_remove
|
66
|
-
commit1 = 'c9cf68fc61bd2634e90a4f6a12d88744e6297c4e'
|
67
|
-
commit2 = '7a8d32cb18a0ba2ff8bf86cadacc3fd2816da219'
|
68
|
-
out = @git.diff({}, commit1, commit2)
|
69
|
-
assert_match "--- a/test/fixtures/diff_2\n+++ /dev/null", out
|
70
|
-
assert_match "diff --git a/test/fixtures/diff_2 b/test/fixtures/diff_2", out
|
71
|
-
assert_match 'index 0000000..2e3b0cb', out
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
|
-
def test_cat_file_contents_commit
|
76
|
-
out = @git.cat_file({:p => true}, @commit_sha)
|
77
|
-
assert_equal out, fixture('cat_file_commit_ruby')
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_cat_file_contents_tree
|
81
|
-
out = @git.cat_file({:p => true}, @tree_sha)
|
82
|
-
assert_equal out, fixture('cat_file_tree_ruby').chomp
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_cat_file_contents_blob
|
86
|
-
out = @git.cat_file({:p => true}, @blob_sha)
|
87
|
-
assert_equal out, fixture('cat_file_blob_ruby')
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_cat_file_size
|
91
|
-
out = @git.cat_file({:s => true}, @tree_sha)
|
92
|
-
assert_equal '252', out
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_ls_tree
|
96
|
-
out = @git.ls_tree({}, @tree_sha)
|
97
|
-
assert_equal out, fixture('cat_file_tree_ruby').chomp
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_ls_tree_with_blobs
|
101
|
-
out = @git.ls_tree({}, @blob_sha)
|
102
|
-
assert_equal out, nil
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_ls_tree_treeish
|
106
|
-
out = @git.ls_tree({}, 'testing')
|
107
|
-
assert_equal out, fixture('cat_file_tree_ruby').chomp
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_ls_tree_paths
|
111
|
-
paths = ['History.txt', 'lib']
|
112
|
-
out = @git.ls_tree({}, @tree_sha, paths)
|
113
|
-
assert_equal out, fixture('ls_tree_paths_ruby').chomp
|
114
|
-
end
|
115
|
-
|
116
|
-
def test_ls_tree_paths_multi_single
|
117
|
-
paths = ['lib/grit.rb']
|
118
|
-
out = @git.ls_tree({}, @tree_sha, paths)
|
119
|
-
assert_equal out, "100644 blob 6afcf64c80da8253fa47228eb09bc0eea217e5d1\tlib/grit.rb"
|
120
|
-
end
|
121
|
-
|
122
|
-
def test_rev_list_pretty
|
123
|
-
out = @git.rev_list({:pretty => 'raw'}, 'master')
|
124
|
-
assert_equal out, fixture('rev_list_all')
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_rev_list_raw_since
|
128
|
-
out = @git.rev_list({:since => Time.at(1204644738)}, 'master')
|
129
|
-
assert_match fixture('rev_list_since'), out # I return slightly more for now
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_rev_list_pretty_raw
|
133
|
-
out = @git.rev_list({:pretty => 'raw'}, 'f1964ad1919180dd1d9eae9d21a1a1f68ac60e77')
|
134
|
-
assert_match 'f1964ad1919180dd1d9eae9d21a1a1f68ac60e77', out
|
135
|
-
assert_equal out.split("\n").size, 654
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_rev_list
|
139
|
-
out = @git.rev_list({}, 'master')
|
140
|
-
assert_equal out, fixture('rev_list_lines')
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_rev_list_range
|
144
|
-
range = '30e367cef2203eba2b341dc9050993b06fd1e108..3fa4e130fa18c92e3030d4accb5d3e0cadd40157'
|
145
|
-
out = @git.rev_list({}, range)
|
146
|
-
assert_equal fixture('rev_list_range'), out
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_ls_tree_paths_multi
|
150
|
-
paths = ['History.txt', 'lib/grit.rb']
|
151
|
-
out = @git.ls_tree({}, @tree_sha, paths)
|
152
|
-
assert_equal out, fixture('ls_tree_paths_ruby_deep').chomp
|
153
|
-
end
|
154
|
-
|
155
|
-
def test_ls_tree_path
|
156
|
-
paths = ['lib/']
|
157
|
-
out = @git.ls_tree({}, @tree_sha, paths)
|
158
|
-
assert_equal out, "100644 blob 6afcf64c80da8253fa47228eb09bc0eea217e5d1\tlib/grit.rb\n040000 tree 6244414d0229fb2bd58bc426a2afb5ba66773498\tlib/grit"
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_ls_tree_path_deep
|
162
|
-
paths = ['lib/grit/']
|
163
|
-
out = @git.ls_tree({}, @tree_sha, paths)
|
164
|
-
assert_equal out, fixture('ls_tree_subdir').chomp
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_file_type
|
168
|
-
out = @git.file_type(@tree_sha).to_s
|
169
|
-
assert_equal 'tree', out
|
170
|
-
out = @git.file_type(@blob_sha).to_s
|
171
|
-
assert_equal 'blob', out
|
172
|
-
out = @git.file_type(@commit_sha).to_s
|
173
|
-
assert_equal 'commit', out
|
174
|
-
end
|
175
|
-
|
176
|
-
#def test_ls_tree_noexist
|
177
|
-
# puts out = @git.ls_tree({}, '6afcf64c80da8253fa47228eb09bc0eea217e5d0')
|
178
|
-
#end
|
179
|
-
|
180
|
-
|
181
|
-
=begin
|
182
|
-
def test_ls_tree_grit_tree
|
183
|
-
paths = ['lib/grit.rb']
|
184
|
-
@repo = Grit::Repo.new('~/projects/github')
|
185
|
-
paths = ['app/models/event.rb']
|
186
|
-
puts out = @repo.git.ls_tree({}, 'master', ['app/models/event.rb'])
|
187
|
-
puts out = @repo.tree('master', paths).contents
|
188
|
-
assert_equal out, '100644 blob 6afcf64c80da8253fa47228eb09bc0eea217e5d1 lib/grit.rb'
|
189
|
-
end
|
190
|
-
=end
|
191
|
-
|
192
|
-
end
|