fit-commit 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +30 -2
- data/lib/fit-commit/validators/tense.rb +3 -3
- data/lib/fit-commit/version.rb +1 -1
- data/test/validators/tense_test.rb +20 -2
- metadata +1 -2
- data/TODO.txt +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aabcc0d7d9ae18205dc7f0ffc39b7b6bff65e031
|
4
|
+
data.tar.gz: d844c683caef5cbb416b386c8c59b0f59000dcb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9151e4ed2c5e082b43cdd7acbfd19ac11bf6829aba734f505f3402a96686414800c9a0c820d03a5812aa5ddb39b04841d1f8c9be6e9c2b48d97d98ce5245026a
|
7
|
+
data.tar.gz: 9fdc57be60a116531a48fd88aa5d1d7d0ff232d6b01b47a255390b25f99bcec7c92a8ded4b2c82aeb32656f0e629378723ff7494f4d185077e5080a6076fa7b3
|
data/README.md
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
# Fit Commit
|
2
3
|
|
3
4
|
A Git hook to validate your commit messages, based largely on Tim Pope's [authoritative guide](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
|
@@ -10,7 +11,7 @@ Adding a cool feature
|
|
10
11
|
foobar foobar foobar,
|
11
12
|
foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar
|
12
13
|
|
13
|
-
1: Error: Message must use present
|
14
|
+
1: Error: Message must use imperative present tense.
|
14
15
|
2: Error: Second line must be blank.
|
15
16
|
3: Error: Lines should be <= 72 chars. (76)
|
16
17
|
|
@@ -36,11 +37,38 @@ This creates a `.git/hooks/commit-msg` script which will automatically check you
|
|
36
37
|
## Validations
|
37
38
|
|
38
39
|
* **Line Length**: All lines must be <= 72 chars (URLs excluded). First line should be <= 50 chars. Second line must be blank.
|
39
|
-
* **Tense**: Message must use present
|
40
|
+
* **Tense**: Message must use imperative present tense: "Fix bug" and not "Fixed bug" or "Fixes bug."
|
40
41
|
* **Summary Period**: Do not end your summary with a period.
|
41
42
|
* **WIP**: Do not commit WIPs to master.
|
42
43
|
* **Frat House**: No frat house commit messages in master.
|
43
44
|
|
45
|
+
|
46
|
+
## FAQ
|
47
|
+
|
48
|
+
### Can Fit Commit run in all my repos without having to install it each time?
|
49
|
+
First set your global Git template directory:
|
50
|
+
|
51
|
+
```
|
52
|
+
$ git config --global init.templatedir '~/.git_template'
|
53
|
+
```
|
54
|
+
|
55
|
+
Now you can copy the hooks you want installed in new repos by default:
|
56
|
+
|
57
|
+
```
|
58
|
+
# From a repo where Fit Commit is already installed
|
59
|
+
$ cp .git/hooks/commit-msg ~/.git_templates/hooks/commit-msg
|
60
|
+
```
|
61
|
+
|
62
|
+
To copy your default hooks into existing repos:
|
63
|
+
|
64
|
+
```
|
65
|
+
$ git init
|
66
|
+
```
|
67
|
+
|
68
|
+
### Fit Commit is too opinionated for me. What can I do?
|
69
|
+
Fit Commit aims to be useful to everyone. If you can suggest an improvement to make it useful to more people, please open a GitHub Issue or Pull Request.
|
70
|
+
|
71
|
+
|
44
72
|
## Credits
|
45
73
|
|
46
74
|
Author: [Mike Foley](https://github.com/m1foley)
|
@@ -64,12 +64,12 @@ module FitCommit
|
|
64
64
|
)
|
65
65
|
|
66
66
|
def validate_line(lineno, text, _branch_name)
|
67
|
-
if lineno == 1 &&
|
68
|
-
add_error(lineno, "Message must use present
|
67
|
+
if lineno == 1 && starts_with_blacklisted_verb?(text)
|
68
|
+
add_error(lineno, "Message must use imperative present tense.")
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
def
|
72
|
+
def starts_with_blacklisted_verb?(text)
|
73
73
|
first_word = text.split.first(2).detect { |w| w =~ /\A\w/ }
|
74
74
|
first_word && VERB_BLACKLIST.include?(first_word.downcase)
|
75
75
|
end
|
data/lib/fit-commit/version.rb
CHANGED
@@ -8,7 +8,7 @@ describe FitCommit::Validators::Tense do
|
|
8
8
|
let(:branch_name) { "anybranch" }
|
9
9
|
|
10
10
|
describe "uses incorrect tense on first line" do
|
11
|
-
let(:commit_msg) { "Changed something
|
11
|
+
let(:commit_msg) { "Changed something" }
|
12
12
|
it "has error" do
|
13
13
|
validator.validate
|
14
14
|
assert_equal 1, validator.errors[1].size
|
@@ -16,8 +16,26 @@ describe FitCommit::Validators::Tense do
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
describe "uses incorrect tense on first line" do
|
20
|
+
let(:commit_msg) { "[#ticketno] Changed something" }
|
21
|
+
it "has error" do
|
22
|
+
validator.validate
|
23
|
+
assert_equal 1, validator.errors[1].size
|
24
|
+
assert_empty validator.warnings
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "has incorrect tense after the first word" do
|
29
|
+
let(:commit_msg) { "Document fixes to bug" }
|
30
|
+
it "does not have errors/warnings" do
|
31
|
+
validator.validate
|
32
|
+
assert_empty validator.errors
|
33
|
+
assert_empty validator.warnings
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
19
37
|
describe "uses incorrect tense on a line other than first line" do
|
20
|
-
let(:commit_msg) { "
|
38
|
+
let(:commit_msg) { "Fix bug\n\nChanged something" }
|
21
39
|
it "does not have errors/warnings" do
|
22
40
|
validator.validate
|
23
41
|
assert_empty validator.errors
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fit-commit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Foley
|
@@ -68,7 +68,6 @@ files:
|
|
68
68
|
- LICENSE
|
69
69
|
- README.md
|
70
70
|
- Rakefile
|
71
|
-
- TODO.txt
|
72
71
|
- bin/fit-commit
|
73
72
|
- fit-commit.gemspec
|
74
73
|
- lib/fit-commit.rb
|
data/TODO.txt
DELETED