We use a gatekeeper branching and merging model here. This means each
developer creates their own task branches, and is responsible for
rebasing changes (and resolving conflicts) made on the underlying
branch (trunk for example) into their task branch before the
gatekeeper performs the trivial merge of their task branch back onto
the trunk. Essential each portion of the repository file hierarchy is
writable by one and only one person, which essentially drives broken
builds to zero for shared branches if you have good gatekeepers. The
following example illustrates merging the trunk on to the branch and
then the branch back onto the trunk. It of course works fine for
textual source files, but produces conflicts for binaries that are
identical. It's more work than is necessary to have to manually
resolve conflicts that really don't exist. It would be really
straight forward to have svn check to see if binaries are equal before
declaring them as conflicted when merging.
- Mike
----------------------------------------------------------------------
svn cp http://vortex/play/trunk http://vortex/play/branches/bintest
svn co http://vortex/play/trunk
svn co http://vortex/play/branches/bintest
cd trunk
cp /tmp/binaryfile .
svn add binaryfile
svn commit -m 'added MoneyBag'
cd ..
cd bintest
svn merge -r4:5 http://vortex/play/trunk svn commit -m 'svn merge -r4:5
http://vortex/play/trunk'
cd ../trunk
svn update
svn merge -r4:6 http://vortex/play/branches/bintest
svn diff binaryfile
svn status -q | awk '{print $2}' | xargs svn diff
svn status -q | awk '{print $2}' | xargs svn resolved
svn commit -m 'svn merge -r4:6 http://vortex/play/branches/bintest'
----------------------------------------------------------------------
> -----Original Message-----
> From: sussman@gmail.com [mailto:sussman@gmail.com] On Behalf Of Ben
> Collins-Sussman
> Sent: Tuesday, May 09, 2006 3:24 PM
> To: Hayward, Michael A
> Cc: dev@subversion.tigris.org
> Subject: Re: merge conflicts between identical binary files
>
> On 5/8/06, Hayward, Michael A <michael.a.hayward@sun.com> wrote:
>
> > Create a branch (of the trunk)
> > Add binary file to trunk
> > Rebase (merge) trunk to branch - this adds the binary file to the
> > branch Merge branch to trunk - svn will notice the file was added to
> > the branch and refuse to merge with the (identical) one on the trunk
> >
>
> It sounds like you have a specific problem, and think that issue 2403
> is related, but I'm not entirely sure that it is. Can you be more
> specific with your recipe? Saying "merge trunk to branch" or "merge
> branch to trunk" is too vague. What we really need is a literal
> transcript (commands and resulting output) that demonstrates your
> scenario. (Or, a shell script would work as well.)
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue May 9 23:50:55 2006