Hi Kamesh,
Unrelated to Malcolm's concerns I see a problem with your patch -- it
appears to cause the default URL peg revision for a URL merge source to
change. For example, starting with a vanilla greek tree:
# Make a branch
---------------
>set
URL=file:///C:/SVN/src-trunk/Release/subversion/tests/cmdline/svn-test-w
ork/repositories/merge_tests-1
>svn copy %URL%/A %URL%/A_COPY -m ""
Committed revision 2.
>svn up
A A_COPY
A A_COPY\B
A A_COPY\B\lambda
A A_COPY\B\E
A A_COPY\B\E\alpha
A A_COPY\B\E\beta
A A_COPY\B\F
A A_COPY\mu
A A_COPY\C
A A_COPY\D
A A_COPY\D\gamma
A A_COPY\D\G
A A_COPY\D\G\pi
A A_COPY\D\G\rho
A A_COPY\D\G\tau
A A_COPY\D\H
A A_COPY\D\H\chi
A A_COPY\D\H\omega
A A_COPY\D\H\psi
Updated to revision 2.
# Make a mod in the branch source as r3
---------------------------------------
>echo "new content" > A\B\E\alpha
>svn ci -m ""
Sending A\B\E\alpha
Transmitting file data .
Committed revision 3.
# Move the branch source in r4
------------------------------
>svn move %URL%/A %URL%/A_MOVED -m ""
Committed revision 4.
>svn up
D A
A A_MOVED
A A_MOVED\B
A A_MOVED\B\lambda
A A_MOVED\B\E
A A_MOVED\B\E\alpha
A A_MOVED\B\E\beta
A A_MOVED\B\F
A A_MOVED\mu
A A_MOVED\C
A A_MOVED\D
A A_MOVED\D\gamma
A A_MOVED\D\G
A A_MOVED\D\G\pi
A A_MOVED\D\G\rho
A A_MOVED\D\G\tau
A A_MOVED\D\H
A A_MOVED\D\H\chi
A A_MOVED\D\H\omega
A A_MOVED\D\H\psi
Updated to revision 4.
# Merge from URL which doesn't exist
# at implied peg rev of HEAD (r4).
# Without your patch we get the
# expected error...
------------------------------------
>svn merge %URL%/A/B A_COPY\B -c3
svn: File not found: revision 4, path '/A/B'
# ...But with your patch the
# merge "works" when it shouldn't no?
-------------------------------------
>svn merge %URL%/A/B A_COPY\B -c3
U A_COPY\B\E\alpha
It gets even stranger if %URL%/A/B exists at HEAD but doesn't share
history with %URL%/A/B@2...
Paul B.
> -----Original Message-----
> From: Malcolm Rowe [mailto:malcolm-svn-dev@farside.org.uk]
> Sent: Thursday, April 05, 2007 12:09 PM
> To: Kamesh Jayachandran
> Cc: SVN Dev
> Subject: Re: [PATCH] remove redundant code
>
> On Thu, Apr 05, 2007 at 09:28:08PM +0530, Kamesh Jayachandran wrote:
> >
> > >It would make more sense to fix libsvn_client to not do
> the redundant
> > >resolution in the first place rather than work around the
> problem in
> > >the 'svn' binary.
> > >
> > >Regards,
> > >Malcolm
> > >
> >
> > I think you misunderstood. The code in libsvn_client/merge.c is
> > correct it exists to handle the cases like svn merge -r5:6
> > file:///path/to/repo/path1/path2@{2007-03-08}
> >
> > The fix is to avoid libsvn_client/merge.c doing redundant
> work because
> > of unwanted input svn gives all the time.
> >
>
> Yes, and I'm suggesting that libsvn_client should be clever
> enough to realise that a merge of file:///path_at_HEAD or
> path@BASE shouldn't require an extra resolution step to get
> the peg revision.
>
> In other words, I'd like to fix the problem for all clients,
> not just one.
>
> Regards,
> Malcolm
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Apr 5 18:33:39 2007