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

Fwd: Re: mv != (cp && rm)

From: Florin Iucha <florin_at_iucha.net>
Date: 2001-11-28 02:34:19 CET

On Tue, Nov 27, 2001 at 07:03:04PM -0600, Karl Fogel wrote:
> Mattias Rönnblom <hofors@lysator.liu.se> writes:
> > I think what I'm trying to say that there is just one side of a mv
> > command, and that changing the name of the node.
> In Unix, there is one side.
> Subversion is not Unix.

Regardless, it should respect the principle of least astonishment...

[Even ms-(dos|win(nt)?) has atomic "ren". And NT has a silly utility|daemon
that will update the registry when you rename an executable that contains a
COM object.]

> In Subversion, it is possible to commit one
> side of the operation without committing the other.

You are talking here about the frontend, right?

It is possible for the backend to implement "mv" as "cp && rm" if and only
if the "mv" semantics is preserved.

But "cp && rm" and "mv" are not equivalent because "mv" is atomic, while
"cp && rm" is not. What if my host commits the cp and then the network blows
up? You end up with two objects.

> What is your suggested behavior?

Regardless of how the backend is implemented, the frontend should have an
atomic "mv".


"If it's not broken, let's fix it till it is."
41A9 2BDE 8E11 F1C5 87A6  03EE 34B3 E075 3B90 DFE4

  • application/pgp-signature attachment: stored
Received on Sat Oct 21 14:36:49 2006

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