git-bump 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/git_bump.rb +28 -5
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce5e88c9cc833c7b655ee2e4d58c5e22f6b325e0
|
4
|
+
data.tar.gz: 19c2063ab2836d98a9c74b15c9560c590fd3e944
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c81a9bec98422b00d4a9910858e6855ceabf80d8bd1547f306f3ae944e2c816f4d13b6389281fd44aca5e57c7fc780783c65b1217c9862f7b62fa47574d5c9cf
|
7
|
+
data.tar.gz: 91d194b0d78809e025febcd4d25253f93826bb87ed4c141bc043a34f8c67536312a737a657122d459a4cf39fdad4725b9b9b90b9424a12546fc916d8a2821039
|
data/lib/git_bump.rb
CHANGED
@@ -26,6 +26,24 @@ git bump can find it:
|
|
26
26
|
@tag, @sha1, @name, @version = tag, sha1, name, Version.new(version)
|
27
27
|
end
|
28
28
|
|
29
|
+
def tag_type
|
30
|
+
@tag_type ||= %x{git cat-file -t #{tag}}.chomp
|
31
|
+
end
|
32
|
+
|
33
|
+
def tag_message
|
34
|
+
if tag_type == 'tag'
|
35
|
+
@tag_message ||= %x{git cat-file tag #{tag}}.split("\n\n", 2).last
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def tag_signed?
|
40
|
+
tag_message.to_s.include?("\n-----BEGIN PGP")
|
41
|
+
end
|
42
|
+
|
43
|
+
def tag_body?
|
44
|
+
tag_message.to_s.sub(/\n-----BEGIN PGP.*/m, '').include?("\n\n")
|
45
|
+
end
|
46
|
+
|
29
47
|
def body
|
30
48
|
@body ||= %x{git log -1 --pretty=format:%b #{sha1}}
|
31
49
|
end
|
@@ -140,14 +158,19 @@ git bump can find it:
|
|
140
158
|
end
|
141
159
|
|
142
160
|
def tag!(name)
|
143
|
-
|
144
|
-
|
145
|
-
|
161
|
+
annote = if latest && !latest.tag_signed? then '-a' else '-s' end
|
162
|
+
format = if releases.size < 2 || latest.tag_body? then '%B' else '%s' end
|
163
|
+
body = %x{git log -1 --pretty=format:#{format}}
|
164
|
+
if system('git', 'tag', '-f', annote, name, '-m', body)
|
165
|
+
puts <<-EOS
|
146
166
|
Successfully created #{name}. If you made a mistake, use `git bump redo` to
|
147
167
|
try again. Once you are satisfied with the result, run
|
148
168
|
|
149
169
|
git push origin master #{name}
|
150
|
-
|
170
|
+
EOS
|
171
|
+
else
|
172
|
+
abort "Tag failed. Create it by hand or use git reset --soft HEAD^ to try again."
|
173
|
+
end
|
151
174
|
end
|
152
175
|
|
153
176
|
def system!(*args)
|
@@ -203,7 +226,7 @@ try again. Once you are satisfied with the result, run
|
|
203
226
|
unless %x{git diff}.empty?
|
204
227
|
abort "Discard or stage your changes."
|
205
228
|
end
|
206
|
-
unless latest.sha1 == %x{git rev-parse HEAD}.chomp
|
229
|
+
unless latest && latest.sha1 == %x{git rev-parse HEAD}.chomp
|
207
230
|
abort "Can only amend the top-most commit."
|
208
231
|
end
|
209
232
|
system!('git', 'commit', '--amend', '--verbose', '--reset-author')
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-bump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pope
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: Git based release management
|
@@ -72,17 +72,17 @@ require_paths:
|
|
72
72
|
- lib
|
73
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
84
|
rubyforge_project:
|
85
|
-
rubygems_version: 2.
|
85
|
+
rubygems_version: 2.4.5
|
86
86
|
signing_key:
|
87
87
|
specification_version: 4
|
88
88
|
summary: Create Git release commits and tags with changelogs
|