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

RE: svn commit: r35578 - trunk/subversion/libsvn_client

From: Bert Huijben <rhuijben_at_sharpsvn.net>
Date: Sat, 31 Jan 2009 00:23:36 +0100

> -----Original Message-----
> From: Bert Huijben [mailto:rhuijben_at_sharpsvn.net]
> Sent: Friday, January 30, 2009 1:21 PM
> To: dev_at_subversion.tigris.org; svn_at_subversion.tigris.org
> Subject: RE: svn commit: r35578 - trunk/subversion/libsvn_client
>
> > -----Original Message-----
> > From: Senthil Kumaran S [mailto:senthil_at_collab.net]
> > Sent: vrijdag 30 januari 2009 12:51
> > To: svn_at_subversion.tigris.org
> > Subject: svn commit: r35578 - trunk/subversion/libsvn_client
> >
> > Author: stylesen
> > Date: Fri Jan 30 03:51:17 2009
> > New Revision: 35578
> >
> > Log:
> > Partially fix issue #3361.
> >
> > * subversion/libsvn_client/merge.c
> > (merge_cousins_and_supplement_mergeinfo, svn_client_merge3,
> > svn_client_merge_peg3): Determine same repositories by comparing
> > UUIDs
> > of the repositories instead of doing a URL match.
> >
> > Found by: Miles Crawford <mcrawfor_at_u.washington.edu>
> >
> > Modified:
> > trunk/subversion/libsvn_client/merge.c
> >
> > Modified: trunk/subversion/libsvn_client/merge.c
> > URL:
> >
> http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/merge.c
> > ?pathrev=35578&r1=35577&r2=35578
> >
> =======================================================================
> > =======
> > --- trunk/subversion/libsvn_client/merge.c Fri Jan 30 01:55:04 2009
> > (r35577)
> > +++ trunk/subversion/libsvn_client/merge.c Fri Jan 30 03:51:17 2009
> > (r35578)
> > @@ -6688,8 +6688,16 @@ merge_cousins_and_supplement_mergeinfo(c
> > apr_array_header_t *remove_sources, *add_sources, *ranges;
> > svn_opt_revision_t peg_revision;
> > const char *old_url;
> > + const char *source_repos_uuid;
> > + const char *wc_repos_uuid;
> > +
> > + SVN_ERR(svn_client_uuid_from_url(&source_repos_uuid,
> > source_repos_root,
> > + ctx, pool));
> > + SVN_ERR(svn_client_uuid_from_url(&wc_repos_uuid, wc_repos_root,
> > + ctx, pool));
> > +
> > svn_boolean_t same_repos =
> > - (strcmp(wc_repos_root, source_repos_root) == 0) ? TRUE : FALSE;
> > + (strcmp(wc_repos_uuid, source_repos_uuid) == 0) ? TRUE : FALSE;
>
> Could you do this only when the repository root doesn't match?
>
> This creates two RA sessions just to get their UUIDs. (And for at least
> one
> of them we should have this value in our working copy and probably the
> other
> could be cached in its ra session).
>
> So only this change makes just merging a revision in the subversion
> repository for us Europeans at least a few seconds slower than it
> currently
> is. (Just opening a HTTPv1 ra session including authentication takes
> about 2
> seconds)

One small addition:
(which I'll just add to my own mail because I received all
@subversion.tigris.org mail out of order for the last 12 hours thanks to an
overactive spam filter).

If we start allowing merges from other urls to the same repository, while we
didn't before:
* We should validate if our merge info calculations use the right repository
root relative path.

Before this change this couldn't be wrong (as all sources talked about the
same repository root), but now all merge information must be calculated to
the right repository root or we get invalid merge information recorded.

        Bert

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1077246
Received on 2009-01-31 00:42:15 CET

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