bugspots 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/bin/bugspots CHANGED
@@ -12,6 +12,11 @@ options = {}
12
12
  OptionParser.new do |opts|
13
13
  opts.banner = "Usage: bugspots /path/to/git/repo"
14
14
 
15
+ # Option: Set Branch
16
+ opts.on('-b', '--branch [name]', 'branch to crawl') do |b|
17
+ options[:branch] = b.to_s
18
+ end
19
+
15
20
  # Option: Set Depth
16
21
  opts.on('-d', '--depth [depth]', 'depth of log crawl (integer)') do |d|
17
22
  options[:depth] = d.to_i
@@ -28,12 +33,15 @@ OptionParser.new do |opts|
28
33
  end
29
34
  end.parse!
30
35
 
31
- # Set a reasonable default of depth
36
+ # Set a reasonable default of depth
32
37
  options[:depth] ||= 500
33
38
 
39
+ # Set master as the default branch
40
+ options[:branch] ||= "master"
41
+
34
42
  puts "Scanning #{ARGV[0]} repo".foreground(:green)
35
43
 
36
- fixes, spots = Bugspots.scan(ARGV[0], options[:depth], options[:words])
44
+ fixes, spots = Bugspots.scan(ARGV[0], options[:branch], options[:depth], options[:words])
37
45
 
38
46
  puts "\tFound #{fixes.size} bugfix commits, with #{spots.size} hotspots:".foreground(:yellow)
39
47
  puts
@@ -5,7 +5,7 @@ module Bugspots
5
5
  Fix = Struct.new(:message, :date, :files)
6
6
  Spot = Struct.new(:file, :score)
7
7
 
8
- def self.scan(repo, depth = 500, words = nil)
8
+ def self.scan(repo, branch = "master", depth = 500, words = nil)
9
9
  repo = Grit::Repo.new(repo)
10
10
  fixes = []
11
11
 
@@ -15,7 +15,7 @@ module Bugspots
15
15
  message_matchers = /fix(es|ed)|close(s|d)/
16
16
  end
17
17
 
18
- repo.commits('master', depth).each do |commit|
18
+ repo.commits(branch, depth).each do |commit|
19
19
  if commit.message =~ message_matchers
20
20
  files = commit.stats.files.map {|s| s.first}
21
21
  fixes << Fix.new(commit.short_message, commit.date, files)
@@ -1,3 +1,3 @@
1
1
  module Bugspots
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugspots
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-15 00:00:00.000000000 Z
12
+ date: 2011-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: grit
16
- requirement: &2153295780 !ruby/object:Gem::Requirement
16
+ requirement: &2153125920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153295780
24
+ version_requirements: *2153125920
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rainbow
27
- requirement: &2153295360 !ruby/object:Gem::Requirement
27
+ requirement: &2153125500 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2153295360
35
+ version_requirements: *2153125500
36
36
  description: Implementation of simple bug prediction hotspot heuristic
37
37
  email:
38
38
  - ilya@igvita.com