view tests/test-rebase-mq.out @ 8810:ac92775b3b80

Add patch.eol to ignore EOLs when patching (issue1019) The intent is to fix many issues involving patching when win32ext is enabled. With win32ext, the working directory and repository files EOLs are not the same which means that patches made on a non-win32ext host do not apply cleanly because of EOLs discrepancies. A theorically correct approach would be transform either the patched file or the patch content with the encoding/decoding filters used by win32ext. This solution is tricky to implement and invasive, instead we prefer to address the win32ext case, by offering a way to ignore input EOLs when patching and rewriting them when saving the patched result.
author Patrick Mezard <pmezard@gmail.com>
date Mon, 15 Jun 2009 00:03:26 +0200
parents c3d4ff03ec72
children 561ff8d9e4f0
line wrap: on
line source

1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@  3 P1 tags: qtip tip f2.patch
|
o  2 P0 tags: f.patch qbase
|
| o  1 R1 tags:
|/
o  0 C1 tags: qparent


% Rebase - try to rebase on an applied mq patch
abort: cannot rebase onto an applied mq patch

% Rebase - generate a conflict
merging f
warning: conflicts during merge.
merging f failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue

% Fix the 1st conflict
merging f
warning: conflicts during merge.
merging f failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue

% Fix the 2nd conflict
saving bundle to 
adding branch
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
rebase completed
@  3 P1 tags: qtip tip f2.patch
|
o  2 P0 tags: f.patch qbase
|
o  1 R1 tags: qparent
|
o  0 C1 tags:


% Update to qbase
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% f correctly reflects the merge result
mq1r1
% And the patch is correct
# HG changeset patch
# User test
# Date
# Node ID
# Parent
P0

diff -r x -r y f
--- a/f
+++ b/f
@@ -1,1 +1,1 @@
-r1
+mq1r1

% Update to qtip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% f correctly reflects the merge result
mq1r1mq2
% And the patch is correct
# HG changeset patch
# User test
# Date
# Node ID
# Parent
P1

diff -r x -r y f
--- a/f
+++ b/f
@@ -1,1 +1,1 @@
-mq1r1
+mq1r1mq2

% Adding one git-style patch and one normal
patch queue now empty
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% Git patch
P0 (git)

diff --git a/p b/p
new file mode 100644
--- /dev/null
+++ b/p
@@ -0,0 +1,1 @@
+mq1

% Normal patch
P1

diff -r x p
--- a/p
+++ b/p
@@ -1,1 +1,1 @@
-mq1
+mq2

% Rebase the applied mq patches
saving bundle to 
% And the patches are correct
% Git patch
# HG changeset patch
# User test
# Date
# Node ID
# Parent
P0 (git)

diff --git a/p b/p
new file mode 100644
--- /dev/null
+++ b/p
@@ -0,0 +1,1 @@
+mq1

% Normal patch
# HG changeset patch
# User test
# Date
# Node ID
# Parent
P1

--- a/p
+++ b/p
@@ -1,1 +1,1 @@
-mq1
+mq2