Mercurial > hg
view tests/test-import-eol.t @ 24882:995003a324da stable
bundlerepo: disable filtering of changelog while constructing revision text
This avoids the following error that happened if base revision of bundle file
was hidden. bundlerevlog needs it to construct revision texts from bundle
content as revlog.revision() does.
File "mercurial/context.py", line 485, in _changeset
return self._repo.changelog.read(self.rev())
File "mercurial/changelog.py", line 319, in read
text = self.revision(node)
File "mercurial/bundlerepo.py", line 124, in revision
text = self.baserevision(iterrev)
File "mercurial/bundlerepo.py", line 160, in baserevision
return changelog.changelog.revision(self, nodeorrev)
File "mercurial/revlog.py", line 1041, in revision
node = self.node(rev)
File "mercurial/changelog.py", line 211, in node
raise error.FilteredIndexError(rev)
mercurial.error.FilteredIndexError: 1
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 29 Apr 2015 19:47:37 +0900 |
parents | c63a09b6b337 |
children | 75be14993fda |
line wrap: on
line source
$ 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 $ $PYTHON -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")' $ hg ci -Am adda adding .hgignore adding a $ python ../makepatch.py invalid eol $ hg --config patch.eol='LFCR' import eol.diff applying eol.diff abort: unsupported line endings type: LFCR [255] $ hg revert -a force LF $ hg --traceback --config patch.eol='LF' import eol.diff applying eol.diff $ cat a a yyyy cc d e (no-eol) $ 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 $ cat a a\r (esc) yyyy\r (esc) cc\r (esc) \r (esc) d\r (esc) e (no-eol) $ 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 $ cat a a yyyy cc d e (no-eol) $ hg st auto EOL on CRLF file $ $PYTHON -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")' $ hg commit -m 'switch EOLs in a' $ hg --traceback --config patch.eol='auto' import eol.diff applying eol.diff $ cat a a\r (esc) yyyy\r (esc) cc\r (esc) \r (esc) d\r (esc) e (no-eol) $ hg st auto EOL on new file or source without any EOL $ $PYTHON -c 'file("noeol", "wb").write("noeol")' $ hg add noeol $ hg commit -m 'add noeol' $ $PYTHON -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")' $ $PYTHON -c 'file("neweol", "wb").write("neweol\nneweol\r\n")' $ 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 $ cat noeol noeol\r (esc) noeol $ cat neweol neweol neweol\r (esc) $ hg st Test --eol and binary patches $ $PYTHON -c 'file("b", "wb").write("a\x00\nb\r\nd")' $ hg ci -Am addb adding b $ $PYTHON -c 'file("b", "wb").write("a\x00\nc\r\nd")' $ 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 $ cat b a\x00 (esc) c\r (esc) d (no-eol) $ hg st $ cd ..