big_keeper 0.6.0 → 0.7.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/Gemfile.lock +2 -2
- data/lib/big_keeper.rb +13 -12
- data/lib/big_keeper/command/{feature_finish.rb → feature&hotfix/feature_finish.rb} +8 -4
- data/lib/big_keeper/command/{feature_pull.rb → feature&hotfix/feature_pull.rb} +4 -2
- data/lib/big_keeper/command/feature&hotfix/feature_push.rb +29 -0
- data/lib/big_keeper/command/{feature_start.rb → feature&hotfix/feature_start.rb} +6 -4
- data/lib/big_keeper/command/{feature_switch.rb → feature&hotfix/feature_switch.rb} +6 -4
- data/lib/big_keeper/command/{feature_update.rb → feature&hotfix/feature_update.rb} +7 -3
- data/lib/big_keeper/command/{podfile_lock.rb → pod/podfile_lock.rb} +6 -6
- data/lib/big_keeper/command/{release_home.rb → release/release_home.rb} +10 -8
- data/lib/big_keeper/command/release/release_module.rb +86 -0
- data/lib/big_keeper/command/{start_module_release.sh → release/release_module.sh} +0 -0
- data/lib/big_keeper/service/git_service.rb +32 -16
- data/lib/big_keeper/service/module_service.rb +21 -13
- data/lib/big_keeper/service/stash_service.rb +22 -19
- data/lib/big_keeper/util/git_operator.rb +8 -2
- data/lib/big_keeper/util/gitflow_operator.rb +1 -1
- data/lib/big_keeper/util/info_plist_operator.rb +1 -1
- data/lib/big_keeper/util/{log_util.rb → logger.rb} +1 -1
- data/lib/big_keeper/util/pod_operator.rb +14 -0
- data/lib/big_keeper/util/podfile_detector.rb +3 -3
- data/lib/big_keeper/version.rb +1 -1
- metadata +14 -14
- data/lib/big_keeper/command/feature_push.rb +0 -37
- data/lib/big_keeper/command/hotfix_start.rb +0 -0
- data/lib/big_keeper/command/release_module.rb +0 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6967a93e88df9fe276ccf6226dc5b12a921ef49e
|
4
|
+
data.tar.gz: 20939ca9f234ae42500e583ce44b9d09c17a75ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87d3900605fe6f45777a4fdfc00b5b9006505ec6b14a24c5001c298e02c3bafb4c0206fd29eb11a940882c4912a2ef5895c684ed31adfd09776abac8d2c7fc46
|
7
|
+
data.tar.gz: 36c0f7aa3abc80fc0d7ba86e87b1d30b0089294ed41b90243c8cad70cb251c3c549bdeb21bf19d73c5d7269bcc36e35ed4da7082f7cfda389b16c7d7076859d4
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
big_keeper (0.
|
4
|
+
big_keeper (0.6.0)
|
5
5
|
big_stash (~> 0.1)
|
6
6
|
cocoapods
|
7
7
|
colorize
|
@@ -19,7 +19,7 @@ GEM
|
|
19
19
|
thread_safe (~> 0.3, >= 0.3.4)
|
20
20
|
tzinfo (~> 1.1)
|
21
21
|
ast (2.3.0)
|
22
|
-
big_stash (0.
|
22
|
+
big_stash (0.6.0)
|
23
23
|
gli (~> 2.16)
|
24
24
|
claide (1.0.1)
|
25
25
|
cocoapods (1.2.1)
|
data/lib/big_keeper.rb
CHANGED
@@ -7,15 +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_start'
|
11
|
-
require 'big_keeper/command/feature_finish'
|
12
|
-
require 'big_keeper/command/feature_switch'
|
13
|
-
require 'big_keeper/command/feature_update'
|
14
|
-
require 'big_keeper/command/feature_pull'
|
15
|
-
require 'big_keeper/command/feature_push'
|
16
|
-
require 'big_keeper/command/release_home'
|
17
|
-
require 'big_keeper/command/release_module'
|
18
|
-
require 'big_keeper/command/podfile_lock'
|
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'
|
18
|
+
require 'big_keeper/command/pod/podfile_lock'
|
19
19
|
|
20
20
|
require 'big_keeper/service/git_service'
|
21
21
|
|
@@ -92,6 +92,7 @@ module BigKeeper
|
|
92
92
|
push.action do |global_options, options, args|
|
93
93
|
help_now!('user name is required') if user and user.empty?
|
94
94
|
help_now!('comment message is required') if args.length < 1
|
95
|
+
help_now!(%Q(comment message should be wrappered with '' or "")) if args.length > 1
|
95
96
|
comment = args[0]
|
96
97
|
feature_push(path, user, comment)
|
97
98
|
end
|
@@ -125,7 +126,7 @@ module BigKeeper
|
|
125
126
|
home.command :start do |start|
|
126
127
|
start.action do |global_options, options, args|
|
127
128
|
help_now!('user name is required') if user and user.empty?
|
128
|
-
raise
|
129
|
+
raise Logger.error("release version is required") if version == nil
|
129
130
|
release_home_start(path, version, user)
|
130
131
|
end
|
131
132
|
end
|
@@ -133,7 +134,7 @@ module BigKeeper
|
|
133
134
|
home.desc 'Finish release home project'
|
134
135
|
home.command :finish do |finish|
|
135
136
|
finish.action do |global_options, options, args|
|
136
|
-
raise
|
137
|
+
raise Logger.error("release version is required") if version == nil
|
137
138
|
release_home_finish(path, version)
|
138
139
|
end
|
139
140
|
end
|
@@ -143,7 +144,7 @@ module BigKeeper
|
|
143
144
|
c.command :module do |finish|
|
144
145
|
finish.action do |global_options, options, args|
|
145
146
|
help_now!('module name is required') if args.length != 1
|
146
|
-
raise
|
147
|
+
raise Logger.error("release version is required") if version == nil
|
147
148
|
module_name = args[0]
|
148
149
|
start_module_release(path, version, user, module_name)
|
149
150
|
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
|
3
3
|
require 'big_keeper/util/podfile_operator'
|
4
|
+
require 'big_keeper/util/logger'
|
5
|
+
require 'big_keeper/util/pod_operator'
|
4
6
|
require 'big_keeper/util/bigkeeper_parser'
|
5
7
|
|
6
8
|
require 'big_keeper/model/podfile_type'
|
7
9
|
|
10
|
+
|
8
11
|
module BigKeeper
|
9
12
|
|
10
13
|
def self.feature_finish(path, user)
|
@@ -16,7 +19,7 @@ module BigKeeper
|
|
16
19
|
BigkeeperParser.module_names, ModuleType::PATH)
|
17
20
|
|
18
21
|
branch_name = GitOperator.new.current_branch(path)
|
19
|
-
|
22
|
+
Logger.error("Not a feature branch, exit.") unless branch_name.include? 'feature'
|
20
23
|
|
21
24
|
# Rebase modules and modify podfile as git
|
22
25
|
modules.each do |module_name|
|
@@ -32,12 +35,13 @@ module BigKeeper
|
|
32
35
|
end
|
33
36
|
|
34
37
|
# pod install
|
35
|
-
|
38
|
+
PodOperator.pod_install(path)
|
36
39
|
|
40
|
+
Logger.highlight("Finish branch '#{branch_name}' for 'Home'")
|
37
41
|
# Push home changes to remote
|
38
|
-
|
39
|
-
GitOperator.new.push(path, branch_name)
|
42
|
+
GitService.new.verify_push(path, "finish #{GitflowType.name(GitflowType::FEATURE)} #{branch_name}", branch_name, 'Home')
|
40
43
|
|
44
|
+
# Rebase Home
|
41
45
|
GitService.new.verify_rebase(path, 'develop', 'Home')
|
42
46
|
|
43
47
|
`open #{BigkeeperParser.home_pulls()}`
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'big_keeper/util/logger'
|
2
|
+
|
1
3
|
module BigKeeper
|
2
4
|
def self.feature_pull(path, user)
|
3
5
|
begin
|
@@ -5,7 +7,7 @@ module BigKeeper
|
|
5
7
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
6
8
|
|
7
9
|
branch_name = GitOperator.new.current_branch(path)
|
8
|
-
|
10
|
+
Logger.error('Not a feature branch, exit.') unless branch_name.include? 'feature'
|
9
11
|
|
10
12
|
modules = PodfileOperator.new.modules_with_type("#{path}/Podfile",
|
11
13
|
BigkeeperParser.module_names, ModuleType::PATH)
|
@@ -14,7 +16,7 @@ module BigKeeper
|
|
14
16
|
ModuleService.new.pull(path, user, module_name, branch_name)
|
15
17
|
end
|
16
18
|
|
17
|
-
|
19
|
+
Logger.highlight("Pull branch '#{branch_name}' for 'Home'...")
|
18
20
|
GitOperator.new.pull(path)
|
19
21
|
ensure
|
20
22
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'big_keeper/util/logger'
|
2
|
+
|
3
|
+
module BigKeeper
|
4
|
+
|
5
|
+
def self.feature_push(path, user, comment)
|
6
|
+
begin
|
7
|
+
# Parse Bigkeeper file
|
8
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
9
|
+
|
10
|
+
branch_name = GitOperator.new.current_branch(path)
|
11
|
+
Logger.error("Not a feature branch, exit.") unless branch_name.include? 'feature'
|
12
|
+
|
13
|
+
modules = PodfileOperator.new.modules_with_type("#{path}/Podfile",
|
14
|
+
BigkeeperParser.module_names, ModuleType::PATH)
|
15
|
+
|
16
|
+
modules.each do |module_name|
|
17
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
18
|
+
module_branch_name = GitOperator.new.current_branch(module_full_path)
|
19
|
+
|
20
|
+
Logger.highlight("Push branch '#{branch_name}' for module '#{module_name}'...")
|
21
|
+
GitService.new.verify_push(path, comment, module_branch_name, module_name)
|
22
|
+
end
|
23
|
+
|
24
|
+
Logger.highlight("Push branch '#{branch_name}' for 'Home'...")
|
25
|
+
GitService.new.verify_push(path, comment, branch_name, 'Home')
|
26
|
+
ensure
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'big_keeper/util/podfile_operator'
|
4
4
|
require 'big_keeper/util/gitflow_operator'
|
5
5
|
require 'big_keeper/util/bigkeeper_parser'
|
6
|
+
require 'big_keeper/util/logger'
|
7
|
+
require 'big_keeper/util/pod_operator'
|
6
8
|
|
7
9
|
require 'big_keeper/model/podfile_type'
|
8
10
|
|
@@ -26,7 +28,7 @@ module BigKeeper
|
|
26
28
|
BigkeeperParser.module_names, ModuleType::PATH)
|
27
29
|
|
28
30
|
# Stash current branch
|
29
|
-
StashService.new.
|
31
|
+
StashService.new.stash_all(path, branch_name, user, stash_modules)
|
30
32
|
|
31
33
|
# Handle modules
|
32
34
|
if modules
|
@@ -37,6 +39,7 @@ module BigKeeper
|
|
37
39
|
modules = BigkeeperParser.module_names
|
38
40
|
end
|
39
41
|
|
42
|
+
Logger.highlight("Add branch '#{branch_name}' for 'Home'...")
|
40
43
|
# Start home feature
|
41
44
|
GitService.new.start(path, feature_name, GitflowType::FEATURE)
|
42
45
|
|
@@ -46,11 +49,10 @@ module BigKeeper
|
|
46
49
|
end
|
47
50
|
|
48
51
|
# pod install
|
49
|
-
|
52
|
+
PodOperator.pod_install(path)
|
50
53
|
|
51
54
|
# Push home changes to remote
|
52
|
-
|
53
|
-
GitOperator.new.push(path, branch_name)
|
55
|
+
GitService.new.verify_push(path, "init #{GitflowType.name(GitflowType::FEATURE)} #{feature_name}", branch_name, 'Home')
|
54
56
|
|
55
57
|
# Open home workspace
|
56
58
|
`open #{path}/*.xcworkspace`
|
@@ -1,5 +1,7 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
require 'big_stash/stash_operator'
|
3
|
+
require 'big_keeper/util/logger'
|
4
|
+
require 'big_keeper/util/pod_operator'
|
3
5
|
|
4
6
|
module BigKeeper
|
5
7
|
def self.feature_switch(path, version, user, name)
|
@@ -13,18 +15,18 @@ module BigKeeper
|
|
13
15
|
|
14
16
|
GitService.new.verify_branch(path, branch_name, OperateType::SWITCH)
|
15
17
|
|
16
|
-
|
18
|
+
stash_modules = PodfileOperator.new.modules_with_type("#{path}/Podfile",
|
17
19
|
BigkeeperParser.module_names, ModuleType::PATH)
|
18
20
|
|
19
21
|
# Stash current branch
|
20
|
-
StashService.new.
|
22
|
+
StashService.new.stash_all(path, branch_name, user, stash_modules)
|
21
23
|
|
22
24
|
# Switch to new feature
|
23
25
|
GitOperator.new.git_checkout(path, branch_name)
|
24
26
|
GitOperator.new.pull(path)
|
25
27
|
|
26
28
|
# Apply home stash
|
27
|
-
|
29
|
+
StashService.new.pop_stash(path, branch_name, 'Home')
|
28
30
|
|
29
31
|
modules = PodfileOperator.new.modules_with_type("#{path}/Podfile",
|
30
32
|
BigkeeperParser.module_names, ModuleType::PATH)
|
@@ -34,7 +36,7 @@ module BigKeeper
|
|
34
36
|
end
|
35
37
|
|
36
38
|
# pod install
|
37
|
-
|
39
|
+
PodOperator.pod_install(path)
|
38
40
|
|
39
41
|
# Open home workspace
|
40
42
|
`open #{path}/*.xcworkspace`
|
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'big_keeper/util/podfile_operator'
|
4
4
|
require 'big_keeper/util/gitflow_operator'
|
5
5
|
require 'big_keeper/util/bigkeeper_parser'
|
6
|
+
require 'big_keeper/util/logger'
|
7
|
+
require 'big_keeper/util/pod_operator'
|
6
8
|
|
7
9
|
require 'big_keeper/model/podfile_type'
|
8
10
|
|
@@ -17,7 +19,7 @@ module BigKeeper
|
|
17
19
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
18
20
|
|
19
21
|
branch_name = GitOperator.new.current_branch(path)
|
20
|
-
|
22
|
+
Logger.error("Not a feature branch, exit.") unless branch_name.include? 'feature'
|
21
23
|
|
22
24
|
feature_name = branch_name.gsub(/feature\//, '')
|
23
25
|
|
@@ -33,11 +35,13 @@ module BigKeeper
|
|
33
35
|
modules = BigkeeperParser.module_names
|
34
36
|
end
|
35
37
|
|
38
|
+
Logger.highlight("Start to update modules for branch '#{branch_name}'...")
|
39
|
+
|
36
40
|
add_modules = modules - current_modules
|
37
41
|
del_modules = current_modules - modules
|
38
42
|
|
39
43
|
if add_modules.empty? and del_modules.empty?
|
40
|
-
|
44
|
+
Logger.info("There is nothing changed with modules #{modules}.")
|
41
45
|
else
|
42
46
|
# Modify podfile as path and Start modules feature
|
43
47
|
add_modules.each do |module_name|
|
@@ -49,7 +53,7 @@ module BigKeeper
|
|
49
53
|
end
|
50
54
|
|
51
55
|
# pod install
|
52
|
-
|
56
|
+
PodOperator.pod_install(path)
|
53
57
|
|
54
58
|
# Open home workspace
|
55
59
|
`open #{path}/*.xcworkspace`
|
@@ -4,7 +4,7 @@ require 'big_keeper/util/podfile_operator'
|
|
4
4
|
require 'big_keeper/util/gitflow_operator'
|
5
5
|
require 'big_keeper/util/bigkeeper_parser'
|
6
6
|
require 'big_keeper/model/podfile_type'
|
7
|
-
require 'big_keeper/util/
|
7
|
+
require 'big_keeper/util/logger'
|
8
8
|
|
9
9
|
module BigKeeper
|
10
10
|
|
@@ -19,9 +19,9 @@ module BigKeeper
|
|
19
19
|
unlock_pod_list = detector.get_unlock_pod_list
|
20
20
|
# Print out unlock pod list
|
21
21
|
unlock_pod_list.each do |pod_name|
|
22
|
-
|
22
|
+
Logger.default("#{pod_name} should be locked.")
|
23
23
|
end
|
24
|
-
|
24
|
+
Logger.separator
|
25
25
|
|
26
26
|
end
|
27
27
|
|
@@ -37,11 +37,11 @@ module BigKeeper
|
|
37
37
|
# Get Version
|
38
38
|
dictionary = detector.deal_lock_file(path,unlock_pod_list)
|
39
39
|
if dictionary.empty?
|
40
|
-
|
40
|
+
Logger.warning("There is nothing to be locked.")
|
41
41
|
else
|
42
42
|
PodfileOperator.new.find_and_lock("#{path}/Podfile",dictionary)
|
43
|
-
|
44
|
-
|
43
|
+
Logger.highlight("The Podfile has been changed.")
|
44
|
+
Logger.separator
|
45
45
|
end
|
46
46
|
|
47
47
|
|
@@ -3,7 +3,7 @@ require 'big_keeper/util/podfile_operator'
|
|
3
3
|
require 'big_keeper/util/gitflow_operator'
|
4
4
|
require 'big_keeper/model/podfile_type'
|
5
5
|
require 'big_keeper/util/info_plist_operator'
|
6
|
-
require 'big_keeper/util/
|
6
|
+
require 'big_keeper/util/logger'
|
7
7
|
|
8
8
|
module BigKeeper
|
9
9
|
def self.release_home_start(path, version, user)
|
@@ -16,7 +16,7 @@ module BigKeeper
|
|
16
16
|
if GitOperator.new.has_branch(path, "release/#{version}")
|
17
17
|
if GitOperator.new.current_branch(path) == "release/#{version}"
|
18
18
|
GitOperator.new.commit(path, "release: V #{version}")
|
19
|
-
GitOperator.new.
|
19
|
+
GitOperator.new.first_push(path, "release/#{version}")
|
20
20
|
GitflowOperator.new.finish_release(path, version)
|
21
21
|
if GitOperator.new.current_branch(path) == "master"
|
22
22
|
GitOperator.new.tag(path, version)
|
@@ -25,10 +25,10 @@ module BigKeeper
|
|
25
25
|
GitOperator.new.tag(path, version)
|
26
26
|
end
|
27
27
|
else
|
28
|
-
raise
|
28
|
+
raise Logger.error("Not in release branch, please check your branches.")
|
29
29
|
end
|
30
30
|
else
|
31
|
-
raise
|
31
|
+
raise Logger.error("Not has release branch, please use release start first.")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -37,18 +37,20 @@ module BigKeeper
|
|
37
37
|
def self.start_release(project_path, version, modules, user)
|
38
38
|
Dir.chdir(project_path) do
|
39
39
|
# step 0 Stash current branch
|
40
|
-
StashService.new.
|
40
|
+
StashService.new.stash_all(project_path, GitOperator.new.current_branch(project_path), user, modules)
|
41
41
|
|
42
|
+
Logger.highlight(%Q(Start to checkout Branch release/#{version}))
|
42
43
|
# step 1 checkout release
|
43
44
|
if GitOperator.new.current_branch(project_path) != "release/#{version}"
|
44
45
|
if GitOperator.new.has_branch(project_path, "release/#{version}")
|
45
46
|
GitOperator.new.git_checkout(project_path, "release/#{version}")
|
46
47
|
else
|
47
48
|
GitflowOperator.new.start(project_path, version, GitflowType::RELEASE)
|
48
|
-
GitOperator.new.
|
49
|
+
GitOperator.new.first_push(project_path, "release/#{version}")
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
53
|
+
Logger.highlight(%Q(Start to release/#{version}))
|
52
54
|
# step 2 replace_modules
|
53
55
|
PodfileOperator.new.replace_all_module_release(%Q(#{project_path}/Podfile),
|
54
56
|
modules,
|
@@ -57,8 +59,8 @@ module BigKeeper
|
|
57
59
|
# step 3 change Info.plist value
|
58
60
|
InfoPlistOperator.new.change_version_build(project_path, version)
|
59
61
|
|
60
|
-
|
61
|
-
|
62
|
+
PodOperator.pod_install(project_path)
|
63
|
+
`open #{project_path}/*.xcworkspace`
|
62
64
|
end
|
63
65
|
end
|
64
66
|
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'big_keeper/util/podfile_operator'
|
3
|
+
require 'big_keeper/util/gitflow_operator'
|
4
|
+
require 'big_keeper/model/podfile_type'
|
5
|
+
require 'big_keeper/util/info_plist_operator'
|
6
|
+
require 'big_keeper/util/git_operator'
|
7
|
+
require 'big_keeper/util/logger'
|
8
|
+
|
9
|
+
module BigKeeper
|
10
|
+
def self.start_module_release(path, version, user, module_name)
|
11
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
12
|
+
Dir.chdir(path) do
|
13
|
+
module_release(BigkeeperParser::module_path(user, module_name),
|
14
|
+
version,
|
15
|
+
module_name,
|
16
|
+
GitInfo.new(BigkeeperParser::home_git, GitType::TAG, version),
|
17
|
+
user)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def self.module_release(module_path, version, module_name, source, user)
|
23
|
+
Dir.chdir(module_path) do
|
24
|
+
if GitOperator.new.has_changes(module_path)
|
25
|
+
StashService.new.stash_all(module_path, GitOperator.new.current_branch(module_path), user, module_name.split())
|
26
|
+
end
|
27
|
+
|
28
|
+
# step 1 checkout release
|
29
|
+
Logger.highlight(%Q(Start checkout #{module_name} to Branch release/#{version}))
|
30
|
+
if GitOperator.new.current_branch(module_path) != "release/#{version}"
|
31
|
+
if GitOperator.new.has_branch(module_path, "release/#{version}")
|
32
|
+
GitOperator.new.git_checkout(module_path, "release/#{version}")
|
33
|
+
else
|
34
|
+
GitflowOperator.new.start(module_path, version, GitflowType::RELEASE)
|
35
|
+
GitOperator.new.first_push(module_path, "release/#{version}")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#修改 podspec 文件
|
40
|
+
# TO DO: - advanced to use Regular Expression
|
41
|
+
PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
|
42
|
+
GitOperator.new.commit(module_path, "update podspec")
|
43
|
+
GitOperator.new.first_push(module_path, GitOperator.new.current_branch(module_path))
|
44
|
+
|
45
|
+
# Pod lib lint in release/#{tag} branch
|
46
|
+
Logger.highlight(%Q(Start Pod lib lint #{module_name}))
|
47
|
+
has_error = false
|
48
|
+
IO.popen("pod lib lint --allow-warnings --verbose --use-libraries --sources=#{BigkeeperParser::sourcemodule_path}") do |io|
|
49
|
+
io.each do |line|
|
50
|
+
has_error = true if line.include? "ERROR"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
if has_error
|
54
|
+
Logger.error("Pod lib error in '#{module_name}'")
|
55
|
+
return
|
56
|
+
end
|
57
|
+
|
58
|
+
# check out master
|
59
|
+
if GitOperator.new.current_branch(module_path) != "master"
|
60
|
+
current_name = GitOperator.new.current_branch(module_path)
|
61
|
+
GitOperator.new.git_checkout(module_path, "master")
|
62
|
+
Logger.highlight("Push branch '#{branch_name}' for '#{module_name}'...")
|
63
|
+
GitService.new.verify_push(module_path, "finish #{GitflowType.name(GitflowType::RELEASE)} #{branch_name}", "master", "#{module_name}")
|
64
|
+
end
|
65
|
+
|
66
|
+
# to do rebase release to master
|
67
|
+
Logger.highlight(%Q(Rebase develop to master))
|
68
|
+
GitService.new.verify_rebase(module_path, 'develop', "#{module_name}")
|
69
|
+
|
70
|
+
Logger.highlight(%Q(Start Pod repo push #{module_name}))
|
71
|
+
IO.popen("pod repo push #{module_name} #{module_name}.podspec --allow-warnings --sources=#{BigkeeperParser::sourcemodule_path}") do |io|
|
72
|
+
io.each do |line|
|
73
|
+
has_error = true if line.include? "ERROR"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
if has_error
|
77
|
+
Logger.error("Pod repo push in '#{module_name}'")
|
78
|
+
return
|
79
|
+
end
|
80
|
+
|
81
|
+
GitOperator.new.tag(module_path, version)
|
82
|
+
|
83
|
+
Logger.highlight(%Q(Success release #{module_name}))
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
File without changes
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'big_keeper/util/git_operator'
|
2
2
|
require 'big_keeper/model/gitflow_type'
|
3
3
|
require 'big_keeper/model/operate_type'
|
4
|
+
require 'big_keeper/util/logger'
|
4
5
|
|
5
6
|
module BigKeeper
|
6
7
|
# Operator for got
|
@@ -9,7 +10,7 @@ module BigKeeper
|
|
9
10
|
if GitOperator.new.has_remote_branch(path, 'master')
|
10
11
|
if GitOperator.new.has_local_branch(path, 'master')
|
11
12
|
if GitOperator.new.has_commits(path, 'master')
|
12
|
-
|
13
|
+
Logger.error(%Q('master' has unpushed commits, you should fix it))
|
13
14
|
else
|
14
15
|
GitOperator.new.git_checkout(path, 'master')
|
15
16
|
GitOperator.new.pull(path)
|
@@ -22,7 +23,7 @@ module BigKeeper
|
|
22
23
|
if GitOperator.new.has_remote_branch(path, 'develop')
|
23
24
|
if GitOperator.new.has_local_branch(path, 'develop')
|
24
25
|
if GitOperator.new.has_commits(path, 'develop')
|
25
|
-
|
26
|
+
Logger.error(%Q('develop' has unpushed commits, you should fix it))
|
26
27
|
else
|
27
28
|
GitOperator.new.git_checkout(path, 'develop')
|
28
29
|
GitOperator.new.pull(path)
|
@@ -33,8 +34,8 @@ module BigKeeper
|
|
33
34
|
end
|
34
35
|
|
35
36
|
if !GitflowOperator.new.verify_git_flow(path)
|
36
|
-
GitOperator.new.
|
37
|
-
GitOperator.new.
|
37
|
+
GitOperator.new.first_push(path, 'develop') if !GitOperator.new.has_remote_branch(path, 'develop')
|
38
|
+
GitOperator.new.first_push(path, 'master') if !GitOperator.new.has_remote_branch(path, 'master')
|
38
39
|
end
|
39
40
|
|
40
41
|
branch_name = "#{GitflowType.name(type)}/#{name}"
|
@@ -43,36 +44,37 @@ module BigKeeper
|
|
43
44
|
GitOperator.new.pull(path)
|
44
45
|
else
|
45
46
|
GitflowOperator.new.start(path, name, type)
|
46
|
-
GitOperator.new.
|
47
|
+
GitOperator.new.first_push(path, branch_name)
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
50
51
|
def verify_branch(path, branch_name, type)
|
52
|
+
Logger.highlight('Sync local branchs from remote, waiting...')
|
51
53
|
GitOperator.new.git_fetch(path)
|
52
54
|
|
53
55
|
if OperateType::START == type
|
54
56
|
if GitOperator.new.current_branch(path) == branch_name
|
55
|
-
|
57
|
+
Logger.error(%(Current branch is '#{branch_name}' already. Use 'update' please))
|
56
58
|
end
|
57
59
|
if GitOperator.new.has_branch(path, branch_name)
|
58
|
-
|
60
|
+
Logger.error(%(Branch '#{branch_name}' already exists. Use 'switch' please))
|
59
61
|
end
|
60
62
|
elsif OperateType::SWITCH == type
|
61
63
|
if !GitOperator.new.has_branch(path, branch_name)
|
62
|
-
|
64
|
+
Logger.error(%(Can't find a branch named '#{branch_name}'. Use 'start' please))
|
63
65
|
end
|
64
66
|
if GitOperator.new.current_branch(path) == branch_name
|
65
|
-
|
67
|
+
Logger.error(%(Current branch is '#{branch_name}' already. Use 'update' please))
|
66
68
|
end
|
67
69
|
elsif OperateType::UPDATE == type
|
68
70
|
if !GitOperator.new.has_branch(path, branch_name)
|
69
|
-
|
71
|
+
Logger.error(%(Can't find a branch named '#{branch_name}'. Use 'start' please))
|
70
72
|
end
|
71
73
|
if GitOperator.new.current_branch(path) != branch_name
|
72
|
-
|
74
|
+
Logger.error(%(Current branch is not '#{branch_name}'. Use 'switch' please))
|
73
75
|
end
|
74
76
|
else
|
75
|
-
|
77
|
+
Logger.error(%(Not a valid command for '#{branch_name}'.))
|
76
78
|
end
|
77
79
|
end
|
78
80
|
|
@@ -88,25 +90,39 @@ module BigKeeper
|
|
88
90
|
branchs
|
89
91
|
end
|
90
92
|
|
93
|
+
def verify_push(path, comment, branch_name, name)
|
94
|
+
git = GitOperator.new
|
95
|
+
if git.has_changes(path)
|
96
|
+
git.commit(path, comment)
|
97
|
+
if git.has_remote_branch(path, branch_name)
|
98
|
+
git.push(path)
|
99
|
+
else
|
100
|
+
git.first_push(path, branch_name)
|
101
|
+
end
|
102
|
+
else
|
103
|
+
Logger.default("Nothing to push for '#{name}'.")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
91
107
|
def verify_rebase(path, branch_name, name)
|
92
108
|
Dir.chdir(path) do
|
93
109
|
IO.popen("git rebase #{branch_name} --ignore-whitespace") do |io|
|
94
110
|
unless io.gets
|
95
|
-
|
111
|
+
Logger.error("#{name} is already in a rebase-apply, Please:\n\
|
96
112
|
1.Resolve it;\n\
|
97
113
|
2.Commit the changes;\n\
|
98
114
|
3.Push to remote;\n\
|
99
115
|
4.Create a MR;\n\
|
100
|
-
5.Run 'finish' again."
|
116
|
+
5.Run 'finish' again.")
|
101
117
|
end
|
102
118
|
io.each do |line|
|
103
119
|
next unless line.include? 'Merge conflict'
|
104
|
-
|
120
|
+
Logger.error("Merge conflict in #{name}, Please:\n\
|
105
121
|
1.Resolve it;\n\
|
106
122
|
2.Commit the changes;\n\
|
107
123
|
3.Push to remote;\n\
|
108
124
|
4.Create a MR;\n\
|
109
|
-
5.Run 'finish' again."
|
125
|
+
5.Run 'finish' again.")
|
110
126
|
end
|
111
127
|
end
|
112
128
|
`git push -f origin #{branch_name}`
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'big_keeper/service/git_service'
|
2
|
+
require 'big_keeper/util/logger'
|
2
3
|
|
3
4
|
module BigKeeper
|
4
5
|
# Operator for got
|
@@ -6,19 +7,23 @@ module BigKeeper
|
|
6
7
|
def pull(path, user, module_name, branch_name)
|
7
8
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
8
9
|
|
10
|
+
Logger.highlight("Pull branch '#{branch_name}' for module '#{module_name}'...")
|
11
|
+
|
9
12
|
if !File.exist? module_full_path
|
13
|
+
Logger.default("No local repository for module '#{module_name}', clone it...")
|
10
14
|
module_git = BigkeeperParser.module_git(module_name)
|
11
15
|
GitOperator.new.clone(File.expand_path("#{module_full_path}/../"), module_git)
|
12
16
|
GitOperator.new.git_checkout(module_full_path, branch_name)
|
13
17
|
else
|
14
18
|
current_branch_name = GitOperator.new.current_branch(module_full_path)
|
15
19
|
if current_branch_name != branch_name
|
16
|
-
|
17
|
-
stash it and checkout #{branch_name}..."
|
18
|
-
|
20
|
+
Logger.default("Current branch of '#{module_name}' is '#{current_branch_name}',\
|
21
|
+
stash it and checkout '#{branch_name}'...")
|
22
|
+
|
23
|
+
StashService.new.stash(module_full_path, current_branch_name, module_name)
|
24
|
+
|
19
25
|
GitOperator.new.git_checkout(module_full_path, branch_name)
|
20
26
|
end
|
21
|
-
p "Pull branch #{branch_name} for module #{module_name}..."
|
22
27
|
GitOperator.new.pull(module_full_path)
|
23
28
|
end
|
24
29
|
end
|
@@ -26,9 +31,10 @@ module BigKeeper
|
|
26
31
|
def switch(path, user, module_name, branch_name)
|
27
32
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
28
33
|
|
29
|
-
|
34
|
+
Logger.highlight("Switch to branch '#{branch_name}' for module '#{module_name}'...")
|
30
35
|
|
31
36
|
if !File.exist? module_full_path
|
37
|
+
Logger.default("No local repository for module '#{module_name}', clone it...")
|
32
38
|
module_git = BigkeeperParser.module_git(module_name)
|
33
39
|
GitOperator.new.clone(File.expand_path("#{module_full_path}/../"), module_git)
|
34
40
|
GitOperator.new.git_checkout(module_full_path, branch_name)
|
@@ -37,7 +43,7 @@ module BigKeeper
|
|
37
43
|
GitOperator.new.pull(module_full_path)
|
38
44
|
end
|
39
45
|
|
40
|
-
|
46
|
+
StashService.new.pop_stash(module_full_path, branch_name, module_name)
|
41
47
|
end
|
42
48
|
|
43
49
|
def finish(path, user, module_name)
|
@@ -45,7 +51,7 @@ module BigKeeper
|
|
45
51
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
46
52
|
branch_name = GitOperator.new.current_branch(module_full_path)
|
47
53
|
|
48
|
-
|
54
|
+
Logger.highlight("Finish branch '#{branch_name}' for module '#{module_name}'...")
|
49
55
|
|
50
56
|
PodfileOperator.new.find_and_replace("#{path}/Podfile",
|
51
57
|
module_name,
|
@@ -60,27 +66,29 @@ module BigKeeper
|
|
60
66
|
def add(path, user, module_name, name, type)
|
61
67
|
branch_name = "#{GitflowType.name(type)}/#{name}"
|
62
68
|
|
63
|
-
|
69
|
+
Logger.highlight("Add branch '#{branch_name}' for module '#{module_name}'...")
|
64
70
|
|
65
71
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
66
72
|
|
67
73
|
# clone module if not exist
|
68
74
|
if !File.exist? module_full_path
|
75
|
+
Logger.default("No local repository for module #{module_name}, clone it...")
|
69
76
|
module_git = BigkeeperParser.module_git(module_name)
|
70
77
|
GitOperator.new.clone(File.expand_path("#{module_full_path}/../"), module_git)
|
71
78
|
end
|
72
79
|
|
73
80
|
# stash current branch
|
74
81
|
current_branch_name = GitOperator.new.current_branch(module_full_path)
|
75
|
-
|
82
|
+
|
83
|
+
StashService.new.stash(module_full_path, current_branch_name, module_name)
|
76
84
|
|
77
85
|
# start new feature/hotfix
|
78
86
|
GitService.new.start(module_full_path, name, type)
|
79
87
|
|
80
|
-
|
81
|
-
BigStash::StashOperator.new(module_full_path).pop_stash(branch_name)
|
88
|
+
StashService.new.pop_stash(module_full_path, branch_name, module_name)
|
82
89
|
|
83
90
|
module_path = BigkeeperParser.module_path(user, module_name)
|
91
|
+
|
84
92
|
PodfileOperator.new.find_and_replace("#{path}/Podfile",
|
85
93
|
module_name,
|
86
94
|
ModuleType::PATH,
|
@@ -90,11 +98,11 @@ module BigKeeper
|
|
90
98
|
def del(path, user, module_name, name, type)
|
91
99
|
branch_name = "#{GitflowType.name(type)}/#{name}"
|
92
100
|
|
93
|
-
|
101
|
+
Logger.highlight("Delete branch '#{branch_name}' for module '#{module_name}'...")
|
94
102
|
|
95
103
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
96
104
|
|
97
|
-
|
105
|
+
StashService.new.stash(module_full_path, branch_name, module_name)
|
98
106
|
|
99
107
|
GitOperator.new.git_checkout(module_full_path, 'develop')
|
100
108
|
GitOperator.new.del(module_full_path, branch_name)
|
@@ -1,42 +1,45 @@
|
|
1
1
|
require 'big_stash/stash_operator'
|
2
2
|
require 'big_keeper/util/bigkeeper_parser'
|
3
3
|
require 'big_keeper/util/git_operator'
|
4
|
+
require 'big_keeper/util/logger'
|
4
5
|
|
5
6
|
module BigKeeper
|
6
7
|
# Operator for got
|
7
8
|
class StashService
|
8
|
-
def
|
9
|
+
def pop_stash(path, branch_name, name)
|
10
|
+
# pop stash
|
11
|
+
if BigStash::StashOperator.new(path).stash_for_name(branch_name)
|
12
|
+
Logger.highlight(%Q(Branch '#{branch_name}' of '#{name}' has stash , start to pop...))
|
13
|
+
BigStash::StashOperator.new(path).pop_stash(branch_name)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def stash(path, branch_name, name)
|
18
|
+
# stash
|
19
|
+
if GitOperator.new.has_changes(path)
|
20
|
+
Logger.highlight(%Q(Branch '#{branch_name}' of '#{name}' needs stash , start to stash...))
|
21
|
+
BigStash::StashOperator.new(path).stash(branch_name)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def stash_all(path, new_branch_name, user, modules)
|
9
26
|
# Stash modules
|
27
|
+
Logger.highlight('Stash for current workspace...')
|
28
|
+
|
10
29
|
modules.each do |module_name|
|
11
30
|
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
12
31
|
branch_name = GitOperator.new.current_branch(module_path)
|
13
32
|
|
14
33
|
if branch_name != new_branch_name
|
15
|
-
|
16
|
-
BigStash::StashOperator.new(module_path).stash(branch_name)
|
17
|
-
else
|
18
|
-
p %Q(Current branch name of '#{module_name}' is the same with new branch, continue...)
|
34
|
+
stash(module_path, branch_name, module_name)
|
19
35
|
end
|
20
36
|
end
|
21
37
|
|
22
38
|
# Stash home
|
23
39
|
branch_name = GitOperator.new.current_branch(path)
|
24
40
|
if branch_name != new_branch_name
|
25
|
-
|
26
|
-
BigStash::StashOperator.new(path).stash(branch_name)
|
27
|
-
else
|
28
|
-
p "Current branch name of home is the same with new branch, continue..."
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def pop_stash(path, user, branch_name, modules)
|
33
|
-
# Stash modules
|
34
|
-
modules.each do |module_name|
|
35
|
-
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
36
|
-
BigStash::StashOperator.new(module_path).pop_stash(branch_name)
|
41
|
+
stash(path, branch_name, 'Home')
|
37
42
|
end
|
38
|
-
# Stash home
|
39
|
-
BigStash::StashOperator.new(path).pop_stash(branch_name)
|
40
43
|
end
|
41
44
|
end
|
42
45
|
end
|
@@ -72,9 +72,15 @@ module BigKeeper
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
-
def
|
75
|
+
def first_push(path, branch_name)
|
76
76
|
Dir.chdir(path) do
|
77
|
-
|
77
|
+
`git push -u origin #{branch_name}`
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def push(path)
|
82
|
+
Dir.chdir(path) do
|
83
|
+
p `git push`
|
78
84
|
end
|
79
85
|
end
|
80
86
|
|
@@ -12,8 +12,8 @@ module BigKeeper
|
|
12
12
|
end
|
13
13
|
info_plist_path = find_infoPlist_filePath(path)
|
14
14
|
result = Plist.parse_xml(info_plist_path)
|
15
|
+
result['CFBundleVersion'] = getBuildVersion(version, result['CFBundleShortVersionString'], result['CFBundleVersion']).to_s
|
15
16
|
result['CFBundleShortVersionString'] = version.to_s
|
16
|
-
result['CFBundleVersion'] = getBuildVersion(version, result['CFBundleShortVersionString'], result['CFBundleVersion'])
|
17
17
|
Plist::Emit.save_plist(result, info_plist_path)
|
18
18
|
puts %Q('Version has changed to #{version}')
|
19
19
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'big_keeper/util/logger'
|
2
|
+
|
3
|
+
module BigKeeper
|
4
|
+
class PodOperator
|
5
|
+
def self.pod_install(path)
|
6
|
+
Logger.highlight('Start pod install, waiting...')
|
7
|
+
|
8
|
+
# pod install
|
9
|
+
`pod install --project-directory=#{path}`
|
10
|
+
|
11
|
+
Logger.highlight('Finish pod install.')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'big_keeper/util/bigkeeper_parser'
|
2
2
|
require 'big_keeper/model/podfile_model'
|
3
|
-
require 'big_keeper/util/
|
3
|
+
require 'big_keeper/util/logger'
|
4
4
|
|
5
5
|
module BigKeeper
|
6
6
|
|
@@ -17,7 +17,7 @@ class PodfileDetector
|
|
17
17
|
|
18
18
|
def get_unlock_pod_list
|
19
19
|
podfile_lines = File.readlines("#{@main_path}/Podfile")
|
20
|
-
|
20
|
+
Logger.highlight("Analyzing Podfile...") unless podfile_lines.size.zero?
|
21
21
|
podfile_lines.collect do |sentence|
|
22
22
|
deal_podfile_line(sentence) unless sentence =~(/(\d+.){1,2}\d+/)
|
23
23
|
end
|
@@ -39,7 +39,7 @@ class PodfileDetector
|
|
39
39
|
def deal_lock_file(main_path,deal_list)
|
40
40
|
$result = {}
|
41
41
|
podfile_lock_lines = File.readlines("#{main_path}/Podfile.lock")
|
42
|
-
|
42
|
+
Logger.highlight("Analyzing Podfile.lock...") unless podfile_lock_lines.size.zero?
|
43
43
|
podfile_lock_lines.select do |sentence|
|
44
44
|
if sentence.include?('DEPENDENCIES') #指定范围解析 Dependencies 之前
|
45
45
|
break
|
data/lib/big_keeper/version.rb
CHANGED
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.
|
4
|
+
version: 0.7.0
|
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-
|
11
|
+
date: 2017-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -221,17 +221,16 @@ files:
|
|
221
221
|
- docs/zh-CN/README.md
|
222
222
|
- docs/zh-CN/RELEASE.md
|
223
223
|
- lib/big_keeper.rb
|
224
|
-
- lib/big_keeper/command/feature_finish.rb
|
225
|
-
- lib/big_keeper/command/feature_pull.rb
|
226
|
-
- lib/big_keeper/command/feature_push.rb
|
227
|
-
- lib/big_keeper/command/feature_start.rb
|
228
|
-
- lib/big_keeper/command/feature_switch.rb
|
229
|
-
- lib/big_keeper/command/feature_update.rb
|
230
|
-
- lib/big_keeper/command/
|
231
|
-
- lib/big_keeper/command/
|
232
|
-
- lib/big_keeper/command/
|
233
|
-
- lib/big_keeper/command/release_module.
|
234
|
-
- lib/big_keeper/command/start_module_release.sh
|
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
|
230
|
+
- 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
234
|
- lib/big_keeper/model/gitflow_type.rb
|
236
235
|
- lib/big_keeper/model/operate_type.rb
|
237
236
|
- lib/big_keeper/model/podfile_model.rb
|
@@ -243,7 +242,8 @@ files:
|
|
243
242
|
- lib/big_keeper/util/git_operator.rb
|
244
243
|
- lib/big_keeper/util/gitflow_operator.rb
|
245
244
|
- lib/big_keeper/util/info_plist_operator.rb
|
246
|
-
- lib/big_keeper/util/
|
245
|
+
- lib/big_keeper/util/logger.rb
|
246
|
+
- lib/big_keeper/util/pod_operator.rb
|
247
247
|
- lib/big_keeper/util/podfile_detector.rb
|
248
248
|
- lib/big_keeper/util/podfile_operator.rb
|
249
249
|
- lib/big_keeper/version.rb
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module BigKeeper
|
2
|
-
|
3
|
-
def self.feature_push(path, user, comment)
|
4
|
-
begin
|
5
|
-
# Parse Bigkeeper file
|
6
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
7
|
-
|
8
|
-
branch_name = GitOperator.new.current_branch(path)
|
9
|
-
raise "Not a feature branch, exit." unless branch_name.include? 'feature'
|
10
|
-
|
11
|
-
modules = PodfileOperator.new.modules_with_type("#{path}/Podfile",
|
12
|
-
BigkeeperParser.module_names, ModuleType::PATH)
|
13
|
-
|
14
|
-
modules.each do |module_name|
|
15
|
-
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
16
|
-
module_branch_name = GitOperator.new.current_branch(module_full_path)
|
17
|
-
|
18
|
-
if GitOperator.new.has_changes(module_full_path)
|
19
|
-
p "Push branch #{branch_name} for module #{module_name}..."
|
20
|
-
GitOperator.new.commit(module_full_path, comment)
|
21
|
-
GitOperator.new.push(module_full_path, module_branch_name)
|
22
|
-
else
|
23
|
-
p "Nothing to push for #{module_name}."
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
if GitOperator.new.has_changes(path)
|
28
|
-
p "Push branch #{branch_name} for home..."
|
29
|
-
GitOperator.new.commit(path, comment)
|
30
|
-
GitOperator.new.push(path, branch_name)
|
31
|
-
else
|
32
|
-
p "Nothing to push for home."
|
33
|
-
end
|
34
|
-
ensure
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
File without changes
|
@@ -1,70 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
require 'big_keeper/util/podfile_operator'
|
3
|
-
require 'big_keeper/util/gitflow_operator'
|
4
|
-
require 'big_keeper/model/podfile_type'
|
5
|
-
require 'big_keeper/util/info_plist_operator'
|
6
|
-
require 'big_keeper/util/git_operator'
|
7
|
-
require 'big_keeper/util/log_util'
|
8
|
-
|
9
|
-
module BigKeeper
|
10
|
-
def self.start_module_release(path, version, user, module_name)
|
11
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
12
|
-
Dir.chdir(path) do
|
13
|
-
module_release(BigkeeperParser::module_path(user, module_name),
|
14
|
-
version,
|
15
|
-
module_name,
|
16
|
-
GitInfo.new(BigkeeperParser::home_git, GitType::TAG, version),
|
17
|
-
user)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
def self.module_release(module_path, version, module_name, source, user)
|
23
|
-
Dir.chdir(module_path) do
|
24
|
-
if GitOperator.new.has_changes(module_path)
|
25
|
-
StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), user, module_name.split())
|
26
|
-
end
|
27
|
-
|
28
|
-
# step 1 checkout release
|
29
|
-
if GitOperator.new.current_branch(module_path) != "release/#{version}"
|
30
|
-
if GitOperator.new.has_branch(module_path, "release/#{version}")
|
31
|
-
GitOperator.new.git_checkout(module_path, "release/#{version}")
|
32
|
-
else
|
33
|
-
GitflowOperator.new.start(module_path, version, GitflowType::RELEASE)
|
34
|
-
GitOperator.new.push(module_path, "release/#{version}")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
p "path----"
|
38
|
-
puts GitOperator.new.current_branch(module_path)
|
39
|
-
#修改 podspec 文件
|
40
|
-
# TO DO: - advanced to use Regular Expression
|
41
|
-
has_error = false
|
42
|
-
IO.popen("pod lib lint --allow-warnings --verbose --use-libraries --sources=#{BigkeeperParser::sourcemodule_path}") do |io|
|
43
|
-
io.each do |line|
|
44
|
-
has_error = true if line.include? "ERROR"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
if has_error
|
48
|
-
puts "error"
|
49
|
-
return
|
50
|
-
end
|
51
|
-
|
52
|
-
puts "error------"
|
53
|
-
# PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
|
54
|
-
# p `pod lib lint --allow-warnings --verbose --use-libraries --sources=#{BigkeeperParser::sourcemodule_path}`
|
55
|
-
|
56
|
-
# GitOperator.new.commit(module_path, "update podspec")
|
57
|
-
# GitOperator.new.push(module_path, GitOperator.new.current_branch(module_path))
|
58
|
-
# if GitOperator.new.current_branch(module_path) != "master"
|
59
|
-
# current_name = GitOperator.new.current_branch(module_path)
|
60
|
-
# p `git checkout master`
|
61
|
-
# p `git merge #{current_name}`
|
62
|
-
# p `git push`
|
63
|
-
# end
|
64
|
-
# GitOperator.new.tag(module_path, version)
|
65
|
-
|
66
|
-
# p `pod repo push #{module_name} #{module_name}.podspec --allow-warnings --sources=#{BigkeeperParser::sourcemodule_path}`
|
67
|
-
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|