ADDED nexttag.rb Index: nexttag.rb ================================================================== --- /dev/null +++ nexttag.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby + + +def get_next_tag + + + this_branch = `fossil branch`.sub(/\A.*\* /m,'').sub(/\n.*\z/m,'') + abort "Not on a version branch like v1.64 (got: >#{this_branch}<)" unless this_branch.match(/^v\d\.\d\d$/) + + #puts "this branch: #{this_branch}" + + tag_pat = /#{this_branch}(\d\d)/ + remote=`fsl remote`.chomp.sub(/^file:\/\//,'') # get tagset from origin + cmd="fossil tag -R '#{remote}' list" + tags = `#{cmd}`.split /\n/ + abort "fossil command failed [#{cmd}]" if $? != 0 + branch_tags = tags.find_all{|x| x.match(tag_pat) }.sort + if branch_tags.length == 0 + return this_branch + "01" + else + latest_tag = branch_tags.last + m1 = latest_tag.match(tag_pat) + minor_digits = m1[1].to_i + 1 + if (minor_digits % 10) == 0 + minor_digits += 1 + end + new_tag=sprintf("%s%02d", this_branch, minor_digits) + return new_tag + end +end + +print get_next_tag