view tests/test-eol.out @ 12717:89df79b3c011 stable

convert/darcs: support changelogs with bytes 0x7F-0xFF (issue2411) This is a followup to 4481f8a93c7a, which only fixed the conversion of patches with UTF-8 metadata. This patch allows a changelog to have any bytes with values 0x7F-0xFF. It parses the XML changelog as Latin-1 and uses converter_source.recode() to decode the data as UTF-8/Latin-1. Caveats: - Since the convert extension doesn't provide any way to specify the source encoding, users are still limited to UTF-8 and Latin-1. - etree will still complain if the changelog has bytes with values 0x00-0x19. XML only allows printable characters.
author Brodie Rao <brodie@bitheap.org>
date Fri, 01 Oct 2010 10:15:04 -0500
parents 0bb67503ad4b
children
line wrap: on
line source

% setup LF repository
adding .hgeol
adding a.txt

% hg clone repo repo-LF
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% printrepr.py a.txt
first
second
third
% hg cat a.txt
first
second
third
% printrepr.py a.txt
first
second
third
fourth
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first
 second
 third
+fourth
% switching encoding from '\n' to '\r\n'
% hg diff only reports a single changed line:
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first
 second
 third
+fourth
% reverting back to LF format
first
second
third
% hg commit of inconsistent .txt file marked as binary (should work)
% hg commit of inconsistent .txt file marked as native (should fail)
abort: inconsistent newline style in a.txt

% hg commit --config eol.only-consistent=False (should work)
% hg commit of binary .txt file marked as native (binary files always okay)
% hg clone repo repo-CRLF
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% printrepr.py a.txt
first\r
second\r
third\r
% hg cat a.txt
first
second
third
% printrepr.py a.txt
first\r
second\r
third\r
fourth\r
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first
 second
 third
+fourth
% switching encoding from '\r\n' to '\n'
% hg diff only reports a single changed line:
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first
 second
 third
+fourth
% reverting back to CRLF format
first\r
second\r
third\r
% hg commit of inconsistent .txt file marked as binary (should work)
% hg commit of inconsistent .txt file marked as native (should fail)
abort: inconsistent newline style in a.txt

% hg commit --config eol.only-consistent=False (should work)
% hg commit of binary .txt file marked as native (binary files always okay)
% setup CRLF repository
adding .hgeol
adding a.txt

% hg clone repo repo-LF
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% printrepr.py a.txt
first
second
third
% hg cat a.txt
first\r
second\r
third\r
% printrepr.py a.txt
first
second
third
fourth
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first\r
 second\r
 third\r
+fourth\r
% switching encoding from '\n' to '\r\n'
% hg diff only reports a single changed line:
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first\r
 second\r
 third\r
+fourth\r
% reverting back to LF format
first
second
third
% hg commit of inconsistent .txt file marked as binary (should work)
% hg commit of inconsistent .txt file marked as native (should fail)
abort: inconsistent newline style in a.txt

% hg commit --config eol.only-consistent=False (should work)
% hg commit of binary .txt file marked as native (binary files always okay)
% hg clone repo repo-CRLF
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% printrepr.py a.txt
first\r
second\r
third\r
% hg cat a.txt
first\r
second\r
third\r
% printrepr.py a.txt
first\r
second\r
third\r
fourth\r
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first\r
 second\r
 third\r
+fourth\r
% switching encoding from '\r\n' to '\n'
% hg diff only reports a single changed line:
diff --git a/a.txt b/a.txt
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 first\r
 second\r
 third\r
+fourth\r
% reverting back to CRLF format
first\r
second\r
third\r
% hg commit of inconsistent .txt file marked as binary (should work)
% hg commit of inconsistent .txt file marked as native (should fail)
abort: inconsistent newline style in a.txt

% hg commit --config eol.only-consistent=False (should work)
% hg commit of binary .txt file marked as native (binary files always okay)

# setup LF repository
adding unix.txt
adding win.txt
# setting repository-native EOLs to LF
adding .hgeol

% hg clone mixed mixed-LF
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% hg status (eol extension not yet activated)
% hg status (eol activated)
M win.txt
% hg commit
% hg status

% hg clone mixed mixed-CRLF
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% hg status (eol extension not yet activated)
% hg status (eol activated)
M win.txt
% hg commit
% hg status

# setup CRLF repository
adding unix.txt
adding win.txt
# setting repository-native EOLs to CRLF
adding .hgeol

% hg clone mixed mixed-LF
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% hg status (eol extension not yet activated)
% hg status (eol activated)
M unix.txt
% hg commit
% hg status

% hg clone mixed mixed-CRLF
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% hg status (eol extension not yet activated)
% hg status (eol activated)
M unix.txt
% hg commit
% hg status