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

Re: [PATCH]: fix double occurrence of the same commit patch while 'svn copy --parents url url' (was Re: Bug in 'svn copy --parents url url'?)

From: Daniel Shahaf <d.s_at_daniel.shahaf.co.il>
Date: Thu, 10 Jul 2008 21:24:32 +0300 (Jerusalem Daylight Time)

Ping. This patch hasn't had any responses yet.

Alexander Sinyushkin wrote on Wed, 25 Jun 2008 at 19:02 +0700:
> Here is a patch to the problem in question to review .
>
> [[[
> Fix double occurrence of the same commit path
> in commit items array which takes place in
> 'svn cp --parent url/src url/dst' command
> where src exists and dst does not.
>
> * subversion/libsvn_client/copy.c
> (repos_to_repos_copy): when collecting new_dirs in case
> make_parents is true proceed only when dir (the result of
> svn_path_is_child(top_url, svn_path_dirname(pair->dst, pool),..))
> is not null. If dir is null do not bother collecting anything
> for new_dirs.
> ]]]
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
>
> Karl Fogel wrote:
> > Alexander Sinyushkin <Alexander.Sinyushkin_at_svnkit.com> writes:
> > > If I try to copy an existing directory to nonexistent one with
> > > --parents, like this:
> > >
> > > svn copy --parents svn://localhost/repo/x svn://localhost/repo/y
> > >
> > > where x exists and y does not, an editor for commit message is
> > > launched twice (if no -m or -F is provided). Commit succeeds,
> > > i.e. afterwards I see /y/x in my repo but isn't it a bug that the
> > > editor is launched twice?
> >
> > Yes, that's a bug.
> >
> > > Debugging this command I see that first call to setup_copy() fails
> > > with the following error:
> > >
> > > "File already exists: filesystem '/home/alex/workspace/tmp/repo/db',
> > > transaction '9-f', path '/y'"
> > >
> > > The problem here is in that commit paths array (which is passed to
> > > svn_delta_path_driver()) contain two identical strings "y" what causes
> > > the aforementioned error.
> > >
> > > But then the second call to setup_copy() is made in the following if
> > > clause and commit ends well.
> > >
> > > if (copy_as_child && err && (sources->nelts == 1)
> > > && (err->apr_err == SVN_ERR_ENTRY_EXISTS
> > > || err->apr_err == SVN_ERR_FS_ALREADY_EXISTS))
> > >
> > > Anyway, I'm reporting this because you may decide that this behavior
> > > should be changed. Thank you.
> >
> > I doubt anyone would disagree that it's bug... Since you're now familiar
> > with the code path, do you have time to make a patch?
> >
> > Best,
> > -Karl
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-07-10 20:24:55 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.