]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/conflict-watch.sh
Add AppData file
[xonotic/xonotic.git] / misc / tools / conflict-watch.sh
index 63f67c545c0a83cd65a937b78c1c6b07dda6b825..3ac6e5c728ea49ebce1546ab9098be179e370abe 100755 (executable)
@@ -31,11 +31,13 @@ to_rss()
        masterbranch=`echo -n "$masterbranch" | escape_html`
        branch=`echo -n "$branch" | escape_html`
        repo=`echo -n "$repo" | escape_html`
+
        if [ -n "$repo" ]; then
                repotxt=" in $repo"
        else
                repotxt=
        fi
+       against="$masterbranch at $masterhash"
 
        if ! [ -f "$outfilename" ]; then
                datetime=`date --rfc-2822`
@@ -57,7 +59,7 @@ EOF
                <link>http://git.xonotic.org/?p=$repo;a=shortlog;h=refs/heads/$branch</link>
                <guid isPermaLink="false">http://nl.git.xonotic.org/xoncw/$filename#$hash</guid>
                <description><![CDATA[
-               Conflicts of $branch at $hash against $masterbranch at $masterhash:
+               Conflicts of $branch at $hash against $against:
 EOF
  
        echo -n "<pre>" >>"$outfilename"
@@ -132,6 +134,17 @@ case "$action" in
                        )
                )
                masterbranch=${masterbranch#refs/heads/}
+
+               masterhash2=$(
+                       (
+                               if [ -n "$repodir" ]; then
+                                       cd "$repodir"
+                               fi
+                               git rev-parse master
+                       )
+               )
+               masterbranch2=master
+
                (
                        if [ -n "$repodir" ]; then
                                cd "$repodir"
@@ -139,12 +152,45 @@ case "$action" in
                        branches
                ) | while read -r HASH TYPE REFNAME; do
                        echo >&2 -n "$repo $REFNAME..."
+                       case "$repo:$REFNAME" in
+                               xonotic/netradiant.git:refs/remotes/origin/divVerent/zeroradiant) continue ;;
+                               xonotic/netradiant.git:refs/remotes/origin/divVerent/zeroradiant-original) continue ;;
+                               xonotic/netradiant.git:refs/remotes/origin/divVerent/zeroradiant-split-up-the-q3map2-commit) continue ;;
+                               xonotic/netradiant.git:refs/remotes/origin/divVerent/zeroradiant-split-up-the-q3map2-commit-goal) continue ;;
+                               xonotic/darkplaces.git:refs/remotes/origin/dp-mqc-render) continue ;;
+                       esac
+
+                       if [ x"$masterhash" = x"$masterhash2" ]; then
+                               thismasterhash=$masterhash
+                               thismasterbranch=$masterbranch
+                       else
+                               l=$(
+                                       if [ -n "$repodir" ]; then
+                                               cd "$repodir"
+                                       fi
+                                       git rev-list "$masterhash".."$REFNAME" | wc -l
+                               )
+                               l2=$(
+                                       if [ -n "$repodir" ]; then
+                                               cd "$repodir"
+                                       fi
+                                       git rev-list "$masterhash2".."$REFNAME" | wc -l
+                               )
+                               if [ $l -gt $l2 ]; then
+                                       thismasterhash=$masterhash2
+                                       thismasterbranch=$masterbranch2
+                               else
+                                       thismasterhash=$masterhash
+                                       thismasterbranch=$masterbranch
+                               fi
+                       fi
+                               
                        out=$(
                                (
                                        if [ -n "$repodir" ]; then
                                                cd "$repodir"
                                        fi
-                                       git reset --hard "$masterhash" >/dev/null 2>&1
+                                       git reset --hard "$thismasterhash" >/dev/null 2>&1
                                        if out=`git merge --no-commit -- "$REFNAME" 2>&1`; then
                                                good=true
                                        else
@@ -164,7 +210,7 @@ case "$action" in
                                                n=divVerent
                                                ;;
                                esac
-                               echo "$out" | to_rss "$outdir" "$n" "$masterhash" "$masterbranch" "$HASH" "$b" "$repo"
+                               echo "$out" | to_rss "$outdir" "$n" "$thismasterhash" "$thismasterbranch" "$HASH" "$b" "$repo"
                                echo >&2 " CONFLICT"
                        else
                                echo >&2 " ok"