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