From 0661c346a1cc03f154acc7275c0571d7c8bbdc8f Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Mon, 14 May 2012 16:18:54 +0200 Subject: [PATCH] some fixes about RSS writing --- misc/tools/conflict-rss.sh | 79 +++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/misc/tools/conflict-rss.sh b/misc/tools/conflict-rss.sh index 5b61861a..5ad6d335 100755 --- a/misc/tools/conflict-rss.sh +++ b/misc/tools/conflict-rss.sh @@ -20,35 +20,44 @@ to_rss() { outdir=$1 name=$2 - hash=$3 - branch=$4 + masterhash=$3 + hash=$4 + branch=$5 + repo=$6 + if [ -n "$repo" ]; then + repo=" in $repo" + fi - filename=$outdir/`echo -n "$name" | tr -c 'A-Za-z0-9' '_'`.xml + filename=`echo -n "$name" | tr -c 'A-Za-z0-9' '_'`.xml + outfilename="$outdir/$filename" datetime=`date --rfc-2822` branch=`echo "$branch" | escape_html` + repo=`echo "$repo" | escape_html` - if ! [ -f "$filename" ]; then - cat >"$filename" <"$outfilename" < - + Merge conflicts for $name - ... + http://git.xonotic.org/ ... $datetime 3600 + EOF fi - cat >>"$filename" <>"$outfilename" < - $branch ($hash) - ... + $branch$repo ($hash) + http://git.xonotic.org/?p=xonotic/netradiant.git;a=shortlog;h=refs/heads/$name/$branch + http://de.git.xonotic.org/conflicts/$filename#$hash-$masterhash >"$filename" + escape_html >>"$outfilename" - cat >>"$filename" <>"$outfilename" < EOF @@ -78,6 +87,14 @@ case "$action" in done ;; --add) + masterhash=$( + ( + if [ -n "$repodir" ]; then + cd "$repodir" + fi + git rev-parse HEAD + ) + ) ( if [ -n "$repodir" ]; then cd "$repodir" @@ -85,32 +102,32 @@ case "$action" in branches ) | while read -r HASH TYPE REFNAME; do echo >&2 -n "$repodir $REFNAME..." - out=$( ( - if [ -n "$repodir" ]; then - cd "$repodir" - fi - git reset --hard >/dev/null 2>&1 - if out=`git merge --no-commit -- "$REFNAME" 2>&1`; then - good=true - else - good=false - echo "$out" - fi - git reset --hard >/dev/null 2>&1 - ) ) + out=$( + ( + if [ -n "$repodir" ]; then + cd "$repodir" + fi + git reset --hard "$masterhash" >/dev/null 2>&1 + if out=`git merge --no-commit -- "$REFNAME" 2>&1`; then + good=true + else + good=false + echo "$out" + fi + git reset --hard "$masterhash" >/dev/null 2>&1 + ) + ) if [ -n "$out" ]; then - n=${REFNAME#refs/remotes/[^/]*/} - case "$n" in + b=${REFNAME#refs/remotes/[^/]*/} + case "$b" in */*) - b=${n#*/} - n=${n%%/*} + n=${b%%/*} ;; *) - b="/$n" n=divVerent ;; esac - echo "$out" | to_rss "$outdir" "$n" "$HASH" "$b" + echo "$out" | to_rss "$outdir" "$n" "$masterhash" "$HASH" "$b" "$repodir" echo >&2 " CONFLICT" else echo >&2 " ok" -- 2.39.2