##// END OF EJS Templates
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs...
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs A hook like this is how largefiles manages to do the same. Largefiles uses a changegroup hook, but this uses pretxnchangegroup because that actually causes the transaction to rollback in the unlikely event that writing the requirements out fails. Sadly, the requires file itself isn't rolled back if a subsequent hook fails, but that seems trivial. Now that commit, changegroup and convert are covered, I don't think there's any way to get an lfs repo without the requirement. The grep exit code is blotted out of some test-lfs-serve.t tests now showing the requirement, because run-tests.py doesn't support conditionalizing the exit code.

File last commit:

r32940:75be1499 default
r35520:6bb940de default
Show More
test-import-eol.t
146 lines | 2.7 KiB | text/troff | Tads3Lexer
/ tests / test-import-eol.t
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ 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('-bbb\r\n')
> w('+yyyy\r\n')
> w(' cc\r\n')
> w(' \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
$ hg init repo
$ cd repo
$ echo '\.diff' > .hgignore
Test different --eol values
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg ci -Am adda
adding .hgignore
adding a
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON ../makepatch.py
Nicolas Dumazet
tests: unify test-qimport-eol
r11808
invalid eol
$ hg --config patch.eol='LFCR' import eol.diff
applying eol.diff
Martin Geisler
Merge with stable
r12070 abort: unsupported line endings type: LFCR
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg revert -a
force LF
$ hg --traceback --config patch.eol='LF' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a
yyyy
cc
d
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
force CRLF
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='CRLF' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on LF file
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='auto' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a
yyyy
cc
d
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on CRLF file
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg commit -m 'switch EOLs in a'
$ hg --traceback --config patch.eol='auto' import eol.diff
applying eol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
auto EOL on new file or source without any EOL
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("noeol", "wb").write("noeol")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg add noeol
$ hg commit -m 'add noeol'
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")'
$ $PYTHON -c 'file("neweol", "wb").write("neweol\nneweol\r\n")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg add neweol
$ hg diff --git > noeol.diff
$ hg revert --no-backup noeol neweol
$ rm neweol
$ hg --traceback --config patch.eol='auto' import -m noeol noeol.diff
applying noeol.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat noeol
noeol\r (esc)
noeol
$ cat neweol
neweol
neweol\r (esc)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
Test --eol and binary patches
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("b", "wb").write("a\x00\nb\r\nd")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg ci -Am addb
adding b
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c 'file("b", "wb").write("a\x00\nc\r\nd")'
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg diff --git > bin.diff
$ hg revert --no-backup b
binary patch with --eol
$ hg import --config patch.eol='CRLF' -m changeb bin.diff
applying bin.diff
Mads Kiilerich
tests: use (esc) instead of other kinds of string escaping
r12943 $ cat b
a\x00 (esc)
c\r (esc)
d (no-eol)
Nicolas Dumazet
tests: unify test-qimport-eol
r11808 $ hg st
$ cd ..