From: Kyle J. McKay Date: Fri, 12 Jul 2013 17:05:01 +0000 (-0700) Subject: update.sh: correct .refs-before and .refs-after sort order X-Git-Url: https://repo.or.cz/w/girocco.git/commitdiff_plain/b0f679afb11198d2386d8683affae1537080b358 update.sh: correct .refs-before and .refs-after sort order Using join requires the input to be in "sort -k1b,1" order. In some cases the output of "git for-each-ref %(refname) %(objectname)" is not in the correct order. Pipe the output through "sort -k1b,1" when creating .refs-before and .refs-after to avoid this problem. --- diff --git a/jobd/update.sh b/jobd/update.sh index 32fee92..9219050 100755 --- a/jobd/update.sh +++ b/jobd/update.sh @@ -2,6 +2,9 @@ . @basedir@/shlib.sh +LC_ALL=C +export LC_ALL + # date -R is linux-only, POSIX equivalent is '+%a, %d %b %Y %T %z' datefmt='+%a, %d %b %Y %T %z' @@ -47,7 +50,7 @@ mailaddrs='' [ -z "$cfg_admincc" -o "$cfg_admincc" = "0" -o -z "$cfg_admin" ] || if [ -z "$mailaddrs" ]; then mailaddrs="$cfg_admin"; else mailaddrs="$mailaddrs,$cfg_admin"; fi -show_progress=1 bang git for-each-ref --format '%(refname) %(objectname)' >.refs-before +show_progress=1 bang git for-each-ref --format '%(refname) %(objectname)' | sort -k1b,1 >.refs-before case "$url" in svn://* | svn+http://* | svn+https://*) @@ -93,7 +96,7 @@ bang git update-server-info bang config_set lastrefresh "$(date "$datefmt")" # Look at which refs changed and trigger ref-change for these -show_progress=1 bang git for-each-ref --format '%(refname) %(objectname)' >.refs-after +show_progress=1 bang git for-each-ref --format '%(refname) %(objectname)' | sort -k1b,1 >.refs-after sockpath="$cfg_chroot/etc/taskd.socket" if [ -S "$sockpath" ] && ! cmp -s .refs-before .refs-after; then join -j 1 .refs-before .refs-after |