Sha256: f6b493e123e558c54731cca9f6ded77b167b174fa66bf0ef3c133e3dd69f7d56

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

require 'colorize'
require_relative '../util/submodule'

module GGSM
  module Merge
    include Submodule

    def merge_flow(branch)
      check_submodule
      check_un_commit_code

      arry_conflict = []

      foreach_module {|sub|
        process_merge(arry_conflict, sub, branch)
      }

      puts '==> 进入主工程:'.yellow
      process_rebase(arry_conflict, branch)
      puts "Modules执行:git merge #{branch}".blue

      if arry_conflict.size > 0
        tip = "==> #{arry_conflict.size}个模块冲突:"
        arry_conflict.reverse.each do |sub|
          tip = "#{tip}  #{sub}"
        end
        puts tip.red
      end
    end

    def process_merge(arry_conflict, module_name, branch)
      result_merge = `git merge #{branch}`
      puts result_merge

      if result_merge.include? 'Merge conflict'
        arry_conflict.push(module_name)
      end
    end

    def process_rebase(arry_conflict, branch)
      result_merge = `git rebase #{branch}`
      puts result_merge

      if result_merge.include? 'Merge conflict'
        arry_conflict.push('主工程')
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ggsm-1.6.2 lib/ggsm/command/merge.rb
ggsm-1.6.1 lib/ggsm/command/merge.rb
ggsm-1.6.0 lib/ggsm/command/merge.rb
ggsm-1.5.1 lib/ggsm/flow/merge.rb
ggsm-1.5.0 lib/ggsm/flow/merge.rb