Class: DTK::Client::CommandHelper::GitRepo::Merge

Inherits:
Object
  • Object
show all
Defined in:
lib/command_helpers/git_repo/merge.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repo, remote_branch_ref, opts = {}) ⇒ Merge

Returns a new instance of Merge.



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/command_helpers/git_repo/merge.rb', line 22

def initialize(repo, remote_branch_ref, opts = {})
  @repo              = repo
  @remote_branch_ref = remote_branch_ref
  @local_branch      = repo.local_branch_name
  
  # options
  @opts_commit_sha = opts[:commit_sha]
  @opts_force = opts[:force]
  @opts_ignore_dependency_merge_conflict = opts[:ignore_dependency_merge_conflict]
  @opts_full_module_name = opts[:full_module_name]
  @opts_command = opts[:command]
end

Class Method Details

.merge(repo, remote_branch_ref, opts = {}) ⇒ Object



35
36
37
# File 'lib/command_helpers/git_repo/merge.rb', line 35

def self.merge(repo, remote_branch_ref, opts = {})
  new(repo, remote_branch_ref, opts).merge
end

Instance Method Details

#mergeObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/command_helpers/git_repo/merge.rb', line 39

def merge
  if @opts_force
    merge_force()
  else
    # check if merge needed
    merge_rel = merge_relationship()
    case merge_rel
     when :equal 
      response__no_diffs()
     when :local_ahead, :branchpoint
      merge_not_fast_forward(merge_rel)
     when :local_behind
      merge_simple()
     else
      raise Error.new("Unexpected merge_rel (#{merge_rel})")
    end
  end
end