Mercurial > hg
view tests/test-win32text @ 7566:5f7e3f17aece
mq: drop copy records when refreshing regular patches (issue1441)
Copy information was saved in a common loop, then refined in a git-only block.
The problem was the latter did filter out renames occuring in the current
patch and irrelevant to commit. In the non-git case, copy records still existed
in the dirstate, referencing removed files, making the commit to fail. Git and
non-git copy handling paths are now separated for simplicity.
Reported by Gary Bernhardt
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 04 Jan 2009 21:32:40 +0100 |
parents | b71a52f101dc |
children | 441dc7becd43 |
line wrap: on
line source
#!/bin/sh cat > unix2dos.py <<EOF import sys for path in sys.argv[1:]: data = file(path, 'rb').read() data = data.replace('\n', '\r\n') file(path, 'wb').write(data) EOF cat > print.py <<EOF import sys print(sys.stdin.read().replace('\n', '<LF>').replace('\r', '<CR>').replace('\0', '<NUL>')) EOF hg init echo '[hooks]' >> .hg/hgrc echo 'pretxncommit.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc echo 'pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc cat .hg/hgrc echo echo hello > f hg add f hg ci -m 1 -d'0 0' echo python unix2dos.py f hg ci -m 2 -d'0 0' hg revert -a echo mkdir d echo hello > d/f2 python unix2dos.py d/f2 hg add d/f2 hg ci -m 3 -d'0 0' hg revert -a rm d/f2 echo hg rem f hg ci -m 4 -d'0 0' echo python -c 'file("bin", "wb").write("hello\x00\x0D\x0A")' hg add bin hg ci -m 5 -d'0 0' hg log -v echo hg clone . dupe echo for x in a b c d; do echo content > dupe/$x; done hg -R dupe add python unix2dos.py dupe/b dupe/c dupe/d hg -R dupe ci -m a -d'0 0' dupe/a hg -R dupe ci -m b/c -d'0 0' dupe/[bc] hg -R dupe ci -m d -d'0 0' dupe/d hg -R dupe log -v echo hg pull dupe echo hg log -v echo rm .hg/hgrc (echo some; echo text) > f3 python -c 'file("f4.bat", "wb").write("rem empty\x0D\x0A")' hg add f3 f4.bat hg ci -m 6 -d'0 0' python print.py < bin python print.py < f3 python print.py < f4.bat echo echo '[extensions]' >> .hg/hgrc echo 'win32text = ' >> .hg/hgrc echo '[decode]' >> .hg/hgrc echo '** = cleverdecode:' >> .hg/hgrc echo '[encode]' >> .hg/hgrc echo '** = cleverencode:' >> .hg/hgrc cat .hg/hgrc echo rm f3 f4.bat bin hg co 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))' python print.py < bin python print.py < f3 python print.py < f4.bat echo python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")' hg add f5.sh hg ci -m 7 -d'0 0' python print.py < f5.sh hg cat f5.sh | python print.py echo '% just linefeed' > linefeed hg ci -qAm 8 linefeed python print.py < linefeed hg cat linefeed | python print.py hg st -q hg revert -a linefeed python print.py < linefeed hg st -q echo modified >> linefeed hg st -q hg revert -a hg st -q python print.py < linefeed echo "# disable extension again" echo '[decode]' >> .hg/hgrc echo '** = !' >> .hg/hgrc echo '[encode]' >> .hg/hgrc echo '** = !' >> .hg/hgrc cat .hg/hgrc echo rm f3 f4.bat bin hg co 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))' python print.py < bin python print.py < f3 python print.py < f4.bat echo