[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Odd diff/merge behaviour

From: Max Bowsher <maxb_at_ukf.net>
Date: 2004-09-23 01:18:13 CEST

Ron Blaschke wrote:
> Hello,
>
> I have the following issue with svn 1.1.0-rc3. I've checked the
> mailing lists and the issues, but not in great detail, so I apologize
> if this is already known.
>
> I'd like to update a branch to the latest release, so I do:
> svn delete <branch>
> svn copy <release> <branch>
> svn co <branch>
> cd branch
> svn merge -r <branch copy revision>:<branch revision before delete>
> <branch>
> svn commit
>
> <branch> is something like http://svn.server/development/branch
> <release> is something like http://svn.server/releases/release0
>
> Thus, I create a new branch from a newer release, and merge all
> changes in the development branch into it.
>
> Now, this worked fine in svn 1.0, but with 1.1.0-rc3 (and rc2), the
> merge (and also a diff) produces some odd output. For some reason,
> the diff seems to refer to the trunk and the release, though I didn't
> mention it anywhere. Also, the content seems to be from the changes
> on the trunk, not the branch (eg, project.xml was not modified in the
> branch). It looks something like this:
> Index: project.xml
> ===========================================================
> --- project.xml (.../trunk) (revision 2512)
> +++ project.xml (.../release/release0) (revision 2595)
> ...
>
> Above is the output of
> svn diff -r 2512:2595 http://svn.server/development/branch
>
> Now, interestingly if I change the command to
> svn diff http://svn.server/developement/branch@2512
> http://svn.server/developement/branch@2595
> the output is just as I would expect it to be (the changes made on the
> branch).
>
> Any hints on that one? Is this a bug or a feature?
> What's be big difference between "-r x:y URL" and "URL@x URL@y"?

Feature.

Specifically, the 'peg revision' feature.

> svn diff http://svn.server/developement/branch@2512
> http://svn.server/developement/branch@2595

always means: the diff between branch@2512 and branch@2595

In 1.0,

> svn diff -r 2512:2595 http://svn.server/development/branch

meant the same.

In 1.1, it means "this diff between r2512 and r2595 of the object that is
branch@HEAD". Now, "the object that is branch@HEAD", traced back to
revisions 2512 and 2595 is trunk!

svn diff -r 2512:2595 http://svn.server/development/branch@2512

would be an alternative way of getting the behaviour you want.

Max.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Sep 23 01:18:48 2004

This is an archived mail posted to the Subversion Users mailing list.