Svn pre-commit hook and conflict markers

Előfordul néha, hogy a nagy lelkesedésben conflict makereket tartalmazó fájlt commitolnak a fejlesztők a repository-ba. Ez nem túl gyakori hiba, de azért tud kellemetlen lenni. Keresgettem egy kicsit, de nem találtam nekem tetsző script-et, ezért írtam egyet.

 

SVNLOOK=/usr/bin/svnlook
for x in `$SVNLOOK changed "$REPOS" -t "$TXN"`; do
 if [ "$updated_file" == true ]; then
    mimetype=`$SVNLOOK propget "$REPOS" svn:mime-type -t "$TXN" "${x}" 2>/dev/null`
    #ignore binary files
    if [ -z ${mimetype} ]; then
      if $SVNLOOK cat -t "$TXN" "$REPOS" "${x}" | grep -qE '^+?(<<<<<<<|>>>>>>>)'; then
        echo "Commited conflict marker detected, commit rejected!" 1>&2 && exit 1
      fi
    fi
    updated_file=false
    continue
 else
    if [ "$x" = "U" ]; then
      updated_file=true
    fi
 fi
done
set -e

2 Replies to “Svn pre-commit hook and conflict markers”

  1. Typo: marker helyett maker, kétszer is, LinkedIn-en annyira nem mutat jól. Ill. kicsit furcsa, hogy a scriptben meg indicatornak van nevezve 🙂

    1. A post-ok inkább csak publikus memo-k, amik reményeim szerint segíthetnek, vagy pusztán inspirációként szolgálhatnak az olvasóknak. Ezért egyáltalán nem bánom, ha egy egy megnyilvánulás “nem mutat jól”, mivel nem is ez a cél. A visszajelzésekből rengeteget tanulok, és ezért már önmagában megéri befektetni az időt egy egy írásba. Az elírásokat javítottam, és ezúton is köszönöm a visszajelzést!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.