Summary:
With svn 1.5.2, a merge to some target branch of the following two
successive changes on a file F:
1: make line endings consistent
2: set svn:eol-style=native
works correctly if the two changes are merged successively but fails
(aborts the merge) if they are merged together within a single phase of
merging.
Details:
Change 31766 of merge_authz_tests.py was a change of line endings from
inconsistent (CRLF and LF) line endings to consistent (LF) line endings.
There was no "svn:eol-style" property on the file, before or after this
change.
Change 32334 of merge_authz_tests.py, which is the next change to that
file, was setting "svn:eol-style" to "native".
In my branch, I have r31765 of the file. The command
svn merge -c31766,32334 $SVN_REPOS/trunk/$FILE $FILE
succeeds, whereas
svn merge -r31765:32334 $SVN_REPOS/trunk/$FILE $FILE
fails, complaining of "inconsistent line endings".
(It is a fundamental tenet of our merge-tracking merge algorithm that
the result of merging two successive changes together or separately must
be the same. This allows it to split the revision range into arbitrary
sub-ranges and still expect the right end result.)
Here is the transcript:
[[[
> $ svn info .
> Path: .
> URL: http://svn.collab.net/repos/svn/branches/double-delete
> Repository Root: http://svn.collab.net/repos/svn
> Repository UUID: 612f8ebc-c883-4be0-9ee0-a4e9ef946e3a
> Revision: 32866
> Node Kind: directory
> Schedule: normal
> Last Changed Author: sbutler
> Last Changed Rev: 30791
> Last Changed Date: 2008-04-26 06:11:22 +0100 (Sat, 26 Apr 2008)
>
> $ svn up
> At revision 32866.
>
> $ svn mergeinfo --show-revs=merged \
> $SVN_REPOS/trunk/subversion/tests/cmdline/merge_authz_tests.py \
> subversion/tests/cmdline/merge_authz_tests.py
> r30471
>
> $ svn mergeinfo --show-revs=eligible \
> $SVN_REPOS/trunk/subversion/tests/cmdline/merge_authz_tests.py \
> subversion/tests/cmdline/merge_authz_tests.py
> r31766
> r32334
> r32495
> r32722
>
> $ svn merge -c31766,32334 \
> $SVN_REPOS/trunk/subversion/tests/cmdline/merge_authz_tests.py \
> subversion/tests/cmdline/merge_authz_tests.py
> --- Merging r31766 into 'subversion/tests/cmdline/merge_authz_tests.py':
> U subversion/tests/cmdline/merge_authz_tests.py
> --- Merging r32334 into 'subversion/tests/cmdline/merge_authz_tests.py':
> U subversion/tests/cmdline/merge_authz_tests.py
>
> $ svn revert subversion/tests/cmdline/merge_authz_tests.py
> Reverted 'subversion/tests/cmdline/merge_authz_tests.py'
>
> $ svn merge -r31765:32334 \
> $SVN_REPOS/trunk/subversion/tests/cmdline/merge_authz_tests.py \
> subversion/tests/cmdline/merge_authz_tests.py
> svn: File 'subversion/tests/cmdline/merge_authz_tests.py' has inconsistent newlines
> svn: Inconsistent line ending style
>
> $ svn --version -q
> 1.5.2
]]]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-03 13:01:59 CEST