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

Re: FSFS failing regression tests?

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: 2005-08-09 22:03:33 CEST

David James <james82@gmail.com> writes:

> On 8/4/05, Michael Brouwer <michael@tlaloc.net> wrote:
> > If the user enters a log message stating
> >
> > * foo deleted
> > * bar modified
> >
> > And someone else has already deleted foo, allowing this transaction
> > to go through will result in an incorrect log message since someone
> > else already deleted foo. I'd say that that warrants giving the user
> > an out of date error and letting him/her fix the log message before
> > committing.
>
> Good argument! I'm convinced.
>
> Shall we fix the test to reflect the new behaviour? fs-test looks like
> it's still failing

fs-test is failing for different reasons altogether, entirely
unrelated to merges of double-deletes.

Further, despite attempts to make corrections to folks along the way,
I'm 100% convinced that either:

   - most of the participants in this discussion have absolutely no
     idea what is and isn't actually going on, when this double-delete
     consideration does and doesn't actually come into play, and so
     on, or

   - folks are just talking about some future behavior of Subversion
     which was not the original intent of this thread.

And so, just in case the former is true, I repeat: the disallowing of
double-deletes by svn_fs_commit_txn() only happens when some other
user slips in a delete of something I wanted to delete *between the
time I start my commit transaction and the time the pre-commit
auto-merge code is run*.

   $ rm -rf repos/
   $ svnadmin create repos
   $ svn co file://`pwd`/repos wc1
   Checked out revision 0.
   $ svn co file://`pwd`/repos wc2
   Checked out revision 0.
   $ touch wc1/foo
   $ svn add wc1/foo
   A wc1/foo
   $ svn ci -m "add foo" wc1
   Adding wc1/foo
   Transmitting file data .
   Committed revision 1.
   $ svn up wc2
   A wc2/foo
   Updated to revision 1.
   $ svn rm wc1/foo
   D wc1/foo
   $ svn rm wc2/foo
   D wc2/foo
   $ svn ci -m "remove foo" wc1
   Deleting wc1/foo
   
   Committed revision 2.
   $ svn ci -m "remove foo" wc2
   Deleting wc2/foo
   
   Committed revision 3.
   $ svn log -v file://`pwd`/repos
   ------------------------------------------------------------------------
   r3 | cmpilato | 2005-08-09 14:57:03 -0500 (Tue, 09 Aug 2005) | 1 line
   Changed paths:
   
   remove foo
   ------------------------------------------------------------------------
   r2 | cmpilato | 2005-08-09 14:57:01 -0500 (Tue, 09 Aug 2005) | 1 line
   Changed paths:
      D /foo
   
   remove foo
   ------------------------------------------------------------------------
   r1 | cmpilato | 2005-08-09 14:56:48 -0500 (Tue, 09 Aug 2005) | 1 line
   Changed paths:
      A /foo
   
   add foo
   ------------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Aug 9 22:07:02 2005

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.