1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/scripts/mk-patch.sh Sat Apr 10 12:34:07 2010 +0200
1.3 @@ -0,0 +1,44 @@
1.4 +#!/bin/sh
1.5 +
1.6 +repos="$1"
1.7 +pdir="$2"
1.8 +if [ -z "${repos}" -o ! -d "${repos}" -o -z "${pdir}" -o ! -d "${pdir}" ];then
1.9 + printf "Usage: ${0##*/} <repos_dir> <patch_dir>\n"
1.10 + exit 1
1.11 +fi
1.12 +
1.13 +pdir="$( cd "${pdir}"; pwd)"
1.14 +version="$( echo "${pdir}" |sed -r -e 's,.*/([^/]+)/*$,\1,' )"
1.15 +branch="${version%.*}"
1.16 +n=$( ls -1 "${pdir}" 2>/dev/null |wc -l )
1.17 +
1.18 +r1="$( hg -R "${repos}" log -b "${branch}" \
1.19 + |awk '
1.20 + $1=="changeset:" {
1.21 + prev=rev;
1.22 + split($2,a,":");
1.23 + rev=a[1];
1.24 + }
1.25 + $0~/^summary:[[:space:]]+'"${branch}: (bump|update) version to ${version}\+hg"'$/ {
1.26 + printf( "%d\n", prev );
1.27 + }
1.28 + '
1.29 + )"
1.30 +
1.31 +i=0
1.32 +hg -R "${repos}" log -b "${branch}" -r "${r1}:tip" --template '{rev}\n' \
1.33 +|while read rev; do
1.34 + p="$( printf "%03d" ${i} )"
1.35 + i=$((i+1))
1.36 + if [ $( ls -1 "${pdir}/${p}-"*.patch 2>/dev/null |wc -l ) -ne 0 ]; then
1.37 + continue
1.38 + fi
1.39 + plog=$( hg -R "${repos}" log -r ${rev} --template '{desc|firstline}\n' \
1.40 + |sed -r -e 's,[/ :]+,_,g;' \
1.41 + )
1.42 + pname="${p}-${plog}.patch"
1.43 + printf "Revision '%d' --> '%s'\n" ${rev} "${pname}"
1.44 + hg -R "${repos}" diff -c ${rev} --color=never >"${pdir}/${pname}"
1.45 + pdate="$( hg -R "${repos}" log -r ${rev} --template '{date|isodate}\n' )"
1.46 + touch -d "${pdate}" "${pdir}/${pname}"
1.47 +done