#! /bin/sh -e case $# in 0 | 1) echo >&2 "usage: $0 NEWVER FILE ..."; exit 2 ;; esac newver=$1; shift for i; do t=$(git log -n1 --date="format:%Y/%m/%d" --format="%H %cd" "$i") read h d </dev/null --contains $h); then v=$newver else v=${v%[~^]*} fi set -e perl -i -pe"s!^((?:\\%\<\\+[^>]*\\>)?\\s*\\[)[\\d/]+ [\\d.]+( .*$)!\${1}$d $v\${2}!" "$i" done