mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 17:58:27 +03:00
effa0da8de
Summary: The helper could be used in individual tests to enable chg if chg exists. This allows us to have more precise control on what tests to use chg instead of using a global flag in run-tests.py. This makes certain tests containing many hg commands much faster. For example, `test-revset.t` took 99 seconds before: % ./run-tests.py test-revset.t --time . # Ran 1 tests, 0 skipped, 0 failed. # Producing time report start end cuser csys real Test 0.000 99.990 86.410 12.000 99.990 test-revset.t And 10 seconds after: % ./run-tests.py test-revset.t --time . # Ran 1 tests, 0 skipped, 0 failed. # Producing time report start end cuser csys real Test 0.000 10.080 0.380 0.130 10.080 test-revset.t Also enable it for some other tests. Note the whitelist is not complete. We probably want to whitelist more tests in the future. The feature could be opted out by deleting `contrib/chg/chg`. Reviewed By: phillco Differential Revision: D6767036 fbshipit-source-id: 8220cf408aa198d5d8e2ca5127ca60e2070d3444
213 lines
4.1 KiB
Perl
213 lines
4.1 KiB
Perl
$ . helpers-usechg.sh
|
|
|
|
Test interactions between mq and patch.eol
|
|
|
|
|
|
$ cat <<EOF >> $HGRCPATH
|
|
> [extensions]
|
|
> mq =
|
|
> [diff]
|
|
> nodates = 1
|
|
> EOF
|
|
|
|
$ cat > makepatch.py <<EOF
|
|
> f = file('eol.diff', 'wb')
|
|
> w = f.write
|
|
> w('test message\n')
|
|
> w('diff --git a/a b/a\n')
|
|
> w('--- a/a\n')
|
|
> w('+++ b/a\n')
|
|
> w('@@ -1,5 +1,5 @@\n')
|
|
> w(' a\n')
|
|
> w('-b\r\n')
|
|
> w('+y\r\n')
|
|
> w(' c\r\n')
|
|
> w(' d\n')
|
|
> w('-e\n')
|
|
> w('\ No newline at end of file\n')
|
|
> w('+z\r\n')
|
|
> w('\ No newline at end of file\r\n')
|
|
> EOF
|
|
|
|
$ cat > cateol.py <<EOF
|
|
> import sys
|
|
> for line in file(sys.argv[1], 'rb'):
|
|
> line = line.replace('\r', '<CR>')
|
|
> line = line.replace('\n', '<LF>')
|
|
> print(line)
|
|
> EOF
|
|
|
|
$ hg init repo
|
|
$ cd repo
|
|
$ echo '\.diff' > .hgignore
|
|
$ echo '\.rej' >> .hgignore
|
|
|
|
|
|
Test different --eol values
|
|
|
|
$ $PYTHON -c 'file("a", "wb").write("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 "file('a', 'wb').write('1\r\n2\r\n3\r\n4')"
|
|
$ hg ci -Am adda
|
|
adding a
|
|
$ $PYTHON -c "file('a', 'wb').write('1\r\n2\r\n33\r\n4')"
|
|
$ hg qnew patch1
|
|
$ hg qpop
|
|
popping patch1
|
|
patch queue now empty
|
|
$ $PYTHON -c "file('a', 'wb').write('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 ..
|