You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Vladimir Prus <gh...@cs.msu.su> on 2001/12/04 10:22:01 UTC
svn cp/mv problem?
Hello,
The set of command below looks reasonable to me, but it failed. I didn't find
any relevant issues. Is it bug or my misundestanding?
---------
# svnadming create /tmp/svn
#cd /tmp
#mkdir t
#touch /tmp/t/foo
#svn import file://localhost/tmp/svn
Adding ./t
Adding ./t/foo
Commit succeeded.
#rm -rf t
#svn co file://localhost/tmp/svn/t
A t/foo
#cd t
#svn cp foo foo2
A foo2
#svn ci
Adding /tmp/t/foo2
Commit succeeded.
#svn mv foo2 foo_2
A foo_2
D foo2
#svn ci
svn_error: #21050 : <Filesystem has no such file>
commit failed: wc locks and tmpfiles have been removed.
svn_error: #21050 : <Filesystem has no such file>
commit failed: while sending tree-delta to repos.
svn_error: #21050 : <Filesystem has no such file>
file not found: filesystem `/tmp/svn/db', transaction `2', path `/t/foo2'
-------
Regards,
Vladimir
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn cp/mv problem?
Posted by Ben Collins-Sussman <su...@collab.net>.
cmpilato@collab.net writes:
> I'm pretty sure you can also reproduce this more simply with:
>
> svn co file://localhost/tmp/svn/t
> cd t
> echo "foo" > foo
> svn add foo
> svn ci
> svn rm foo (this is just your 'move' above minus the 'copy' part, right?)
> svn ci
>
> ---------------------
> NOTE (and this the real important part of this mail): We are
> addressing this (and many related problems) in the next Milestone.
> ---------------------
Yes, this bug has been around forever (read: since ra_local came into
existence). In this next Milestone, we'll be rewriting the way
commits work -- so that ra_dav and ra_local are both always committing
against the 'head' revision. That will solve the problem.
For now, the simple workaround is to update frequently -- especially
after a commit.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn cp/mv problem?
Posted by cm...@collab.net.
Karl Fogel <kf...@newton.ch.collab.net> writes:
> Vladimir,
>
> That sequence of commands looks legitimate to me.
The sequence of commands is legit, but this is not going to work out
very well using ra_local these days. See the play-by-play below.
> > # svnadming create /tmp/svn
Got a repos, version 0.
> > #cd /tmp
> > #mkdir t
> > #touch /tmp/t/foo
> > #svn import file://localhost/tmp/svn
> > Adding ./t
> > Adding ./t/foo
> > Commit succeeded.
Now our repos is at version 1, with ./t and ./t/foo in it.
> > #svn co file://localhost/tmp/svn/t
> > A t/foo
Now we have a working copy at version 1.
> > #cd t
> > #svn cp foo foo2
> > A foo2
> > #svn ci
> > Adding /tmp/t/foo2
> > Commit succeeded.
Okay, repos is at version 2, working copy is at version 1 save for
/t/foo2, which is at version 2.
> > #svn mv foo2 foo_2
> > A foo_2
> > D foo2
> > #svn ci
> >
> > svn_error: #21050 : <Filesystem has no such file>
> > commit failed: wc locks and tmpfiles have been removed.
> >
> > svn_error: #21050 : <Filesystem has no such file>
> > commit failed: while sending tree-delta to repos.
> >
> > svn_error: #21050 : <Filesystem has no such file>
> > file not found: filesystem `/tmp/svn/db', transaction `2', path `/t/foo2'
Remember that foo2 (and only foo2) is at revision 2 in the working
copy. So, the move command will make foo_2 a copy of foo2:2 (using
file:revision syntax), and schedule foo2 for deletion. The problem
(at least with the current commit system) is that we build the commit
txn on the parent directory's (t in this case) revision (again, 1 in
this case), and then we attempt to delete 'foo2' from it. But 'foo2'
didn't show up until revision 2, so we can't possibly delete it from
revision 1!
I'm pretty sure you can also reproduce this more simply with:
svn co file://localhost/tmp/svn/t
cd t
echo "foo" > foo
svn add foo
svn ci
svn rm foo (this is just your 'move' above minus the 'copy' part, right?)
svn ci
---------------------
NOTE (and this the real important part of this mail): We are
addressing this (and many related problems) in the next Milestone.
---------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn cp/mv problem?
Posted by Karl Fogel <kf...@newton.ch.collab.net>.
Vladimir,
That sequence of commands looks legitimate to me. Will you have time
to debug the errors and see what's causing them? Since you're using
the `ra_local' (i.e., no network) access method, it should be
convenient to use GDB to trace right into the filesystem code...
If no time for that, then it would be great if you could enter an
issue at:
http://subversion.tigris.org/issues/enter_bug.cgi?issue_type=DEFECT&component=subversion
Thanks!,
-Karl
Vladimir Prus <gh...@cs.msu.su> writes:
> Hello,
> The set of command below looks reasonable to me, but it failed. I didn't find
> any relevant issues. Is it bug or my misundestanding?
>
> ---------
> # svnadming create /tmp/svn
>
> #cd /tmp
> #mkdir t
> #touch /tmp/t/foo
> #svn import file://localhost/tmp/svn
> Adding ./t
> Adding ./t/foo
> Commit succeeded.
> #rm -rf t
> #svn co file://localhost/tmp/svn/t
> A t/foo
> #cd t
> #svn cp foo foo2
> A foo2
> #svn ci
> Adding /tmp/t/foo2
> Commit succeeded.
> #svn mv foo2 foo_2
> A foo_2
> D foo2
> #svn ci
>
> svn_error: #21050 : <Filesystem has no such file>
> commit failed: wc locks and tmpfiles have been removed.
>
> svn_error: #21050 : <Filesystem has no such file>
> commit failed: while sending tree-delta to repos.
>
> svn_error: #21050 : <Filesystem has no such file>
> file not found: filesystem `/tmp/svn/db', transaction `2', path `/t/foo2'
> -------
>
> Regards,
> Vladimir
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org