class RGitFlow::Tasks::Release::Start

Public Class Methods

new(git) click to toggle source
Calls superclass method RGitFlow::Tasks::Task::new
# File lib/rgitflow/tasks/release/start.rb, line 7
def initialize(git)
  super(git, 'start', 'Start a release branch', ['rgitflow', 'release'])
end

Protected Instance Methods

run() click to toggle source
# File lib/rgitflow/tasks/release/start.rb, line 13
def run
  status 'Starting release branch...'

  unless @git.current_branch == RGitFlow::Config.options[:develop]
    error 'Cannot create release branch unless on development branch'
    abort
  end

  branch = [RGitFlow::Config.options[:release], RGitFlow::VERSION.to_s].join('/')

  if @git.is_local_branch? branch
    error 'Cannot create a branch that already exists locally'
    abort
  end

  if @git.is_remote_branch? branch
    error 'Cannot create a branch that already exists remotely'
    abort
  end

  @git.branch(branch).create
  @git.branch(branch).checkout

  status "Started release branch #{branch}!"
end