git_fame 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/git_fame.gemspec +3 -0
- data/lib/git_fame/base.rb +11 -7
- data/lib/git_fame/version.rb +1 -1
- data/spec/git_fame_spec.rb +5 -5
- metadata +45 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d14b517588cbb66c5ee322ffc1a1ffc1a0da758
|
4
|
+
data.tar.gz: 319dedff1fd52b79a5d7efbcd875dfb81baf9fd4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 872d9eaa67f0e3f7fc8fd6f61d387247a9e2dbc29a62d63e541d3a478b4f3d32a5fa9e4edf1047051b53a96def45c16f28516a8ca8b00c3d1d49d2c89947b9ad
|
7
|
+
data.tar.gz: ac02d50b811a68ff8d2f51c7ab7f413814371c92906fbe127e36537468946b2b0d8b5e7846d616c38a2dcf401d24d1a14eccc4d7176aa5bbdb4c58b1de5db453
|
data/README.md
CHANGED
@@ -45,7 +45,7 @@ From a git repository run `git fame`.
|
|
45
45
|
- `git fame --repository=/path/to/repo` Git repository to be used. Default is the current folder.
|
46
46
|
- `git fame --branch=master` Branch to run on. Default is what `HEAD` points to.
|
47
47
|
- `git fame --format=output` Output format. Default is `pretty`. Additional: `csv`.
|
48
|
-
- `git fame --after=2010-01-01` Only use
|
48
|
+
- `git fame --after=2010-01-01` Only use commits after this date. Format: yyyy-mm-dd. Note that the given date is included.
|
49
49
|
- `git fame --before=2016-02-01` Only use commits before this date. Format: yyyy-mm-dd. Note that the given date is included.
|
50
50
|
- `git fame --verbose` Print shell commands used by `git-fame`.
|
51
51
|
- `git fame --everything` Images and binaries are ignored by default. Include them as well.
|
@@ -133,4 +133,4 @@ Visit `spec/spec_helper.rb` to enable it again.
|
|
133
133
|
|
134
134
|
## License
|
135
135
|
|
136
|
-
*GitFame* is released under the *MIT license*.
|
136
|
+
*GitFame* is released under the *MIT license*.
|
data/git_fame.gemspec
CHANGED
@@ -35,6 +35,9 @@ Generates data like:
|
|
35
35
|
gem.add_development_dependency("rspec-collection_matchers", "~> 1.1.2")
|
36
36
|
gem.add_development_dependency("rake", "~> 10.4.2")
|
37
37
|
gem.add_development_dependency("coveralls", "~> 0.8.1")
|
38
|
+
gem.add_development_dependency("json", "~> 1.8.3")
|
39
|
+
gem.add_development_dependency("tins", "~> 1.6.0")
|
40
|
+
gem.add_development_dependency("term-ansicolor", "~> 1.3.2")
|
38
41
|
|
39
42
|
gem.required_ruby_version = ">= 1.9.2"
|
40
43
|
end
|
data/lib/git_fame/base.rb
CHANGED
@@ -365,19 +365,24 @@ module GitFame
|
|
365
365
|
end
|
366
366
|
|
367
367
|
def author_by_email(email, name = nil)
|
368
|
-
@authors[email.strip] ||= Author.new({ parent: self, name: name })
|
368
|
+
@authors[(email || "").strip] ||= Author.new({ parent: self, name: name })
|
369
369
|
end
|
370
370
|
|
371
371
|
# List all files in current git directory, excluding
|
372
372
|
# extensions in @extensions defined by the user
|
373
373
|
def current_files
|
374
374
|
if commit_range.is_range?
|
375
|
-
execute("git #{git_directory_params} -c diff.renames=0 -c diff.renameLimit=1000 diff -M -C -c --name-only --diff-filter=AM #{encoding_opt} #{default_params} #{commit_range.to_s}") do |result|
|
376
|
-
filter_files(result)
|
375
|
+
execute("git #{git_directory_params} -c diff.renames=0 -c diff.renameLimit=1000 diff -M -C -c --name-only --ignore-submodules=all --diff-filter=AM #{encoding_opt} #{default_params} #{commit_range.to_s}") do |result|
|
376
|
+
filter_files(result.to_s.split(/\n/))
|
377
377
|
end
|
378
378
|
else
|
379
|
-
execute("git #{git_directory_params} ls-tree
|
380
|
-
|
379
|
+
execute("git #{git_directory_params} ls-tree -r #{commit_range.to_s}") do |result|
|
380
|
+
lines = result.to_s.split(/\n/).inject([]) do |lines, line|
|
381
|
+
# Ignore submodules
|
382
|
+
next lines if line.strip.match(/^160000/)
|
383
|
+
next [line.split(/\s+/).last] + lines
|
384
|
+
end
|
385
|
+
filter_files(lines)
|
381
386
|
end
|
382
387
|
end
|
383
388
|
end
|
@@ -394,8 +399,7 @@ module GitFame
|
|
394
399
|
"--encoding=UTF-8"
|
395
400
|
end
|
396
401
|
|
397
|
-
def filter_files(
|
398
|
-
raw_files = result.to_s.split("\n")
|
402
|
+
def filter_files(raw_files)
|
399
403
|
files = remove_excluded_files(raw_files)
|
400
404
|
files = keep_included_files(files)
|
401
405
|
files = files.map { |file| GitFame::FileUnit.new(file) }
|
data/lib/git_fame/version.rb
CHANGED
data/spec/git_fame_spec.rb
CHANGED
@@ -22,7 +22,7 @@ describe GitFame::Base do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should have a number of locs" do
|
25
|
-
author.raw(:loc).should eq(
|
25
|
+
author.raw(:loc).should eq(575)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should have a number of files" do
|
@@ -30,7 +30,7 @@ describe GitFame::Base do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should have a distribution" do
|
33
|
-
author.distribution.should eq("53.
|
33
|
+
author.distribution.should eq("53.7 / 58.6 / 25.0")
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -61,7 +61,7 @@ describe GitFame::Base do
|
|
61
61
|
it "should respond to #loc, #commits and #files" do
|
62
62
|
subject.files.should eq(16)
|
63
63
|
subject.commits.should eq(70)
|
64
|
-
subject.loc.should eq(
|
64
|
+
subject.loc.should eq(1071)
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -204,8 +204,8 @@ describe GitFame::Base do
|
|
204
204
|
it "should be equal to" do
|
205
205
|
subject.to_csv.should eq([
|
206
206
|
"name,loc,commits,files,distribution\n",
|
207
|
-
"Magnus Holm,
|
208
|
-
"7rans,360,6,10,33.
|
207
|
+
"Magnus Holm,575,41,4,53.7 / 58.6 / 25.0\n",
|
208
|
+
"7rans,360,6,10,33.6 / 8.6 / 62.5\n",
|
209
209
|
"Linus Oleander,136,23,7,12.7 / 32.9 / 43.8\n",
|
210
210
|
].join)
|
211
211
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_fame
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Linus Oleander
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-progressbar
|
@@ -150,6 +150,48 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 0.8.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: json
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 1.8.3
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.8.3
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: tins
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.6.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 1.6.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: term-ansicolor
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 1.3.2
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 1.3.2
|
153
195
|
description: Generates awesome stats from git-blame
|
154
196
|
email:
|
155
197
|
- linus@oleander.nu
|
@@ -202,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
244
|
version: '0'
|
203
245
|
requirements: []
|
204
246
|
rubyforge_project:
|
205
|
-
rubygems_version: 2.
|
247
|
+
rubygems_version: 2.5.1
|
206
248
|
signing_key:
|
207
249
|
specification_version: 4
|
208
250
|
summary: 'Generates awesome stats from git-blame A Ruby wrapper for git-blame. Generates
|