Mercurial > hg
view tests/test-mq-eol.t @ 44588:2a98b0cd4995
setup: build C extensions with -Werror=declaration-after-statement
MSVC 2008 still needs declarations at the top of the scope. I added it to the
3rd party code too in case somebody vendors a new version with a problem-
they'll get an early warning. Clang seems to ignore this (at least on 10.14
with Xcode 10), and gcc 7.4 will error out as desired on Ubuntu 18.04. Thanks
to Yuya for remembering the name of the option.
Differential Revision: https://phab.mercurial-scm.org/D8318
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 20 Mar 2020 23:30:23 -0400 |
parents | 140b542b0e59 |
children |
line wrap: on
line source
Test interactions between mq and patch.eol $ cat <<EOF >> $HGRCPATH > [extensions] > mq = > [diff] > nodates = 1 > EOF $ cat > makepatch.py <<EOF > f = open('eol.diff', 'wb') > w = f.write > w(b'test message\n') > w(b'diff --git a/a b/a\n') > w(b'--- a/a\n') > w(b'+++ b/a\n') > w(b'@@ -1,5 +1,5 @@\n') > w(b' a\n') > w(b'-b\r\n') > w(b'+y\r\n') > w(b' c\r\n') > w(b' d\n') > w(b'-e\n') > w(b'\\\\ No newline at end of file\n') > w(b'+z\r\n') > w(b'\\\\ No newline at end of file\r\n') > EOF $ cat > cateol.py <<EOF > import sys > try: > stdout = sys.stdout.buffer > except AttributeError: > stdout = sys.stdout > for line in open(sys.argv[1], 'rb'): > line = line.replace(b'\r', b'<CR>') > line = line.replace(b'\n', b'<LF>') > stdout.write(line + b'\n') > EOF $ hg init repo $ cd repo $ echo '\.diff' > .hgignore $ echo '\.rej' >> .hgignore Test different --eol values $ "$PYTHON" -c 'open("a", "wb").write(b"a\nb\nc\nd\ne")' $ hg ci -Am adda adding .hgignore adding a $ "$PYTHON" ../makepatch.py $ hg qimport eol.diff adding eol.diff to series file should fail in strict mode $ hg qpush applying eol.diff patching file a Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file a.rej patch failed, unable to continue (try -v) patch failed, rejects left in working directory errors during apply, please fix and qrefresh eol.diff [2] $ hg qpop popping eol.diff patch queue now empty invalid eol $ hg --config patch.eol='LFCR' qpush applying eol.diff patch failed, unable to continue (try -v) patch failed, rejects left in working directory errors during apply, please fix and qrefresh eol.diff [2] $ hg qpop popping eol.diff patch queue now empty force LF $ hg --config patch.eol='CRLF' qpush applying eol.diff now at: eol.diff $ hg qrefresh $ "$PYTHON" ../cateol.py .hg/patches/eol.diff # HG changeset patch<LF> # Parent 0d0bf99a8b7a3842c6f8ef09e34f69156c4bd9d0<LF> test message<LF> <LF> diff -r 0d0bf99a8b7a a<LF> --- a/a<LF> +++ b/a<LF> @@ -1,5 +1,5 @@<LF> -a<LF> -b<LF> -c<LF> -d<LF> -e<LF> \ No newline at end of file<LF> +a<CR><LF> +y<CR><LF> +c<CR><LF> +d<CR><LF> +z<LF> \ No newline at end of file<LF> $ "$PYTHON" ../cateol.py a a<CR><LF> y<CR><LF> c<CR><LF> d<CR><LF> z $ hg qpop popping eol.diff patch queue now empty push again forcing LF and compare revisions $ hg --config patch.eol='CRLF' qpush applying eol.diff now at: eol.diff $ "$PYTHON" ../cateol.py a a<CR><LF> y<CR><LF> c<CR><LF> d<CR><LF> z $ hg qpop popping eol.diff patch queue now empty push again without LF and compare revisions $ hg qpush applying eol.diff now at: eol.diff $ "$PYTHON" ../cateol.py a a<CR><LF> y<CR><LF> c<CR><LF> d<CR><LF> z $ hg qpop popping eol.diff patch queue now empty $ cd .. Test .rej file EOL are left unchanged $ hg init testeol $ cd testeol $ "$PYTHON" -c "open('a', 'wb').write(b'1\r\n2\r\n3\r\n4')" $ hg ci -Am adda adding a $ "$PYTHON" -c "open('a', 'wb').write(b'1\r\n2\r\n33\r\n4')" $ hg qnew patch1 $ hg qpop popping patch1 patch queue now empty $ "$PYTHON" -c "open('a', 'wb').write(b'1\r\n22\r\n33\r\n4')" $ hg ci -m changea $ hg --config 'patch.eol=LF' qpush applying patch1 patching file a Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file a.rej patch failed, unable to continue (try -v) patch failed, rejects left in working directory errors during apply, please fix and qrefresh patch1 [2] $ hg qpop popping patch1 patch queue now empty $ cat a.rej --- a +++ a @@ -1,4 +1,4 @@ 1\r (esc) 2\r (esc) -3\r (esc) +33\r (esc) 4 \ No newline at end of file $ hg --config 'patch.eol=auto' qpush applying patch1 patching file a Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file a.rej patch failed, unable to continue (try -v) patch failed, rejects left in working directory errors during apply, please fix and qrefresh patch1 [2] $ hg qpop popping patch1 patch queue now empty $ cat a.rej --- a +++ a @@ -1,4 +1,4 @@ 1\r (esc) 2\r (esc) -3\r (esc) +33\r (esc) 4 \ No newline at end of file $ cd ..