big_keeper 0.7.0 → 0.7.1

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +79 -20
  4. data/bin/{big-keeper → bigkeeper} +0 -0
  5. data/docs/en-US/README.md +50 -0
  6. data/docs/zh-CN/BIGKEEPER_FILE.md +2 -2
  7. data/docs/zh-CN/FEATURE&HOTFIX.md +121 -0
  8. data/docs/zh-CN/PODFILE.md +43 -0
  9. data/docs/zh-CN/README.md +33 -15
  10. data/docs/zh-CN/RECOMMEND.md +22 -0
  11. data/docs/zh-CN/RELEASE.md +8 -5
  12. data/lib/big_keeper/command/feature&hotfix/delete.rb +33 -0
  13. data/lib/big_keeper/command/feature&hotfix/{feature_finish.rb → finish.rb} +13 -12
  14. data/lib/big_keeper/command/feature&hotfix/{feature_pull.rb → pull.rb} +4 -4
  15. data/lib/big_keeper/command/feature&hotfix/{feature_push.rb → push.rb} +4 -8
  16. data/lib/big_keeper/command/feature&hotfix/{feature_start.rb → start.rb} +7 -7
  17. data/lib/big_keeper/command/feature&hotfix/{feature_switch.rb → switch.rb} +6 -6
  18. data/lib/big_keeper/command/feature&hotfix/{feature_update.rb → update.rb} +7 -7
  19. data/lib/big_keeper/command/release/{release_home.rb → home.rb} +4 -4
  20. data/lib/big_keeper/command/release/module.rb +106 -0
  21. data/lib/big_keeper/model/gitflow_type.rb +13 -1
  22. data/lib/big_keeper/service/git_service.rb +84 -40
  23. data/lib/big_keeper/service/module_service.rb +52 -62
  24. data/lib/big_keeper/util/bigkeeper_parser.rb +19 -3
  25. data/lib/big_keeper/util/git_operator.rb +19 -12
  26. data/lib/big_keeper/version.rb +1 -1
  27. data/lib/big_keeper.rb +131 -25
  28. data/resources/banner.png +0 -0
  29. data/resources/keynote/big-keeper-readme-example.key +0 -0
  30. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.001.jpeg +0 -0
  31. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.002.jpeg +0 -0
  32. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.003.jpeg +0 -0
  33. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.004.jpeg +0 -0
  34. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.005.jpeg +0 -0
  35. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.006.jpeg +0 -0
  36. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.007.jpeg +0 -0
  37. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.008.jpeg +0 -0
  38. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.009.jpeg +0 -0
  39. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.010.jpeg +0 -0
  40. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.011.jpeg +0 -0
  41. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.012.jpeg +0 -0
  42. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.013.jpeg +0 -0
  43. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.014.jpeg +0 -0
  44. data/resources/keynote/big-keeper-readme-feature.key +0 -0
  45. data/resources/keynote/big-keeper-readme-release.key +0 -0
  46. data/resources/readme/big-keeper-readme.008.png +0 -0
  47. data/resources/readme/big-keeper-readme.009.png +0 -0
  48. data/resources/readme/big-keeper-readme.010.png +0 -0
  49. data/resources/readme/big-keeper-readme.011.png +0 -0
  50. data/resources/readme/big-keeper-readme.012.png +0 -0
  51. metadata +40 -17
  52. data/docs/zh-CN/FEATURE.md +0 -88
  53. data/lib/big_keeper/command/release/release_module.rb +0 -86
  54. data/lib/big_keeper/command/release/release_module.sh +0 -44
  55. data/resources/readme/big-keeper-readme.008.jpeg +0 -0
  56. data/resources/readme/big-keeper-readme.009.jpeg +0 -0
  57. data/resources/readme/big-keeper-readme.010.jpeg +0 -0
@@ -1,3 +1,5 @@
1
+ require 'big_keeper/util/logger'
2
+
1
3
  # Bigkeeper module
2
4
  module BigKeeper
3
5
  def self.version(name)
@@ -33,6 +35,9 @@ module BigKeeper
33
35
 
34
36
  def self.parse(bigkeeper)
35
37
  if @@config.empty?
38
+
39
+ Logger.error("Can't find a Bigkeeper file in current directory.") if !BigkeeperParser.definitely_exists?(bigkeeper)
40
+
36
41
  content = File.read bigkeeper
37
42
  content.gsub!(/version\s/, 'BigKeeper::version ')
38
43
  content.gsub!(/user\s/, 'BigKeeper::user ')
@@ -45,6 +50,13 @@ module BigKeeper
45
50
  end
46
51
  end
47
52
 
53
+ def self.definitely_exists? path
54
+ folder = File.dirname path
55
+ filename = File.basename path
56
+ # Unlike Ruby IO, ls, and find -f, this technique will fail to locate the file if the case is wrong:
57
+ not %x( find "#{folder}" -name "#{filename}" ).empty?
58
+ end
59
+
48
60
  def self.parse_version(name)
49
61
  @@config[:version] = name
50
62
  end
@@ -75,7 +87,7 @@ module BigKeeper
75
87
  elsif params[:git]
76
88
  parse_modules_pod(name, params)
77
89
  else
78
- raise %(There should be ':path =>' or ':git =>' for pod #{name})
90
+ Logger.error(%(There should be ':path =>' or ':git =>' for pod #{name}))
79
91
  end
80
92
  end
81
93
 
@@ -118,7 +130,11 @@ module BigKeeper
118
130
  end
119
131
 
120
132
  def self.sourcemodule_path
121
- @@config[:source].join(",").reverse.chop.reverse
133
+ if @@config[:source] == nil
134
+ return ""
135
+ else
136
+ @@config[:source].join(",").reverse.chop.reverse
137
+ end
122
138
  end
123
139
 
124
140
  def self.module_full_path(home_path, user_name, module_name)
@@ -155,7 +171,7 @@ module BigKeeper
155
171
 
156
172
  def self.verify_modules(modules)
157
173
  modules.each do |item|
158
- raise "Can not find module #{item} in Bigkeeper file" unless @@config[:modules][item]
174
+ Logger.error("Can not find module #{item} in Bigkeeper file") unless @@config[:modules][item]
159
175
  end
160
176
  end
161
177
 
@@ -1,3 +1,5 @@
1
+ require 'big_keeper/util/logger'
2
+
1
3
  module BigKeeper
2
4
  # Operator for got
3
5
  class GitOperator
@@ -37,23 +39,23 @@ module BigKeeper
37
39
  has_branch
38
40
  end
39
41
 
40
- def git_checkout(path, branch_name)
42
+ def checkout(path, branch_name)
41
43
  Dir.chdir(path) do
42
44
  IO.popen("git checkout #{branch_name}") do |io|
43
45
  io.each do |line|
44
- raise "Checkout #{branch_name} failed." if line.include? 'error'
46
+ Logger.error("Checkout #{branch_name} failed.") if line.include? 'error'
45
47
  end
46
48
  end
47
49
  end
48
50
  end
49
51
 
50
- def git_fetch(path)
52
+ def fetch(path)
51
53
  Dir.chdir(path) do
52
54
  `git fetch origin`
53
55
  end
54
56
  end
55
57
 
56
- def git_rebase(path, branch_name)
58
+ def rebase(path, branch_name)
57
59
  Dir.chdir(path) do
58
60
  `git rebase origin/#{branch_name}`
59
61
  end
@@ -72,18 +74,12 @@ module BigKeeper
72
74
  end
73
75
  end
74
76
 
75
- def first_push(path, branch_name)
77
+ def push_to_remote(path, branch_name)
76
78
  Dir.chdir(path) do
77
79
  `git push -u origin #{branch_name}`
78
80
  end
79
81
  end
80
82
 
81
- def push(path)
82
- Dir.chdir(path) do
83
- p `git push`
84
- end
85
- end
86
-
87
83
  def pull(path)
88
84
  Dir.chdir(path) do
89
85
  p `git pull`
@@ -111,9 +107,20 @@ module BigKeeper
111
107
  has_changes
112
108
  end
113
109
 
114
- def del(path, branch_name)
110
+ def dicard(path)
111
+ Dir.chdir(path) do
112
+ `git checkout . && git clean -xdf`
113
+ end
114
+ end
115
+
116
+ def del_local(path, branch_name)
115
117
  Dir.chdir(path) do
116
118
  p `git branch -D #{branch_name}`
119
+ end
120
+ end
121
+
122
+ def del_remote(path, branch_name)
123
+ Dir.chdir(path) do
117
124
  p `git push origin --delete #{branch_name}`
118
125
  end
119
126
  end
@@ -1,3 +1,3 @@
1
1
  module BigKeeper
2
- VERSION = "0.7.0"
2
+ VERSION = "0.7.1"
3
3
  end
data/lib/big_keeper.rb CHANGED
@@ -7,14 +7,15 @@ require 'big_keeper/util/git_operator'
7
7
 
8
8
  require 'big_keeper/model/gitflow_type'
9
9
 
10
- require 'big_keeper/command/feature&hotfix/feature_start'
11
- require 'big_keeper/command/feature&hotfix/feature_finish'
12
- require 'big_keeper/command/feature&hotfix/feature_switch'
13
- require 'big_keeper/command/feature&hotfix/feature_update'
14
- require 'big_keeper/command/feature&hotfix/feature_pull'
15
- require 'big_keeper/command/feature&hotfix/feature_push'
16
- require 'big_keeper/command/release/release_home'
17
- require 'big_keeper/command/release/release_module'
10
+ require 'big_keeper/command/feature&hotfix/start'
11
+ require 'big_keeper/command/feature&hotfix/finish'
12
+ require 'big_keeper/command/feature&hotfix/switch'
13
+ require 'big_keeper/command/feature&hotfix/update'
14
+ require 'big_keeper/command/feature&hotfix/pull'
15
+ require 'big_keeper/command/feature&hotfix/push'
16
+ require 'big_keeper/command/feature&hotfix/delete'
17
+ require 'big_keeper/command/release/home'
18
+ require 'big_keeper/command/release/module'
18
19
  require 'big_keeper/command/pod/podfile_lock'
19
20
 
20
21
  require 'big_keeper/service/git_service'
@@ -25,7 +26,7 @@ include GLI::App
25
26
 
26
27
  module BigKeeper
27
28
  # Your code goes here...
28
- program_desc 'Efficiency improvement for iOS modular development, iOSer using this tool can make modular development easier.'
29
+ program_desc 'Efficiency improvement for iOS&Android modular development, iOSer&Android using this tool can make modular development easier.'
29
30
 
30
31
  flag %i[p path], default_value: './'
31
32
  flag %i[v ver], default_value: 'Version in Bigkeeper file'
@@ -46,7 +47,7 @@ module BigKeeper
46
47
  exit
47
48
  end
48
49
 
49
- desc 'Feature operations'
50
+ desc 'Gitflow feature operations'
50
51
  command :feature do |c|
51
52
 
52
53
  c.desc 'Start a new feature with name for given modules and main project'
@@ -56,16 +57,16 @@ module BigKeeper
56
57
  help_now!('feature name is required') if args.length < 1
57
58
  name = args[0]
58
59
  modules = args[(1...args.length)] if args.length > 1
59
- feature_start(path, version, user, name, modules)
60
+ start(path, version, user, name, modules, GitflowType::FEATURE)
60
61
  end
61
62
  end
62
63
 
63
- c.desc 'Update moduels for the feature with name'
64
+ c.desc 'Update modules for the feature with name'
64
65
  c.command :update do |update|
65
66
  update.action do |global_options, options, args|
66
67
  help_now!('user name is required') if user and user.empty?
67
68
  modules = args[(0...args.length)] if args.length > 0
68
- feature_update(path, user, modules)
69
+ update(path, user, modules, GitflowType::FEATURE)
69
70
  end
70
71
  end
71
72
 
@@ -75,7 +76,7 @@ module BigKeeper
75
76
  help_now!('user name is required') if user and user.empty?
76
77
  help_now!('feature name is required') if args.length < 1
77
78
  name = args[0]
78
- feature_switch(path, version, user, name)
79
+ switch_to(path, version, user, name, GitflowType::FEATURE)
79
80
  end
80
81
  end
81
82
 
@@ -83,7 +84,7 @@ module BigKeeper
83
84
  c.command :pull do |pull|
84
85
  pull.action do |global_options, options, args|
85
86
  help_now!('user name is required') if user and user.empty?
86
- feature_pull(path, user)
87
+ pull(path, user, GitflowType::FEATURE)
87
88
  end
88
89
  end
89
90
 
@@ -94,7 +95,7 @@ module BigKeeper
94
95
  help_now!('comment message is required') if args.length < 1
95
96
  help_now!(%Q(comment message should be wrappered with '' or "")) if args.length > 1
96
97
  comment = args[0]
97
- feature_push(path, user, comment)
98
+ push(path, user, comment, GitflowType::FEATURE)
98
99
  end
99
100
  end
100
101
 
@@ -102,7 +103,17 @@ module BigKeeper
102
103
  c.command :finish do |finish|
103
104
  finish.action do |global_options, options, args|
104
105
  help_now!('user name is required') if user and user.empty?
105
- feature_finish(path, user)
106
+ finish(path, user, GitflowType::FEATURE)
107
+ end
108
+ end
109
+
110
+ c.desc 'Delete feature with name'
111
+ c.command :delete do |delete|
112
+ delete.action do |global_options, options, args|
113
+ help_now!('user name is required') if user and user.empty?
114
+ help_now!('feature name is required') if args.length < 1
115
+ name = args[0]
116
+ delete(path, user, name, GitflowType::FEATURE)
106
117
  end
107
118
  end
108
119
 
@@ -117,7 +128,88 @@ module BigKeeper
117
128
  end
118
129
  end
119
130
 
120
- desc 'Release operations'
131
+ desc 'Gitflow hotfix operations'
132
+ command :hotfix do |c|
133
+
134
+ c.desc 'Start a new hotfix with name for given modules and main project'
135
+ c.command :start do |start|
136
+ start.action do |global_options, options, args|
137
+ help_now!('user name is required') if user and user.empty?
138
+ help_now!('hotfix name is required') if args.length < 1
139
+ name = args[0]
140
+ modules = args[(1...args.length)] if args.length > 1
141
+ start(path, version, user, name, modules, GitflowType::HOTFIX)
142
+ end
143
+ end
144
+
145
+ c.desc 'Update modules for the hotfix with name'
146
+ c.command :update do |update|
147
+ update.action do |global_options, options, args|
148
+ help_now!('user name is required') if user and user.empty?
149
+ modules = args[(0...args.length)] if args.length > 0
150
+ update(path, user, modules, GitflowType::HOTFIX)
151
+ end
152
+ end
153
+
154
+ c.desc 'Switch to the hotfix with name'
155
+ c.command :switch do |switch|
156
+ switch.action do |global_options, options, args|
157
+ help_now!('user name is required') if user and user.empty?
158
+ help_now!('hotfix name is required') if args.length < 1
159
+ name = args[0]
160
+ switch_to(path, version, user, name, GitflowType::HOTFIX)
161
+ end
162
+ end
163
+
164
+ c.desc 'Pull remote changes for current hotfix'
165
+ c.command :pull do |pull|
166
+ pull.action do |global_options, options, args|
167
+ help_now!('user name is required') if user and user.empty?
168
+ pull(path, user, GitflowType::HOTFIX)
169
+ end
170
+ end
171
+
172
+ c.desc 'Push local changes to remote for current hotfix'
173
+ c.command :push do |push|
174
+ push.action do |global_options, options, args|
175
+ help_now!('user name is required') if user and user.empty?
176
+ help_now!('comment message is required') if args.length < 1
177
+ help_now!(%Q(comment message should be wrappered with '' or "")) if args.length > 1
178
+ comment = args[0]
179
+ push(path, user, comment, GitflowType::HOTFIX)
180
+ end
181
+ end
182
+
183
+ c.desc 'Finish current hotfix'
184
+ c.command :finish do |finish|
185
+ finish.action do |global_options, options, args|
186
+ help_now!('user name is required') if user and user.empty?
187
+ finish(path, user, GitflowType::HOTFIX)
188
+ end
189
+ end
190
+
191
+ c.desc 'Delete hotfix with name'
192
+ c.command :delete do |delete|
193
+ delete.action do |global_options, options, args|
194
+ help_now!('user name is required') if user and user.empty?
195
+ help_now!('feature name is required') if args.length < 1
196
+ name = args[0]
197
+ delete(path, user, name, GitflowType::HOTFIX)
198
+ end
199
+ end
200
+
201
+ c.desc 'List all the hotfixes'
202
+ c.command :list do |list|
203
+ list.action do
204
+ branchs = GitService.new.branchs_with_type(File.expand_path(path), GitflowType::HOTFIX)
205
+ branchs.each do |branch|
206
+ p branch
207
+ end
208
+ end
209
+ end
210
+ end
211
+
212
+ desc 'Gitflow release operations'
121
213
  command :release do |c|
122
214
 
123
215
  c.desc 'Release home project operations'
@@ -141,14 +233,28 @@ module BigKeeper
141
233
  end
142
234
 
143
235
  c.desc 'release module'
144
- c.command :module do |finish|
145
- finish.action do |global_options, options, args|
146
- help_now!('module name is required') if args.length != 1
147
- raise Logger.error("release version is required") if version == nil
148
- module_name = args[0]
149
- start_module_release(path, version, user, module_name)
236
+ c.command :module do |m|
237
+ m.desc 'Start release module project'
238
+ m.command :start do |start|
239
+ start.action do |global_options, options, args|
240
+ help_now!('module name is required') if args.length != 1
241
+ raise Logger.error("release version is required") if version == nil
242
+ module_name = args[0]
243
+ release_module_start(path, version, user, module_name)
244
+ end
245
+ end
246
+
247
+ m.desc 'finish release module project'
248
+ m.command :finish do |finish|
249
+ finish.action do |global_options, options, args|
250
+ help_now!('module name is required') if args.length != 1
251
+ raise Logger.error("release version is required") if version == nil
252
+ module_name = args[0]
253
+ release_module_finish(path, version, user, module_name)
254
+ end
150
255
  end
151
256
  end
257
+
152
258
  end
153
259
 
154
260
  desc 'Podfile operation'
@@ -172,7 +278,7 @@ module BigKeeper
172
278
  end
173
279
  end
174
280
 
175
- desc 'Version'
281
+ desc 'Show version of bigkeeper'
176
282
  command :version do |version|
177
283
  version.action do |global_options, options, args|
178
284
  p "big-keeper (#{VERSION})"
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: big_keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mmoaay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2018-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -197,7 +197,7 @@ description: Efficiency improvement for iOS modular development, iOSer using thi
197
197
  email:
198
198
  - mmoaay@sina.com
199
199
  executables:
200
- - big-keeper
200
+ - bigkeeper
201
201
  - setup
202
202
  extensions: []
203
203
  extra_rdoc_files: []
@@ -213,24 +213,27 @@ files:
213
213
  - README.md
214
214
  - Rakefile
215
215
  - big_keeper.gemspec
216
- - bin/big-keeper
216
+ - bin/bigkeeper
217
217
  - bin/setup
218
218
  - docs/en-US/FEATURE.md
219
+ - docs/en-US/README.md
219
220
  - docs/zh-CN/BIGKEEPER_FILE.md
220
- - docs/zh-CN/FEATURE.md
221
+ - docs/zh-CN/FEATURE&HOTFIX.md
222
+ - docs/zh-CN/PODFILE.md
221
223
  - docs/zh-CN/README.md
224
+ - docs/zh-CN/RECOMMEND.md
222
225
  - docs/zh-CN/RELEASE.md
223
226
  - lib/big_keeper.rb
224
- - lib/big_keeper/command/feature&hotfix/feature_finish.rb
225
- - lib/big_keeper/command/feature&hotfix/feature_pull.rb
226
- - lib/big_keeper/command/feature&hotfix/feature_push.rb
227
- - lib/big_keeper/command/feature&hotfix/feature_start.rb
228
- - lib/big_keeper/command/feature&hotfix/feature_switch.rb
229
- - lib/big_keeper/command/feature&hotfix/feature_update.rb
227
+ - lib/big_keeper/command/feature&hotfix/delete.rb
228
+ - lib/big_keeper/command/feature&hotfix/finish.rb
229
+ - lib/big_keeper/command/feature&hotfix/pull.rb
230
+ - lib/big_keeper/command/feature&hotfix/push.rb
231
+ - lib/big_keeper/command/feature&hotfix/start.rb
232
+ - lib/big_keeper/command/feature&hotfix/switch.rb
233
+ - lib/big_keeper/command/feature&hotfix/update.rb
230
234
  - lib/big_keeper/command/pod/podfile_lock.rb
231
- - lib/big_keeper/command/release/release_home.rb
232
- - lib/big_keeper/command/release/release_module.rb
233
- - lib/big_keeper/command/release/release_module.sh
235
+ - lib/big_keeper/command/release/home.rb
236
+ - lib/big_keeper/command/release/module.rb
234
237
  - lib/big_keeper/model/gitflow_type.rb
235
238
  - lib/big_keeper/model/operate_type.rb
236
239
  - lib/big_keeper/model/podfile_model.rb
@@ -247,6 +250,24 @@ files:
247
250
  - lib/big_keeper/util/podfile_detector.rb
248
251
  - lib/big_keeper/util/podfile_operator.rb
249
252
  - lib/big_keeper/version.rb
253
+ - resources/banner.png
254
+ - resources/keynote/big-keeper-readme-example.key
255
+ - resources/keynote/big-keeper-readme-feature.key
256
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.001.jpeg
257
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.002.jpeg
258
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.003.jpeg
259
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.004.jpeg
260
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.005.jpeg
261
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.006.jpeg
262
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.007.jpeg
263
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.008.jpeg
264
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.009.jpeg
265
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.010.jpeg
266
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.011.jpeg
267
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.012.jpeg
268
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.013.jpeg
269
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.014.jpeg
270
+ - resources/keynote/big-keeper-readme-release.key
250
271
  - resources/readme/big-keeper-readme.001.png
251
272
  - resources/readme/big-keeper-readme.002.png
252
273
  - resources/readme/big-keeper-readme.003.png
@@ -254,9 +275,11 @@ files:
254
275
  - resources/readme/big-keeper-readme.005.png
255
276
  - resources/readme/big-keeper-readme.006.png
256
277
  - resources/readme/big-keeper-readme.007.png
257
- - resources/readme/big-keeper-readme.008.jpeg
258
- - resources/readme/big-keeper-readme.009.jpeg
259
- - resources/readme/big-keeper-readme.010.jpeg
278
+ - resources/readme/big-keeper-readme.008.png
279
+ - resources/readme/big-keeper-readme.009.png
280
+ - resources/readme/big-keeper-readme.010.png
281
+ - resources/readme/big-keeper-readme.011.png
282
+ - resources/readme/big-keeper-readme.012.png
260
283
  homepage: https://github.com/BigKeeper/big-keeper
261
284
  licenses:
262
285
  - MIT
@@ -1,88 +0,0 @@
1
- # feature - 功能开发流程
2
-
3
- 直接在命令行执行 `big-keeper feature --help` 可以查看其提供的所有功能:
4
-
5
- ```
6
- NAME
7
- feature - Feature operations
8
-
9
- SYNOPSIS
10
- big-keeper [global options] feature [command options] finish
11
- big-keeper [global options] feature [command options] list
12
- big-keeper [global options] feature [command options] pull
13
- big-keeper [global options] feature [command options] push
14
- big-keeper [global options] feature [command options] start
15
- big-keeper [global options] feature [command options] switch
16
- big-keeper [global options] feature [command options] update
17
-
18
- COMMAND OPTIONS
19
- -u, --user=arg - (default: mmoaay)
20
-
21
- COMMANDS
22
- finish - Finish current feature
23
- list - List all the features
24
- pull - Pull remote changes for current feature
25
- push - Push local changes to remote for current feature
26
- start - Start a new feature with name for given modules and main project
27
- switch - Switch to the feature with name
28
- update - Update moduels for the feature with name
29
- ```
30
-
31
- 全局参数如下:
32
-
33
- - -u, --user:用户名,默认是 git global config 的 user.name,会显示在命令提示信息中,比如上述提示信息中的默认用户名是 mmoaay
34
-
35
- 功能列表如下:
36
-
37
- - start:
38
- 开始一个新的 feature,输入参数依次为:
39
- - feature 的名字;
40
- - 开发该 feature 需要改动的业务模块名。可以多个,用空格隔开;如果不指定,取 **Bigkeeper 文件中所有的业务模块名**。
41
- - finish:结束当前 feature;
42
- - switch:切换到一个已经存在的 feature,输入参数为 feature 名;
43
- - update:
44
- 更新一个 feature 需要改动的业务模块,输入参数依次为:
45
- - feature 的名字;
46
- - 开发该 feature 需要改动的业务模块名。可以多个,用空格隔开;如果不指定,取 **Bigkeeper 文件中所有的业务模块名**。
47
- - pull:拉取当前 feature 主项目和业务模块的远程 git 仓库更新;
48
- - push:提交并推送当前 feature 主项目和业务模块的本地变更到远程 git 仓库,输入参数为提交信息;
49
- - list:显示当前的 feature 列表。
50
-
51
- ## feature 的工作区
52
-
53
- ![](../../resources/readme/big-keeper-readme.001.png)
54
-
55
- feature 的工作区主要由两部分组成:
56
-
57
- - 主项目;
58
- - 相关业务模块,我们把 Podfile 中引用方式为 `:path => {业务模块本地路径}` 的模块做为相关业务模块。
59
-
60
- 主项目和每个相关业务模块又有各自的工作区,由三个部分组成:
61
-
62
- - 当前代码区改动;
63
- - stash 缓存区,当用户需要切换新的 feature 时,对于用户来不及提交的改动,我们会缓存到各个项目的 stash 中,(PS:所以代码突然不见了不要担心,都在 git 的 stash 里面),而当用户切换回某个 feature 时,我们会把和该 feature 分支同名的 stash 恢复回来,从而使用户可以继续开发之前未完成的部分,因为需要通过 feature 的分支名来匹配 stash,而 git stash 又没有提供给 stash 命名的功能,所以我们实现了 [big-stash](https://github.com/BigKeeper/big-stash) 来完成这个功能;
64
- - git。
65
-
66
- ## feature start 流程
67
-
68
- ![](../../resources/readme/big-keeper-readme.002.png)
69
-
70
- ## feature finish 流程
71
-
72
- ![](../../resources/readme/big-keeper-readme.003.png)
73
-
74
- ## feature switch 流程
75
-
76
- ![](../../resources/readme/big-keeper-readme.004.png)
77
-
78
- ## feature update 流程
79
-
80
- ![](../../resources/readme/big-keeper-readme.005.png)
81
-
82
- ## feature pull 流程
83
-
84
- ![](../../resources/readme/big-keeper-readme.006.png)
85
-
86
- ## feature push 流程
87
-
88
- ![](../../resources/readme/big-keeper-readme.007.png)