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.
checkout
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
created new head
merge
searching for copies back to rev 1
unmatched files in local:
c2
unmatched files in other:
b
b2
all copies found (* = to merge, ! = divergent):
c2 -> a2 !
b -> a *
b2 -> a2 !
checking for directory renames
a2: divergent renames -> dr
resolving manifests
overwrite None partial False
ancestor af1939970a1c local f26ec4fc3fa3+ remote 8e765a822af2
a: remote moved to b -> m
b2: remote created -> g
preserving a for resolve of b
removing a
picked tool 'internal:merge' for b (binary False symlink False)
merging a and b to b
my b@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c
premerge successful
warning: detected divergent renames of a2 to:
c2
b2
getting b2
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
M b
a
M b2
R a
C c2
blahblah
rev offset length base linkrev nodeid p1 p2
0 0 67 0 1 dc51707dfc98 000000000000 000000000000
1 67 72 1 3 b2494a44f0a9 000000000000 dc51707dfc98
b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66