ggsm 1.6.2 → 1.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/lib/ggsm.rb +8 -4
 - data/lib/ggsm/command/finish.rb +9 -5
 - data/lib/ggsm/command/merge.rb +44 -3
 - data/lib/ggsm/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 05c8795b96d0aa91153b1ba4e4d78aa378f49261
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e00c2d488a3cb08f3936e3bf063ce7573b8393e9
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: cf1bfd574589d40f400b6f87765d8192505dfa0551542d0cfd1e4ce14a4115d27129ca0f8c61ddec4c9ae2cd28e7bc8e357a8eca3c0039ef40581edf48fb93f5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f1593b8be071bf1b649519b1439bc173fb8d3e7daf8bf8b920aa0e2e7d9ca3fade2473e1fc1131f4010eb439482ea27b77006b2c3dca99b5eff11e53e7877f54
         
     | 
    
        data/lib/ggsm.rb
    CHANGED
    
    | 
         @@ -28,14 +28,18 @@ module GGSM 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  start_flow(branch, action)
         
     | 
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
                desc 'merge <branch>', 'Merge 
     | 
| 
      
 31 
     | 
    
         
            +
                desc 'merge <branch> [-r|--rebase]', 'Merge,开发完成后执行; --rebase:主工程强制rebase'
         
     | 
| 
      
 32 
     | 
    
         
            +
                option :rebase, :default => false, :type => :boolean, aliases: '-r'
         
     | 
| 
       32 
33 
     | 
    
         
             
                def merge(branch)
         
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
      
 34 
     | 
    
         
            +
                  rebase = options[:rebase]
         
     | 
| 
      
 35 
     | 
    
         
            +
                  merge_flow(branch, rebase)
         
     | 
| 
       34 
36 
     | 
    
         
             
                end
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
                desc 'finish', 'Merge 
     | 
| 
      
 38 
     | 
    
         
            +
                desc 'finish [-f|--force]', 'Merge后并解决冲突后执行; --force:主工程强制推送'
         
     | 
| 
      
 39 
     | 
    
         
            +
                option :force, :default => false, :type => :boolean, aliases: '-f'
         
     | 
| 
       37 
40 
     | 
    
         
             
                def finish
         
     | 
| 
       38 
     | 
    
         
            -
                   
     | 
| 
      
 41 
     | 
    
         
            +
                  force = options[:force]
         
     | 
| 
      
 42 
     | 
    
         
            +
                  finish_flow(force)
         
     | 
| 
       39 
43 
     | 
    
         
             
                end
         
     | 
| 
       40 
44 
     | 
    
         | 
| 
       41 
45 
     | 
    
         
             
                desc 'switch <branch>', '切换分支'
         
     | 
    
        data/lib/ggsm/command/finish.rb
    CHANGED
    
    | 
         @@ -5,20 +5,20 @@ module GGSM 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module Finish
         
     | 
| 
       6 
6 
     | 
    
         
             
                include Submodule
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                def finish_flow
         
     | 
| 
      
 8 
     | 
    
         
            +
                def finish_flow(force)
         
     | 
| 
       9 
9 
     | 
    
         
             
                  check_submodule
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                  foreach_module {
         
     | 
| 
       12 
     | 
    
         
            -
                    process_finish
         
     | 
| 
      
 12 
     | 
    
         
            +
                    process_finish(false)
         
     | 
| 
       13 
13 
     | 
    
         
             
                  }
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                  puts '==> 进入主工程:'.yellow
         
     | 
| 
       16 
     | 
    
         
            -
                  process_finish
         
     | 
| 
      
 16 
     | 
    
         
            +
                  process_finish(force)
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                  puts 'Modules执行:git add & commit & push'.blue
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                def process_finish
         
     | 
| 
      
 21 
     | 
    
         
            +
                def process_finish(force)
         
     | 
| 
       22 
22 
     | 
    
         
             
                  system 'git add .'
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                  branch = get_current_branch
         
     | 
| 
         @@ -28,7 +28,11 @@ module GGSM 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    system 'git commit'
         
     | 
| 
       29 
29 
     | 
    
         
             
                  end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
                   
     | 
| 
      
 31 
     | 
    
         
            +
                  if force
         
     | 
| 
      
 32 
     | 
    
         
            +
                    system "git push origin #{get_current_branch} -f"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  else
         
     | 
| 
      
 34 
     | 
    
         
            +
                    system "git push origin #{get_current_branch}"
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
       32 
36 
     | 
    
         
             
                end
         
     | 
| 
       33 
37 
     | 
    
         
             
              end
         
     | 
| 
       34 
38 
     | 
    
         
             
            end
         
     | 
    
        data/lib/ggsm/command/merge.rb
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ module GGSM 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module Merge
         
     | 
| 
       6 
6 
     | 
    
         
             
                include Submodule
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                def merge_flow(branch)
         
     | 
| 
      
 8 
     | 
    
         
            +
                def merge_flow(branch, force_rebase)
         
     | 
| 
       9 
9 
     | 
    
         
             
                  check_submodule
         
     | 
| 
       10 
10 
     | 
    
         
             
                  check_un_commit_code
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -16,8 +16,19 @@ module GGSM 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  }
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                  puts '==> 进入主工程:'.yellow
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                   
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  main_rebase = false
         
     | 
| 
      
 21 
     | 
    
         
            +
                  if force_rebase
         
     | 
| 
      
 22 
     | 
    
         
            +
                    main_rebase = true
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  if need_rebase(branch) || force_rebase
         
     | 
| 
      
 26 
     | 
    
         
            +
                    process_rebase(arry_conflict, branch)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    puts 'Tip: 主工程rebase模式'.blue
         
     | 
| 
      
 28 
     | 
    
         
            +
                  else
         
     | 
| 
      
 29 
     | 
    
         
            +
                    process_merge(arry_conflict, '主工程', branch)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    puts 'Tip: 主工程merge模式'.blue
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
       21 
32 
     | 
    
         | 
| 
       22 
33 
     | 
    
         
             
                  if arry_conflict.size > 0
         
     | 
| 
       23 
34 
     | 
    
         
             
                    tip = "==> #{arry_conflict.size}个模块冲突:"
         
     | 
| 
         @@ -25,6 +36,14 @@ module GGSM 
     | 
|
| 
       25 
36 
     | 
    
         
             
                      tip = "#{tip}  #{sub}"
         
     | 
| 
       26 
37 
     | 
    
         
             
                    end
         
     | 
| 
       27 
38 
     | 
    
         
             
                    puts tip.red
         
     | 
| 
      
 39 
     | 
    
         
            +
                    puts "Tip: 当你解决冲突后,执行\"git add .\",如需推送远程,在主工程执行\"ggsm finish\"".blue
         
     | 
| 
      
 40 
     | 
    
         
            +
                  else
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    if main_rebase
         
     | 
| 
      
 43 
     | 
    
         
            +
                      puts "Tip: 如需推送远程,执行\"ggsm finish -f|--force\"".blue
         
     | 
| 
      
 44 
     | 
    
         
            +
                    else
         
     | 
| 
      
 45 
     | 
    
         
            +
                      puts "Tip: 如需推送远程,执行\"ggsm finish\"".blue
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
       28 
47 
     | 
    
         
             
                  end
         
     | 
| 
       29 
48 
     | 
    
         
             
                end
         
     | 
| 
       30 
49 
     | 
    
         | 
| 
         @@ -45,5 +64,27 @@ module GGSM 
     | 
|
| 
       45 
64 
     | 
    
         
             
                    arry_conflict.push('主工程')
         
     | 
| 
       46 
65 
     | 
    
         
             
                  end
         
     | 
| 
       47 
66 
     | 
    
         
             
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                def need_rebase(branch)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  pattern = /[0-9a-z]{7}(?=\s)/
         
     | 
| 
      
 70 
     | 
    
         
            +
                  current_branch = get_current_branch
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                  remote = `git config --get branch.#{current_branch}.remote`
         
     | 
| 
      
 73 
     | 
    
         
            +
                  if remote == ''
         
     | 
| 
      
 74 
     | 
    
         
            +
                    return true
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                  diff_logs = `git log --oneline #{branch}..#{current_branch}`.split("\n").reverse
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                  diff_logs.each do |log|
         
     | 
| 
      
 80 
     | 
    
         
            +
                    commit = pattern.match(log.strip)[0]
         
     | 
| 
      
 81 
     | 
    
         
            +
                    result = `git log #{remote}/#{current_branch} |grep #{commit}`
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                    if result.strip != ''
         
     | 
| 
      
 84 
     | 
    
         
            +
                      return false
         
     | 
| 
      
 85 
     | 
    
         
            +
                    end
         
     | 
| 
      
 86 
     | 
    
         
            +
                  end
         
     | 
| 
      
 87 
     | 
    
         
            +
                  true
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
       48 
89 
     | 
    
         
             
              end
         
     | 
| 
       49 
90 
     | 
    
         
             
            end
         
     | 
    
        data/lib/ggsm/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ggsm
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.7.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - YoKey
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-09-18 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     |