[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'

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Thu, 10 Jul 2008 14:55:55 -0400

Daniel Shahaf <d.s_at_daniel.shahaf.co.il> writes:
> Ping. This patch hasn't had any responses yet.

Thank you. It really should get reviewed, and it doesn't look like it
would be too hard. But Alexander, my apologies, I've just had a lot of
unexpected work to do on issue #2489, so my patch review committments
have gotten... um, delayed :-(.

If you could file a "[PATCH]" issue for this, that would be great. Or
if someone else has time to review it right now, that would be even
better.

-Karl

> 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:56:20 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.