crosstool-ng/scripts/mk-patch.sh

45 lines
1.4 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
repos="$1"
pdir="$2"
if [ -z "${repos}" -o ! -d "${repos}" -o -z "${pdir}" -o ! -d "${pdir}" ];then
printf "Usage: ${0##*/} <repos_dir> <patch_dir>\n"
exit 1
fi
pdir="$( cd "${pdir}"; pwd)"
version="$( echo "${pdir}" |sed -r -e 's,.*/([^/]+)/*$,\1,' )"
branch="${version%.*}"
n=$( ls -1 "${pdir}" 2>/dev/null |wc -l )
r1="$( hg -R "${repos}" log -b "${branch}" \
|awk '
$1=="changeset:" {
prev=rev;
split($2,a,":");
rev=a[1];
}
$0~/^summary:[[:space:]]+'"${branch}: (bump|update) version to ${version}\+hg"'$/ {
printf( "%d\n", prev );
}
'
)"
i=0
hg -R "${repos}" log -b "${branch}" -r "${r1}:tip" --template '{rev}\n' \
|while read rev; do
p="$( printf "%03d" ${i} )"
i=$((i+1))
if [ $( ls -1 "${pdir}/${p}-"*.patch 2>/dev/null |wc -l ) -ne 0 ]; then
continue
fi
plog=$( hg -R "${repos}" log -r ${rev} --template '{desc|firstline}\n' \
|sed -r -e 's,[^[:alnum:]],_,g; s/_+/_/g;' \
)
pname="${p}-${plog}.patch"
printf "Revision '%d' --> '%s'\n" ${rev} "${pname}"
hg -R "${repos}" diff -c ${rev} --color=never >"${pdir}/${pname}"
pdate="$( hg -R "${repos}" log -r ${rev} --template '{date|isodate}\n' )"
touch -d "${pdate}" "${pdir}/${pname}"
done