Luke Blanshard wrote:
cmpilato@collab.net writes:
Checkout aren't restartable because when a checkout dies, some
directory is left with an entries file that contains lies...
Updates should never be in a dishonest state, though. If a
directory doesn't get fully updated, it's revision still reflects
what it had before the update (which was known to be complete and
accurate)...
But doesn't an interrupted update leave the WC in a dishonest
state too? The WC claims to match its former revision, but it's
partway through the update, and so its claim is a lie.
No - the _directory_ is still at the former revision, but some of it's
children may already be updated to the later revision - and those are
reported to the server, so the server doesn't have to send changes for
those files again. The directory revision is only bumped when all
changes have been transmitted, which makes sure that all changes have
indeed been transmitted and that all directory operations such as adds
and deletes have been carried out.
Also, what's the state of affairs if update is interrupted while
creating a new directory? What does that new directory's entries
file look like? Whatever it looks like, couldn't you just drop that
in at the top of a new checkout and then have checkout proceed as if
it was the resumption of an interrupted update?
Right now, it looks a bit bad - so that's a bug that I intend to fix
when fixing this issue. Nevermind it for now.
-- Naked
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 14 02:24:36 2006