capillary 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/capillary/log_parser.rb +0 -9
- data/lib/capillary/version.rb +1 -1
- data/test/capillary/log_parser_test.rb +117 -79
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/lib/capillary/log_parser.rb
CHANGED
@@ -27,7 +27,6 @@ module Capillary
|
|
27
27
|
@branches = []
|
28
28
|
@seq_ids = {}
|
29
29
|
@commit_positions = {}
|
30
|
-
@relationships = {}
|
31
30
|
end
|
32
31
|
|
33
32
|
def <<(commit)
|
@@ -81,14 +80,6 @@ module Capillary
|
|
81
80
|
@commit_positions[commit.id] = [col, branches[col].length]
|
82
81
|
end
|
83
82
|
|
84
|
-
if branches[col].length > 0
|
85
|
-
pid = branches[col].last.commit.id
|
86
|
-
relationship = "#{commit.id}:#{pid}"
|
87
|
-
return if @relationships[relationship]
|
88
|
-
@relationships[relationship] = true
|
89
|
-
end
|
90
|
-
|
91
|
-
parent = commit.parent_id ? " (#{commit.parent_id[0...7]})" : ""
|
92
83
|
branches[col] << commit
|
93
84
|
end
|
94
85
|
end
|
data/lib/capillary/version.rb
CHANGED
@@ -27,12 +27,15 @@ class LogParserTest < MiniTest::Spec
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def load_fixture(fixture)
|
30
|
-
|
30
|
+
parse_log(fixture(fixture))
|
31
|
+
end
|
32
|
+
|
33
|
+
def parse_log(log)
|
31
34
|
@log_parser = Capillary::LogParser.new
|
32
35
|
@lines = []
|
33
36
|
|
34
|
-
|
35
|
-
@lines << Capillary::Commit.parse(
|
37
|
+
log.split("\n").reject { |f| f.strip == "" }.each do |log|
|
38
|
+
@lines << Capillary::Commit.parse(log)
|
36
39
|
@log_parser << @lines.last
|
37
40
|
end
|
38
41
|
end
|
@@ -172,14 +175,7 @@ class LogParserTest < MiniTest::Spec
|
|
172
175
|
# | | |
|
173
176
|
context "Complex graph merged with --no-ff" do
|
174
177
|
setup do
|
175
|
-
|
176
|
-
@log_parser = Capillary::LogParser.new
|
177
|
-
@lines = []
|
178
|
-
|
179
|
-
fixtures.reject { |f| f.strip == "" }.each do |fixture|
|
180
|
-
@lines << Capillary::Commit.parse(fixture)
|
181
|
-
@log_parser << @lines.last
|
182
|
-
end
|
178
|
+
load_fixture("complex_graph_no_ff.txt")
|
183
179
|
end
|
184
180
|
|
185
181
|
should "have four branches" do
|
@@ -250,14 +246,7 @@ class LogParserTest < MiniTest::Spec
|
|
250
246
|
# |
|
251
247
|
context "Complex graph merged with --no-ff" do
|
252
248
|
setup do
|
253
|
-
|
254
|
-
@log_parser = Capillary::LogParser.new
|
255
|
-
@lines = []
|
256
|
-
|
257
|
-
fixtures.reject { |f| f.strip == "" }.each do |fixture|
|
258
|
-
@lines << Capillary::Commit.parse(fixture)
|
259
|
-
@log_parser << @lines.last
|
260
|
-
end
|
249
|
+
load_fixture("complex_graph.txt")
|
261
250
|
end
|
262
251
|
|
263
252
|
should "have three branches" do
|
@@ -273,7 +262,7 @@ class LogParserTest < MiniTest::Spec
|
|
273
262
|
end
|
274
263
|
|
275
264
|
should "have three commits in the third branch" do
|
276
|
-
assert_equal
|
265
|
+
assert_equal 4, @log_parser.branches[2].size
|
277
266
|
end
|
278
267
|
|
279
268
|
should "not create more seq_id's than there are commits" do
|
@@ -282,7 +271,7 @@ class LogParserTest < MiniTest::Spec
|
|
282
271
|
|
283
272
|
should "not represent same commit under different seq_id's" do
|
284
273
|
assert_equal [2, 4, 5, 6, 7, 9, 10], @log_parser.branches[1].collect { |c| c.seq_id }
|
285
|
-
assert_equal [5, 8, 9], @log_parser.branches[2].collect { |c| c.seq_id }
|
274
|
+
assert_equal [5, 8, 9, 10], @log_parser.branches[2].collect { |c| c.seq_id }
|
286
275
|
end
|
287
276
|
end
|
288
277
|
|
@@ -308,14 +297,7 @@ class LogParserTest < MiniTest::Spec
|
|
308
297
|
# | |
|
309
298
|
context "Parsing log --graph output" do
|
310
299
|
setup do
|
311
|
-
|
312
|
-
@log_parser = Capillary::LogParser.new
|
313
|
-
@lines = []
|
314
|
-
|
315
|
-
fixtures.reject { |f| f.strip == "" }.each do |fixture|
|
316
|
-
@lines << Capillary::Commit.parse(fixture)
|
317
|
-
@log_parser << @lines.last
|
318
|
-
end
|
300
|
+
load_fixture("log_graph.txt")
|
319
301
|
end
|
320
302
|
|
321
303
|
should "have two branches" do
|
@@ -365,39 +347,32 @@ class LogParserTest < MiniTest::Spec
|
|
365
347
|
# |
|
366
348
|
context "Two branches forked from same commit" do
|
367
349
|
setup do
|
368
|
-
|
369
|
-
@log_parser = Capillary::LogParser.new
|
370
|
-
@lines = []
|
371
|
-
|
372
|
-
fixtures.reject { |f| f.strip == "" }.each do |fixture|
|
373
|
-
@lines << Capillary::Commit.parse(fixture)
|
374
|
-
@log_parser << @lines.last
|
375
|
-
end
|
350
|
+
load_fixture("double_fork.txt")
|
376
351
|
end
|
377
352
|
|
378
353
|
should "have three branches" do
|
379
|
-
|
354
|
+
assert_equal 3, branches.length
|
380
355
|
end
|
381
356
|
|
382
|
-
should "have
|
357
|
+
should "have six commits in the first branch" do
|
383
358
|
commits = @log_parser.branches[0].collect { |c| c.id[0...7] }
|
384
359
|
|
385
360
|
assert_equal 6, commits.length
|
386
361
|
assert_equal %w[0f54800 5bdf304 2477a17 ea4d6ce fdc39f6 9002b5b], commits
|
387
362
|
end
|
388
363
|
|
389
|
-
should "have
|
364
|
+
should "have eleven commits in the second branch" do
|
390
365
|
commits = @log_parser.branches[1].collect { |c| c.id[0...7] }
|
391
366
|
|
392
|
-
assert_equal
|
393
|
-
assert_equal %w[2477a17 13c727b bd73540 6fb3997 9266f54 a5f9deb 1551dfe 16d2ac1 1e69972 fdc39f6], commits
|
367
|
+
assert_equal 11, commits.length
|
368
|
+
assert_equal %w[2477a17 13c727b bd73540 6fb3997 9266f54 a5f9deb 1551dfe 16d2ac1 1e69972 fdc39f6 9002b5b], commits
|
394
369
|
end
|
395
370
|
|
396
|
-
should "have
|
371
|
+
should "have nine commits in the third branch" do
|
397
372
|
commits = @log_parser.branches[2].collect { |c| c.id[0...7] }
|
398
373
|
|
399
|
-
assert_equal
|
400
|
-
assert_equal %w[ea4d6ce 74510fd 09b2486 4f0eaf7 fe57cfc cbdfa12 81febec fdc39f6], commits
|
374
|
+
assert_equal 9, commits.length
|
375
|
+
assert_equal %w[ea4d6ce 74510fd 09b2486 4f0eaf7 fe57cfc cbdfa12 81febec fdc39f6 9002b5b], commits
|
401
376
|
end
|
402
377
|
end
|
403
378
|
|
@@ -407,13 +382,10 @@ class LogParserTest < MiniTest::Spec
|
|
407
382
|
# | |
|
408
383
|
context "Two dangling branches" do
|
409
384
|
setup do
|
410
|
-
|
385
|
+
parse_log <<-GIT
|
411
386
|
ca2d07e0172565c9e0f18d41e49b70d7d75fced6§3370cb3615b3368be97c0f39b86f5dc2f9fa3650 c4e7446e2a98f1bf28da51fc57bb42b532222942§Tue May 10 12:47:08 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/2230'§
|
412
387
|
c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60f8§Tue May 10 12:41:19 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/2230' of gitorious.org:gitorious/mainline into merge-requests/2230§
|
413
388
|
GIT
|
414
|
-
|
415
|
-
@log_parser = Capillary::LogParser.new
|
416
|
-
log.split("\n").each { |l| @log_parser << l }
|
417
389
|
end
|
418
390
|
|
419
391
|
should "have two branches" do
|
@@ -437,14 +409,11 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
437
409
|
# | |
|
438
410
|
context "Two dangling branches with leading commit" do
|
439
411
|
setup do
|
440
|
-
|
412
|
+
parse_log <<-GIT
|
441
413
|
1f2b8a4e3f61ffedf9908e28b280de8c6bf38a16§ca2d07e0172565c9e0f18d41e49b70d7d75fced6§Tue May 10 13:04:10 2011 +0200§christian@gitorious.org§§Some commit§
|
442
414
|
ca2d07e0172565c9e0f18d41e49b70d7d75fced6§3370cb3615b3368be97c0f39b86f5dc2f9fa3650 c4e7446e2a98f1bf28da51fc57bb42b532222942§Tue May 10 12:47:08 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/2230'§
|
443
415
|
c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60f8§Tue May 10 12:41:19 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/2230' of gitorious.org:gitorious/mainline into merge-requests/2230§
|
444
416
|
GIT
|
445
|
-
|
446
|
-
@log_parser = Capillary::LogParser.new
|
447
|
-
log.split("\n").each { |l| @log_parser << l }
|
448
417
|
end
|
449
418
|
|
450
419
|
should "have two branches" do
|
@@ -468,14 +437,11 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
468
437
|
# | | |
|
469
438
|
context "Three dangling branches" do
|
470
439
|
setup do
|
471
|
-
|
440
|
+
parse_log <<-GIT
|
472
441
|
1f2b8a4e3f61ffedf9908e28b280de8c6bf38a16§ca2d07e0172565c9e0f18d41e49b70d7d75fced6 275932ab0995a11fcebeb0af7f19a7b8df5dea3f§Tue May 10 13:04:10 2011 +0200§christian@gitorious.org§§Some commit§
|
473
442
|
ca2d07e0172565c9e0f18d41e49b70d7d75fced6§3370cb3615b3368be97c0f39b86f5dc2f9fa3650 c4e7446e2a98f1bf28da51fc57bb42b532222942§Tue May 10 12:47:08 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/2230'§
|
474
443
|
c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60f8§Tue May 10 12:41:19 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/2230' of gitorious.org:gitorious/mainline into merge-requests/2230§
|
475
444
|
GIT
|
476
|
-
|
477
|
-
@log_parser = Capillary::LogParser.new
|
478
|
-
log.split("\n").each { |l| @log_parser << l }
|
479
445
|
end
|
480
446
|
|
481
447
|
should "have three branches" do
|
@@ -508,7 +474,7 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
508
474
|
# | | |
|
509
475
|
context "Three dangling branches with closed branch" do
|
510
476
|
setup do
|
511
|
-
|
477
|
+
parse_log <<-GIT
|
512
478
|
0000000000000000000000000000000000000000§1111111111111111111111111111111111111111 3333333333333333333333333333333333333333§Tue May 10 13:00:00 2011 +0200§christian@gitorious.org§§Message§
|
513
479
|
1111111111111111111111111111111111111111§4444444444444444444444444444444444444444 2222222222222222222222222222222222222222§Tue May 10 12:00:00 2011 +0200§christian@gitorious.org§§Message§
|
514
480
|
2222222222222222222222222222222222222222§4444444444444444444444444444444444444444§Tue May 10 11:00:00 2011 +0200§christian@gitorious.org§§Message§
|
@@ -516,9 +482,6 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
516
482
|
4444444444444444444444444444444444444444§7777777777777777777777777777777777777777 5555555555555555555555555555555555555555§Tue May 10 09:00:00 2011 +0200§christian@gitorious.org§§Message§
|
517
483
|
5555555555555555555555555555555555555555§8888888888888888888888888888888888888888§Tue May 10 08:00:00 2011 +0200§christian@gitorious.org§§Message§
|
518
484
|
GIT
|
519
|
-
|
520
|
-
@log_parser = Capillary::LogParser.new
|
521
|
-
log.split("\n").each { |l| @log_parser << l }
|
522
485
|
end
|
523
486
|
|
524
487
|
should "have four branches" do
|
@@ -546,29 +509,104 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
546
509
|
# |\
|
547
510
|
# | 0
|
548
511
|
# | |\
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
512
|
+
context "two commits with two parents" do
|
513
|
+
setup do
|
514
|
+
parse_log <<-GIT
|
515
|
+
ca2d07e0172565c9e0f18d41e49b70d7d75fced6§3370cb3615b3368be97c0f39b86f5dc2f9fa3650 c4e7446e2a98f1bf28da51fc57bb42b532222942§Tue May 10 12:47:08 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/2230'§
|
516
|
+
c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60f8 c1e52fba9e7c88f1146bb6df1f8b58dff006f45e§Tue May 10 12:41:19 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/2230' of gitorious.org:gitorious/mainline into merge-requests/2230§
|
517
|
+
GIT
|
518
|
+
end
|
519
|
+
|
520
|
+
should "have three branches" do
|
521
|
+
assert_equal 3, branches.length
|
522
|
+
end
|
523
|
+
|
524
|
+
should "have one commit in the first branch" do
|
525
|
+
assert_equal %w[ca2d07e], commits_for_branch(0)
|
526
|
+
end
|
527
|
+
|
528
|
+
should "have two commits in the second branch" do
|
529
|
+
assert_equal %w[ca2d07e c4e7446], commits_for_branch(1)
|
530
|
+
end
|
531
|
+
|
532
|
+
should "have three commits in the third branch" do
|
533
|
+
assert_equal %w[c4e7446], commits_for_branch(2)
|
534
|
+
end
|
535
|
+
end
|
536
|
+
|
537
|
+
# 1f2b8a4 # 0
|
538
|
+
# | \ # |\
|
539
|
+
# | a2f271b # | 0
|
540
|
+
# | | \ # | |\
|
541
|
+
# | | 3ec0ec6 # | | 0
|
542
|
+
# | / | # |/ |
|
543
|
+
# ca2d07e | # 0 |
|
544
|
+
# | \ | # |\ |
|
545
|
+
# | c4e7446-|- # | 0-|
|
546
|
+
# | | | \ # | | |\
|
547
|
+
context "Three branches from four dangling branches" do
|
548
|
+
setup do
|
549
|
+
parse_log <<-GIT
|
550
|
+
1f2b8a4e3f61ffedf9908e28b280de8c6bf38a16§ca2d07e0172565c9e0f18d41e49b70d7d75fced6 a2f271b1aa55e52ba848779c62a6fa02cbc5ea0c§Tue May 10 13:04:10 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/147'§
|
551
|
+
a2f271b1aa55e52ba848779c62a6fa02cbc5ea0c§ca2d07e0172565c9e0f18d41e49b70d7d75fced6 3ec0ec68ac9ae2db3f222dfe1842cd2c6812cf97§Tue May 10 12:50:35 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/147' of gitorious.org:gitorious/mainline into merge-requests/147§
|
552
|
+
3ec0ec68ac9ae2db3f222dfe1842cd2c6812cf97§0685c52dd27dba8eaa6ec6f6bfacf014d37a6a1b§Tue Apr 12 10:04:20 2011 +1000§openid@obfusc8.org§§Bug: Do not redirect_back_or_default on new OpenID§
|
553
|
+
ca2d07e0172565c9e0f18d41e49b70d7d75fced6§3370cb3615b3368be97c0f39b86f5dc2f9fa3650 c4e7446e2a98f1bf28da51fc57bb42b532222942§Tue May 10 12:47:08 2011 +0200§christian@gitorious.org§§Merge branch 'merge-requests/2230'§
|
554
|
+
c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60f8 c1e52fba9e7c88f1146bb6df1f8b58dff006f45e§Tue May 10 12:41:19 2011 +0200§christian@gitorious.org§§Merge commit 'refs/merge-requests/2230' of gitorious.org:gitorious/mainline into merge-requests/2230§
|
555
|
+
GIT
|
556
|
+
end
|
557
|
+
|
558
|
+
should "have five branches" do
|
559
|
+
assert_equal 5, branches.length
|
560
|
+
end
|
561
|
+
|
562
|
+
should "have two commits in first branch" do
|
563
|
+
assert_equal %w[1f2b8a4 ca2d07e], commits_for_branch(0)
|
564
|
+
end
|
565
|
+
|
566
|
+
should "have three commits in second branch" do
|
567
|
+
assert_equal %w[1f2b8a4 a2f271b ca2d07e], commits_for_branch(1)
|
568
|
+
end
|
569
|
+
|
570
|
+
should "have two commits in third branch" do
|
571
|
+
assert_equal %w[a2f271b 3ec0ec6], commits_for_branch(2)
|
572
|
+
end
|
573
|
+
|
574
|
+
should "have two commits in fourth branch" do
|
575
|
+
assert_equal %w[ca2d07e c4e7446], commits_for_branch(3)
|
576
|
+
end
|
577
|
+
|
578
|
+
should "have one commit in fifth branch" do
|
579
|
+
assert_equal %w[c4e7446], commits_for_branch(4)
|
580
|
+
end
|
581
|
+
end
|
582
|
+
|
583
|
+
# 44c5c1d
|
584
|
+
# | \
|
585
|
+
# | e81d019
|
586
|
+
# | | \
|
587
|
+
# | | bbbd502
|
588
|
+
# | / |
|
589
|
+
# 1f2b8a4 |
|
590
|
+
# | \ |
|
591
|
+
# | 275932a |
|
592
|
+
# | | |
|
593
|
+
# | 7487183 |
|
594
|
+
# | | |
|
595
|
+
# | a2f271b-|------
|
596
|
+
# | | | \
|
597
|
+
# | | | 3ec0ec6
|
598
|
+
# | / | |
|
599
|
+
# ca2d07e | |
|
600
|
+
# | \ | |
|
601
|
+
# | c4e7446-|-------|------
|
602
|
+
# | | | | \
|
565
603
|
context "Four dangling branches" do
|
566
604
|
setup do
|
567
605
|
load_fixture("4x_dangling_branches.txt")
|
568
606
|
end
|
569
607
|
|
570
608
|
should "have seven branches" do
|
571
|
-
assert_equal
|
609
|
+
assert_equal 7, branches.length
|
572
610
|
end
|
573
611
|
|
574
612
|
should "have 3 commits in the first branch" do
|
@@ -576,7 +614,7 @@ c4e7446e2a98f1bf28da51fc57bb42b532222942§c3e1d675667939e64ced1bb5b541c9042a1d60
|
|
576
614
|
end
|
577
615
|
|
578
616
|
should "have 3 commits in the second branch" do
|
579
|
-
assert_equal %w[44c5c1d e81d019 1f2b8a4], commits_for_branch(1)
|
617
|
+
assert_equal %w[44c5c1d e81d019 1f2b8a4 ca2d07e], commits_for_branch(1)
|
580
618
|
end
|
581
619
|
|
582
620
|
should "have 2 commits in the third branch" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capillary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Marius Mathiesen
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-08-
|
19
|
+
date: 2011-08-24 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|