author | "Yann E. MORIN" <yann.morin.1998@free.fr> |
Sat Jan 04 16:19:18 2014 +0100 (2014-01-04) | |
changeset 3276 | 22239d19ad65 |
parent 2075 | edc7c7958e80 |
permissions | -rwxr-xr-x |
yann@1888 | 1 |
#!/bin/sh |
yann@1888 | 2 |
|
yann@1888 | 3 |
repos="$1" |
yann@1888 | 4 |
pdir="$2" |
yann@1888 | 5 |
if [ -z "${repos}" -o ! -d "${repos}" -o -z "${pdir}" -o ! -d "${pdir}" ];then |
yann@1888 | 6 |
printf "Usage: ${0##*/} <repos_dir> <patch_dir>\n" |
yann@1888 | 7 |
exit 1 |
yann@1888 | 8 |
fi |
yann@1888 | 9 |
|
yann@1888 | 10 |
pdir="$( cd "${pdir}"; pwd)" |
yann@1888 | 11 |
version="$( echo "${pdir}" |sed -r -e 's,.*/([^/]+)/*$,\1,' )" |
yann@1888 | 12 |
branch="${version%.*}" |
yann@1888 | 13 |
n=$( ls -1 "${pdir}" 2>/dev/null |wc -l ) |
yann@1888 | 14 |
|
yann@1888 | 15 |
r1="$( hg -R "${repos}" log -b "${branch}" \ |
yann@1888 | 16 |
|awk ' |
yann@1888 | 17 |
$1=="changeset:" { |
yann@1888 | 18 |
prev=rev; |
yann@1888 | 19 |
split($2,a,":"); |
yann@1888 | 20 |
rev=a[1]; |
yann@1888 | 21 |
} |
yann@1888 | 22 |
$0~/^summary:[[:space:]]+'"${branch}: (bump|update) version to ${version}\+hg"'$/ { |
yann@1888 | 23 |
printf( "%d\n", prev ); |
yann@1888 | 24 |
} |
yann@1888 | 25 |
' |
yann@1888 | 26 |
)" |
yann@1888 | 27 |
|
yann@1888 | 28 |
i=0 |
yann@1888 | 29 |
hg -R "${repos}" log -b "${branch}" -r "${r1}:tip" --template '{rev}\n' \ |
yann@1888 | 30 |
|while read rev; do |
yann@1888 | 31 |
p="$( printf "%03d" ${i} )" |
yann@1888 | 32 |
i=$((i+1)) |
yann@1888 | 33 |
if [ $( ls -1 "${pdir}/${p}-"*.patch 2>/dev/null |wc -l ) -ne 0 ]; then |
yann@1888 | 34 |
continue |
yann@1888 | 35 |
fi |
yann@1888 | 36 |
plog=$( hg -R "${repos}" log -r ${rev} --template '{desc|firstline}\n' \ |
yann@2403 | 37 |
|sed -r -e 's,[^[:alnum:]],_,g; s/_+/_/g;' \ |
yann@1888 | 38 |
) |
yann@1888 | 39 |
pname="${p}-${plog}.patch" |
yann@1888 | 40 |
printf "Revision '%d' --> '%s'\n" ${rev} "${pname}" |
yann@1888 | 41 |
hg -R "${repos}" diff -c ${rev} --color=never >"${pdir}/${pname}" |
yann@1888 | 42 |
pdate="$( hg -R "${repos}" log -r ${rev} --template '{date|isodate}\n' )" |
yann@1888 | 43 |
touch -d "${pdate}" "${pdir}/${pname}" |
yann@1888 | 44 |
done |