def merge(opts)
merge_branch = @repo.versionToLocalBranch(@version, opts[:do_merge])
hash_to_merge = @repo.runGit("rev-parse --verify --quiet #{merge_branch}")
if $? != 0 then
log(:INFO, "Branch #{merge_branch} does not exists. Skipping...")
return
end
merge_base_hash = @repo.runGit("merge-base #{merge_branch} #{@local_branch}")
if merge_base_hash == hash_to_merge then
log(:INFO, "Branch #{merge_branch} has no commit that needs to be merged")
return
end
rep = GitMaintain::checkLog(opts, merge_branch, @local_branch, "merge")
if rep == "y" then
@repo.runGit("merge #{merge_branch}")
if $? != 0 then
log(:WARNING, "Merge failure. Starting bash for manual fixes. Exit shell to continue")
@repo.runBash()
end
else
log(:INFO, "Skipping merge")
return
end
end