BTW, I don't think this problem has anything to do with merge tracking.
(Use of merge tracking just makes it more likely that this problem will
be seen, because merge tracking performs a sequence of merges without
commits in between, and that's the scenario in which this problem shows
up.)
- Julian
On Wed, 2008-09-03 at 12:01 +0100, Julian Foad wrote:
> 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
>
---------------------------------------------------------------------
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 20:15:07 CEST