#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "autodiff=$TESTDIR/autodiff.py" >> $HGRCPATH echo "[diff]" >> $HGRCPATH echo "nodates=1" >> $HGRCPATH hg init repo cd repo echo '% make a combination of new, changed and deleted file' echo regular > regular echo rmregular > rmregular touch rmempty echo exec > exec chmod +x exec echo rmexec > rmexec chmod +x rmexec echo setexec > setexec echo unsetexec > unsetexec chmod +x unsetexec echo binary > binary python -c "file('rmbinary', 'wb').write('\0')" hg ci -Am addfiles echo regular >> regular echo newregular >> newregular rm rmempty touch newempty rm rmregular echo exec >> exec echo newexec > newexec chmod +x newexec rm rmexec chmod +x setexec chmod -x unsetexec python -c "file('binary', 'wb').write('\0\0')" python -c "file('newbinary', 'wb').write('\0')" rm rmbinary hg addremove -s 0 echo '% git=no: regular diff for all files' hg autodiff --git=no echo '% git=no: git diff for single regular file' hg autodiff --git=yes regular echo '% git=auto: regular diff for regular files and removals' hg autodiff --git=auto regular newregular rmregular rmbinary rmexec for f in exec newexec setexec unsetexec binary newbinary newempty rmempty; do echo '% git=auto: git diff for' $f hg autodiff --git=auto $f done echo '% git=warn: regular diff with data loss warnings' hg autodiff --git=warn echo '% git=abort: fail on execute bit change' hg autodiff --git=abort regular setexec echo '% git=abort: succeed on regular file' hg autodiff --git=abort regular cd ..