module Hoe::Perforce

def define_perforce_tasks

def define_perforce_tasks
  warn :define_perforce_tasks if $DEBUG
  desc "branch the project from dev to version dir"
  task :branch do
    original_dir = File.basename(Dir.pwd)
    Dir.chdir ".."
    target_dir = File.directory?(version) ? version : original_dir
    branching  = target_dir == original_dir && target_dir != version
    pkg = File.basename(Dir.pwd)
    begin
      p4_integrate original_dir, version if branching
      validate_manifest_file version
      p4_submit "Branching #{pkg} to version #{version}" if branching
    rescue => e
      warn e
      p4_revert version
      raise e
    end
    Dir.chdir version
  end
  task :prerelease => :branch
  task :postrelease => :announce do
    system 'rake clean'
  end
  desc "Generate historical flog/flay data for all releases"
  task :history do
    p4_history
  end
end