Mercurial > hg
view tests/test-diff-upgrade @ 12575:9b3913baba0c stable
patch: upgrade to git patch when removing binary file
Otherwise it may cause data loss when removing binary files in mq with
--git=auto.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 28 Sep 2010 00:41:07 +0200 |
parents | e451e599fbcf |
children | 1c9bb7e00f71 |
line wrap: on
line source
#!/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 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 non-binary removals' hg autodiff --git=auto regular newregular rmregular rmexec for f in exec newexec setexec unsetexec binary newbinary newempty rmempty rmbinary; 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 ..