git-topic 0.1.3 → 0.1.4
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.
- data/.rspec +1 -0
- data/.rvmrc +1 -1
- data/.vimproject +3 -1
- data/Rakefile +9 -0
- data/VERSION +1 -1
- data/bin/git-topic +1 -1
- data/git-topic.gemspec +8 -6
- data/lib/git_topic/git.rb +58 -0
- data/lib/git_topic/naming.rb +150 -0
- data/lib/{git-topic.rb → git_topic.rb} +15 -175
- data/spec/{git-topic_spec.rb → git_topic_spec.rb} +11 -0
- data/spec/spec_helper.rb +17 -19
- metadata +9 -7
- /data/lib/{util.rb → core_ext.rb} +0 -0
data/.rspec
CHANGED
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm 1.9.2
|
1
|
+
rvm 1.9.2
|
data/.vimproject
CHANGED
data/Rakefile
CHANGED
@@ -3,6 +3,15 @@ require 'rake'
|
|
3
3
|
|
4
4
|
Dir[ 'lib/tasks/**/*' ].each{ |l| require l }
|
5
5
|
|
6
|
+
# TODO 1: cleanup specs (possibly have specs setup repos, or possibly tar up
|
7
|
+
# repos and extract them)
|
8
|
+
# TODO 2: topic abandon <topic>
|
9
|
+
# TODO 1: handle malformed args
|
10
|
+
# TODO 1: git-topic comment
|
11
|
+
# edit files & have the diffs pulled into notes?
|
12
|
+
|
13
|
+
# TODO 1: git work-on <topic> should kill review branch
|
14
|
+
|
6
15
|
|
7
16
|
begin
|
8
17
|
require 'jeweler'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/bin/git-topic
CHANGED
data/git-topic.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{git-topic}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["David J. Hamilton"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-13}
|
13
13
|
s.default_executable = %q{git-topic}
|
14
14
|
s.description = %q{
|
15
15
|
gem command around reviewed topic branches. Supports workflow of the form:
|
@@ -57,9 +57,11 @@ Gem::Specification.new do |s|
|
|
57
57
|
"autotest/discover.rb",
|
58
58
|
"bin/git-topic",
|
59
59
|
"git-topic.gemspec",
|
60
|
-
"lib/
|
61
|
-
"lib/
|
62
|
-
"
|
60
|
+
"lib/core_ext.rb",
|
61
|
+
"lib/git_topic.rb",
|
62
|
+
"lib/git_topic/git.rb",
|
63
|
+
"lib/git_topic/naming.rb",
|
64
|
+
"spec/git_topic_spec.rb",
|
63
65
|
"spec/spec_helper.rb",
|
64
66
|
"spec/template/origin/HEAD",
|
65
67
|
"spec/template/origin/config",
|
@@ -102,7 +104,7 @@ Gem::Specification.new do |s|
|
|
102
104
|
s.summary = %q{git command around reviewed topic branches}
|
103
105
|
s.test_files = [
|
104
106
|
"spec/spec_helper.rb",
|
105
|
-
"spec/
|
107
|
+
"spec/git_topic_spec.rb"
|
106
108
|
]
|
107
109
|
|
108
110
|
if s.respond_to? :specification_version then
|
@@ -0,0 +1,58 @@
|
|
1
|
+
|
2
|
+
module GitTopic; end
|
3
|
+
module GitTopic::Git
|
4
|
+
module ClassMethods
|
5
|
+
|
6
|
+
protected
|
7
|
+
|
8
|
+
def working_tree_clean?
|
9
|
+
git [ "diff --quiet", "diff --quiet --cached" ]
|
10
|
+
$?.success?
|
11
|
+
end
|
12
|
+
|
13
|
+
def working_tree_dirty?
|
14
|
+
not working_tree_clean?
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def display_git_output?
|
19
|
+
@@display_git_output ||= false
|
20
|
+
end
|
21
|
+
|
22
|
+
def display_git_output!
|
23
|
+
@@display_git_output = true
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def switch_to_branch( branch, tracking=nil )
|
28
|
+
if branches.include?( branch )
|
29
|
+
"checkout #{branch}"
|
30
|
+
else
|
31
|
+
"checkout -b #{branch} #{tracking}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def cmd_redirect_suffix( opts )
|
36
|
+
if !opts[:show] && !display_git_output?
|
37
|
+
"> /dev/null 2> /dev/null"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def git( cmds=[], opts={} )
|
42
|
+
cmds = [cmds] if cmds.is_a? String
|
43
|
+
redir = cmd_redirect_suffix( opts )
|
44
|
+
system cmds.map{|c| "git #{c} #{redir}"}.join( " && " )
|
45
|
+
end
|
46
|
+
|
47
|
+
def capture_git( cmds=[] )
|
48
|
+
cmds = [cmds] if cmds.is_a? String
|
49
|
+
redir = "2> /dev/null" unless display_git_output?
|
50
|
+
`#{cmds.map{|c| "git #{c} #{redir}"}.join( " && " )}`
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.included( base )
|
56
|
+
base.extend ClassMethods
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
|
2
|
+
module GitTopic; end
|
3
|
+
|
4
|
+
module GitTopic::Naming
|
5
|
+
module ClassMethods
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def backup_branch( topic )
|
10
|
+
"backup/#{user}/#{topic}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def wip_branch( topic )
|
14
|
+
"wip/#{user}/#{topic}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def rejected_branch( topic )
|
18
|
+
"rejected/#{user}/#{topic}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def review_branch( topic, user=user )
|
22
|
+
"review/#{user}/#{topic}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def remote_rejected_branch( topic, user=user )
|
26
|
+
"rejected/#{user}/#{topic}"
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def find_remote_review_branch( topic )
|
31
|
+
others_review_branches.find{|b| b.index topic}
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def user_topic_name( branch )
|
36
|
+
if branch =~ %r{^origin}
|
37
|
+
branch =~ %r{^\S*?/\S*?/(\S*?)/(\S*)}
|
38
|
+
[$1, $2]
|
39
|
+
else
|
40
|
+
branch =~ %r{^\S*?/(\S*?)/(\S*)}
|
41
|
+
[$1, $2]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def topic_parts( spec )
|
46
|
+
p = {}
|
47
|
+
parts = spec.split( '/' )
|
48
|
+
case parts.size
|
49
|
+
when 2
|
50
|
+
p[:user], p[:topic] = parts
|
51
|
+
when 1
|
52
|
+
p[:topic] = parts.first
|
53
|
+
else
|
54
|
+
raise "Unexpected topic: #{spec}"
|
55
|
+
end
|
56
|
+
p
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
def user
|
61
|
+
@@user ||= (ENV['USER'] || `whoami`)
|
62
|
+
end
|
63
|
+
|
64
|
+
def current_topic
|
65
|
+
current_branch =~ %r{wip/\S*?/(\S*)}
|
66
|
+
$1
|
67
|
+
end
|
68
|
+
|
69
|
+
def current_branch
|
70
|
+
@@current_branch ||= capture_git( "branch --no-color" ).split( "\n" ).find do |b|
|
71
|
+
b =~ %r{^\*}
|
72
|
+
end[ 2..-1 ]
|
73
|
+
end
|
74
|
+
|
75
|
+
def branches
|
76
|
+
@@branches ||= capture_git( "branch --no-color" ).split( "\n" ).map{|b| b[2..-1]}
|
77
|
+
end
|
78
|
+
|
79
|
+
def remote_branches
|
80
|
+
@@remote_branches ||= capture_git( "branch -r --no-color" ).split( "\n" ).map{|b| b[2..-1]}
|
81
|
+
end
|
82
|
+
|
83
|
+
def others_review_branches
|
84
|
+
remote_branches.select do
|
85
|
+
|b| b =~ %r{/review/}
|
86
|
+
end.reject do |b|
|
87
|
+
b =~ %r{/#{user}/}
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def remote_branches_organized
|
92
|
+
@@remote_branches_organized ||= (
|
93
|
+
rb = remote_branches.dup
|
94
|
+
# Convert a bunch of remote branch names, like
|
95
|
+
# origin/HEAD -> origin/masterr
|
96
|
+
# origin/master
|
97
|
+
# origin/review/user1/topic1
|
98
|
+
# origin/something-else
|
99
|
+
# origin/rejected/user2/topic2
|
100
|
+
#
|
101
|
+
# Into a hash with keys 'review' and 'rejected' pointing to hashes of
|
102
|
+
# user-topic(s) pairs.
|
103
|
+
rb.map!{|s| s.gsub( /->.*/, '')}
|
104
|
+
rb.map!{|s| s.strip.split( '/' )}
|
105
|
+
namespace_ut = rb.group_by{|remote, namespace, user, topic| namespace if topic}
|
106
|
+
namespace_ut.reject!{|k,v| not %w(rejected review).include? k}
|
107
|
+
|
108
|
+
namespace_ut.each do |k,v|
|
109
|
+
v.each{|a| a.shift( 2 )}
|
110
|
+
v = namespace_ut[k] = v.group_by{|user, topic| user if topic}
|
111
|
+
v.each{|kk,vv| vv.each(&:shift); vv.flatten!}
|
112
|
+
end
|
113
|
+
|
114
|
+
namespace_ut.symbolize_keys!
|
115
|
+
namespace_ut[:review] ||= {}
|
116
|
+
namespace_ut[:rejected] ||= {}
|
117
|
+
|
118
|
+
namespace_ut[:review].reject!{|k,v| k == user}
|
119
|
+
namespace_ut
|
120
|
+
)
|
121
|
+
end
|
122
|
+
|
123
|
+
def oldest_review_branch
|
124
|
+
return nil if others_review_branches.empty?
|
125
|
+
|
126
|
+
commits_by_age = capture_git([
|
127
|
+
"log --date-order --reverse --pretty=format:%d",
|
128
|
+
"^origin/master #{others_review_branches.join( ' ' )}",
|
129
|
+
].join( " " )).split( "\n" )
|
130
|
+
|
131
|
+
commits_by_age.find do |ref|
|
132
|
+
# no ‘,’, i.e. only one ref matches the commit
|
133
|
+
ref.index( ',' ).nil?
|
134
|
+
end.strip[ 1..-2 ] # chomp the leading and trailing parenthesis
|
135
|
+
end
|
136
|
+
|
137
|
+
def oldest_review_user_topic
|
138
|
+
user_topic_name( oldest_review_branch )
|
139
|
+
end
|
140
|
+
|
141
|
+
def on_review_branch?
|
142
|
+
current_branch =~ %r{^review/}
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
|
147
|
+
def self.included( base )
|
148
|
+
base.extend ClassMethods
|
149
|
+
end
|
150
|
+
end
|
@@ -4,12 +4,18 @@
|
|
4
4
|
require 'active_support'
|
5
5
|
require 'active_support/core_ext/hash/keys'
|
6
6
|
|
7
|
-
require '
|
7
|
+
require 'core_ext'
|
8
|
+
require 'git_topic/git'
|
9
|
+
require 'git_topic/naming'
|
8
10
|
|
9
11
|
|
10
12
|
module GitTopic
|
13
|
+
include GitTopic::Git
|
14
|
+
include GitTopic::Naming
|
15
|
+
|
11
16
|
GlobalOptKeys = [ :verbose, :help, :verbose_given ]
|
12
17
|
|
18
|
+
|
13
19
|
class << self
|
14
20
|
|
15
21
|
# Switch to a branch for the given topic.
|
@@ -116,17 +122,21 @@ module GitTopic
|
|
116
122
|
if review_branches.empty?
|
117
123
|
puts "nothing to review."
|
118
124
|
return
|
125
|
+
else
|
126
|
+
user, topic = oldest_review_user_topic
|
119
127
|
end
|
120
|
-
|
121
|
-
user, topic = oldest_review_user_topic
|
122
128
|
else
|
123
|
-
|
129
|
+
p = topic_parts( spec )
|
130
|
+
user, topic = p[:user], p[:topic]
|
124
131
|
end
|
125
132
|
|
126
133
|
if remote_topic_branch = find_remote_review_branch( topic )
|
134
|
+
# Get the actual user/topic, e.g. to get the user if spec only specifies
|
135
|
+
# the topic.
|
136
|
+
real_user, real_topic = user_topic_name( remote_topic_branch )
|
127
137
|
git [
|
128
138
|
switch_to_branch(
|
129
|
-
review_branch(
|
139
|
+
review_branch( real_topic, real_user ),
|
130
140
|
remote_topic_branch )]
|
131
141
|
else
|
132
142
|
raise "No review topic found matching ‘#{spec}’"
|
@@ -200,176 +210,6 @@ module GitTopic
|
|
200
210
|
]
|
201
211
|
end
|
202
212
|
|
203
|
-
|
204
|
-
private
|
205
|
-
|
206
|
-
|
207
|
-
def backup_branch( topic )
|
208
|
-
"backup/#{user}/#{topic}"
|
209
|
-
end
|
210
|
-
|
211
|
-
def wip_branch( topic )
|
212
|
-
"wip/#{user}/#{topic}"
|
213
|
-
end
|
214
|
-
|
215
|
-
def rejected_branch( topic )
|
216
|
-
"rejected/#{user}/#{topic}"
|
217
|
-
end
|
218
|
-
|
219
|
-
def review_branch( topic, user=user )
|
220
|
-
"review/#{user}/#{topic}"
|
221
|
-
end
|
222
|
-
|
223
|
-
def remote_rejected_branch( topic, user=user )
|
224
|
-
"rejected/#{user}/#{topic}"
|
225
|
-
end
|
226
|
-
|
227
|
-
|
228
|
-
def find_remote_review_branch( topic )
|
229
|
-
others_review_branches.find{|b| b.index topic}
|
230
|
-
end
|
231
|
-
|
232
|
-
|
233
|
-
def user_topic_name( branch )
|
234
|
-
if branch =~ %r{^origin}
|
235
|
-
branch =~ %r{^\S*?/\S*?/(\S*?)/(\S*)}
|
236
|
-
[$1, $2]
|
237
|
-
else
|
238
|
-
branch =~ %r{^\S*?/(\S*?)/(\S*)}
|
239
|
-
[$1, $2]
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
|
244
|
-
def user
|
245
|
-
@@user ||= (ENV['USER'] || `whoami`)
|
246
|
-
end
|
247
|
-
|
248
|
-
def current_topic
|
249
|
-
current_branch =~ %r{wip/\S*?/(\S*)}
|
250
|
-
$1
|
251
|
-
end
|
252
|
-
|
253
|
-
def current_branch
|
254
|
-
@@current_branch ||= capture_git( "branch --no-color" ).split( "\n" ).find do |b|
|
255
|
-
b =~ %r{^\*}
|
256
|
-
end[ 2..-1 ]
|
257
|
-
end
|
258
|
-
|
259
|
-
def branches
|
260
|
-
@@branches ||= capture_git( "branch --no-color" ).split( "\n" ).map{|b| b[2..-1]}
|
261
|
-
end
|
262
|
-
|
263
|
-
def remote_branches
|
264
|
-
@@remote_branches ||= capture_git( "branch -r --no-color" ).split( "\n" ).map{|b| b[2..-1]}
|
265
|
-
end
|
266
|
-
|
267
|
-
def others_review_branches
|
268
|
-
remote_branches.select do
|
269
|
-
|b| b =~ %r{/review/}
|
270
|
-
end.reject do |b|
|
271
|
-
b =~ %r{/#{user}/}
|
272
|
-
end
|
273
|
-
end
|
274
|
-
|
275
|
-
def remote_branches_organized
|
276
|
-
@@remote_branches_organized ||= (
|
277
|
-
rb = remote_branches.dup
|
278
|
-
# Convert a bunch of remote branch names, like
|
279
|
-
# origin/HEAD -> origin/masterr
|
280
|
-
# origin/master
|
281
|
-
# origin/review/user1/topic1
|
282
|
-
# origin/something-else
|
283
|
-
# origin/rejected/user2/topic2
|
284
|
-
#
|
285
|
-
# Into a hash with keys 'review' and 'rejected' pointing to hashes of
|
286
|
-
# user-topic(s) pairs.
|
287
|
-
rb.map!{|s| s.gsub( /->.*/, '')}
|
288
|
-
rb.map!{|s| s.strip.split( '/' )}
|
289
|
-
namespace_ut = rb.group_by{|remote, namespace, user, topic| namespace if topic}
|
290
|
-
namespace_ut.reject!{|k,v| not %w(rejected review).include? k}
|
291
|
-
|
292
|
-
namespace_ut.each do |k,v|
|
293
|
-
v.each{|a| a.shift( 2 )}
|
294
|
-
v = namespace_ut[k] = v.group_by{|user, topic| user if topic}
|
295
|
-
v.each{|kk,vv| vv.each(&:shift); vv.flatten!}
|
296
|
-
end
|
297
|
-
|
298
|
-
namespace_ut.symbolize_keys!
|
299
|
-
namespace_ut[:review] ||= {}
|
300
|
-
namespace_ut[:rejected] ||= {}
|
301
|
-
|
302
|
-
namespace_ut[:review].reject!{|k,v| k == user}
|
303
|
-
namespace_ut
|
304
|
-
)
|
305
|
-
end
|
306
|
-
|
307
|
-
def oldest_review_branch
|
308
|
-
return nil if others_review_branches.empty?
|
309
|
-
|
310
|
-
commits_by_age = capture_git([
|
311
|
-
"log --date-order --reverse --pretty=format:%d",
|
312
|
-
"^origin/master #{others_review_branches.join( ' ' )}",
|
313
|
-
].join( " " )).split( "\n" )
|
314
|
-
|
315
|
-
commits_by_age.find do |ref|
|
316
|
-
# no ‘,’, i.e. only one ref matches the commit
|
317
|
-
ref.index( ',' ).nil?
|
318
|
-
end.strip[ 1..-2 ] # chomp the leading and trailing parenthesis
|
319
|
-
end
|
320
|
-
|
321
|
-
def oldest_review_user_topic
|
322
|
-
user_topic_name( oldest_review_branch )
|
323
|
-
end
|
324
|
-
|
325
|
-
def on_review_branch?
|
326
|
-
current_branch =~ %r{^review/}
|
327
|
-
end
|
328
|
-
|
329
|
-
def working_tree_clean?
|
330
|
-
git [ "diff --quiet", "diff --quiet --cached" ]
|
331
|
-
$?.success?
|
332
|
-
end
|
333
|
-
|
334
|
-
def working_tree_dirty?
|
335
|
-
not working_tree_clean?
|
336
|
-
end
|
337
|
-
|
338
|
-
|
339
|
-
def display_git_output?
|
340
|
-
@@display_git_output ||= false
|
341
|
-
end
|
342
|
-
|
343
|
-
def display_git_output!
|
344
|
-
@@display_git_output = true
|
345
|
-
end
|
346
|
-
|
347
|
-
|
348
|
-
def switch_to_branch( branch, tracking=nil )
|
349
|
-
if branches.include?( branch )
|
350
|
-
"checkout #{branch}"
|
351
|
-
else
|
352
|
-
"checkout -b #{branch} #{tracking}"
|
353
|
-
end
|
354
|
-
end
|
355
|
-
|
356
|
-
def cmd_redirect_suffix( opts )
|
357
|
-
if !opts[:show] && !display_git_output?
|
358
|
-
"> /dev/null 2> /dev/null"
|
359
|
-
end
|
360
|
-
end
|
361
|
-
|
362
|
-
def git( cmds=[], opts={} )
|
363
|
-
cmds = [cmds] if cmds.is_a? String
|
364
|
-
redir = cmd_redirect_suffix( opts )
|
365
|
-
system cmds.map{|c| "git #{c} #{redir}"}.join( " && " )
|
366
|
-
end
|
367
|
-
|
368
|
-
def capture_git( cmds=[] )
|
369
|
-
cmds = [cmds] if cmds.is_a? String
|
370
|
-
redir = "2> /dev/null" unless display_git_output?
|
371
|
-
`#{cmds.map{|c| "git #{c} #{redir}"}.join( " && " )}`
|
372
|
-
end
|
373
213
|
end
|
374
214
|
end
|
375
215
|
|
@@ -258,6 +258,17 @@ describe GitTopic do
|
|
258
258
|
git_branch_merge.should == 'refs/heads/review/user24601/ninja-basic'
|
259
259
|
end
|
260
260
|
|
261
|
+
it "
|
262
|
+
should accept only a topic arg (vice <user>/<topic>) when the topic is
|
263
|
+
unambiguous.
|
264
|
+
".oneline do
|
265
|
+
git_remote_branches.should include 'review/user24601/ninja-basic'
|
266
|
+
GitTopic.review( 'ninja-basic' )
|
267
|
+
git_branch.should == 'review/user24601/ninja-basic'
|
268
|
+
git_branch_remote.should == 'origin'
|
269
|
+
git_branch_merge.should == 'refs/heads/review/user24601/ninja-basic'
|
270
|
+
end
|
271
|
+
|
261
272
|
it "should error if an illegal topic is specified" do
|
262
273
|
lambda{ GitTopic.review( 'fakeuser/faketopic' )}.should raise_error
|
263
274
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,31 +1,29 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require '
|
2
|
+
require 'git_topic'
|
3
3
|
|
4
4
|
|
5
5
|
# Disable caching on GitTopic for specs since we're calling the methods directly
|
6
6
|
# rather than assuming atmoic invocations.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
rv
|
16
|
-
end
|
17
|
-
alias_method_chain m.to_sym, :nocache
|
7
|
+
class << GitTopic
|
8
|
+
%w( current_branch remote_branches remote_branches_organized branches
|
9
|
+
).each do |m|
|
10
|
+
|
11
|
+
define_method( "#{m}_with_nocache" ) do
|
12
|
+
rv = send( "#{m}_without_nocache" )
|
13
|
+
GitTopic::Naming::ClassMethods.class_variable_set( "@@#{m}", nil )
|
14
|
+
rv
|
18
15
|
end
|
16
|
+
alias_method_chain m.to_sym, :nocache
|
17
|
+
end
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
19
|
+
def git_with_implicit_capture( cmds=[], opts={} )
|
20
|
+
if opts[:show]
|
21
|
+
puts capture_git( cmds )
|
22
|
+
else
|
23
|
+
git_without_implicit_capture( cmds, opts )
|
26
24
|
end
|
27
|
-
alias_method_chain :git, :implicit_capture
|
28
25
|
end
|
26
|
+
alias_method_chain :git, :implicit_capture
|
29
27
|
end
|
30
28
|
|
31
29
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 4
|
9
|
+
version: 0.1.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David J. Hamilton
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-07-
|
17
|
+
date: 2010-07-13 00:00:00 -07:00
|
18
18
|
default_executable: git-topic
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -84,9 +84,11 @@ files:
|
|
84
84
|
- autotest/discover.rb
|
85
85
|
- bin/git-topic
|
86
86
|
- git-topic.gemspec
|
87
|
-
- lib/
|
88
|
-
- lib/
|
89
|
-
-
|
87
|
+
- lib/core_ext.rb
|
88
|
+
- lib/git_topic.rb
|
89
|
+
- lib/git_topic/git.rb
|
90
|
+
- lib/git_topic/naming.rb
|
91
|
+
- spec/git_topic_spec.rb
|
90
92
|
- spec/spec_helper.rb
|
91
93
|
- spec/template/origin/HEAD
|
92
94
|
- spec/template/origin/config
|
@@ -155,4 +157,4 @@ specification_version: 3
|
|
155
157
|
summary: git command around reviewed topic branches
|
156
158
|
test_files:
|
157
159
|
- spec/spec_helper.rb
|
158
|
-
- spec/
|
160
|
+
- spec/git_topic_spec.rb
|
File without changes
|