> > I want to file an issue because "svn merge --reintegrate" yields more
> > merge conflicts than "svn merge" and manually specifying the revision
> > numbers from "svn mergeinfo --show-revs eligible"
> >
> > My understanding is that the behaviour of "svn merge --reintegrate"
> > should be identical to "svn merge" and manually specifying the revision
> > numbers from "svn mergeinfo --show-revs eligible"
>
> So, you might be right that conflicts shouldn't be caused, but this
> understanding is not true: --reintegrate does a two-URL diff, whereas
> merge -c does a one-URL two-rev diff.
I got around to trying a manual two-URL merge and find that the results
still disagree with the results of --reintegrate: --reintegrate results
in many extraneous conflicts.
Here is a screenlog which illustrates a manual two-URL merge and a
--reintegrate merge with different results:
http://cgi.sfu.ca/~jdbates/tmp/svn/200812180/screenlog
The steps it illustrates are:
* checkout a revision from my repository
* get the eligible revisions of an ancestrally related branch using "svn
mergeinfo --show-revs eligible"
* do manual two-URL merge and observe two conflicts
* do --reintegrate merge and observe six conflicts
Here is a summary of the commands from the screenlog and significant
output:
ket% ./svn --version
svn, version 1.6.0 (dev build)
compiled Dec 18 2008, 15:14:36
Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
ket% ./svn co http://example.com/svn/qubit/trunk/qubit/lib/vendor/symfony -r 1631
[...]
Checked out revision 1631.
ket% ./svn mergeinfo http://example.com/svn/qubit/trunk/symfony/vendor@1636 symfony --show-revs eligible
r1636
ket% ./svn merge --dry-run http://example.com/svn/qubit/trunk/symfony/vendor@1635 http://example.com/svn/qubit/trunk/symfony/vendor@1636 symfony | grep ^C
C symfony/lib/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php
C symfony/lib/yaml/sfYamlInline.class.php
ket% ./svn merge --reintegrate http://example.com/svn/qubit/trunk/symfony/vendor@1636 symfony --dry-run | grep ^C
C symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineGenerateAdminTask.class.php
C symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildModelTask.class.php
C symfony/lib/plugins/sfPropelPlugin/test/functional/fixtures/config/ProjectConfiguration.class.php
C symfony/lib/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php
C symfony/lib/routing/sfRoute.class.php
C symfony/lib/yaml/sfYamlInline.class.php
ket%
> > Here is a screenlog which illustrates the problem:
> > http://cgi.sfu.ca/~jdbates/tmp/svn/200811280/screenlog
> >
> > The steps it illustrates are:
> >
> > * checkout a revision from my repository
> > * get the eligible revisions of an ancestrally related branch using "svn
> > mergeinfo --show-revs eligible"
> > * manually merge those revisions
> > * verify two files conflicted
> >
> > * checkout the same revision
> > * automatically merge eligible revisions using "svn merge --reintegrate"
> > * observe six files conflicted!
> >
> > Here is a summary of the commands from the screenlog and significant
> > output:
> >
> > ket% ./svn --version
> > svn, version 1.6.0 (dev build)
> > compiled Nov 28 2008, 15:00:00
> >
> > Copyright (C) 2000-2008 CollabNet.
> > Subversion is open source software, see http://subversion.tigris.org/
> > This product includes software developed by CollabNet (http://www.Collab.Net/).
> >
> > The following repository access (RA) modules are available:
> >
> > * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
> > - handles 'http' scheme
> > - handles 'https' scheme
> > * ra_svn : Module for accessing a repository using the svn network protocol.
> > - handles 'svn' scheme
> > * ra_local : Module for accessing a repository on local disk.
> > - handles 'file' scheme
> >
> > ket% ./svn co http://example.com/svn/qubit/trunk/qubit/lib/vendor/symfony -r 1631
> > [...]
> > Checked out revision 1631.
> > ket% ./svn mergeinfo http://example.com/svn/qubit/trunk/symfony/vendor symfony --show-revs eligible
> > r1636
> > ket% ./svn merge http://example.com/svn/qubit/trunk/symfony/vendor symfony -c 1636 --accept postpone
> > --- Merging r1636 into 'symfony':
> > [...]
> > Summary of conflicts:
> > Text conflicts: 2
> > ket% ./svn status symfony | grep ^C
> > C symfony/lib/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php
> > C symfony/lib/yaml/sfYamlInline.class.php
> > ket% ./svn co http://example.com/svn/qubit/trunk/qubit/lib/vendor/symfony -r 1631 symfony-reintegrate
> > [...]
> > Checked out revision 1631.
> > ket% ./svn merge http://example.com/svn/qubit/trunk/symfony/vendor symfony-reintegrate
> --reintegrate --accept postpone
> > --- Merging differences between repository URLs into 'symfony-reintegrate':
> > [...]
> > Summary of conflicts:
> > Text conflicts: 6
> > Tree conflicts: 11
> > ket% ./svn status symfony-reintegrate | grep ^C
> > C symfony-reintegrate/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineGenerateAdminTask.class.php
> > C symfony-reintegrate/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildModelTask.class.php
> > C symfony-reintegrate/lib/plugins/sfPropelPlugin/test/functional/fixtures/config/ProjectConfiguration.class.php
> > C symfony-reintegrate/lib/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php
> > C symfony-reintegrate/lib/routing/sfRoute.class.php
> > C symfony-reintegrate/lib/yaml/sfYamlInline.class.php
> > ket%
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=987060
Received on 2008-12-19 01:03:33 CET