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

Re: Working Copy (NG) Data Model

From: Greg Stein <gstein_at_gmail.com>
Date: Tue, 16 Dec 2008 18:12:29 -0800

On Tue, Dec 16, 2008 at 05:06, Julian Foad <julianfoad_at_btopenworld.com> wrote:
> Greg,
>
> While taking a bath this morning, a thought crystallized in my mind on
> this subject.

It is always the downtimes! :-)

> In WC1, when a WC node is scheduled R+ (replacement with history), the
> concept of "Base" is being hijacked to provide a place to store the
> pristine copy of the replacement, and the real base is RENAMED to
> "Revert Base". That's all wrong: the concept of "the base" should ALWAYS
> mean "the base that we would revert to".

All wrong: agreed.

But definition: disagree. I believe that BASE should be what we get
from the server. The *absolute* pristine copy. Nothing can change it
-- it is always a reflection of the repository. You need to use
checkout, update, switch, or commit to alter your view of the
repository.

Note that with the concept of BASE, WORKING, and ACTUAL, that the
revert process for ACTUAL can revert to one of *two* things. You could
undo local mods against a copy, or you could undo the copy itself. We
simply do not distinguish in our command line capabilities. (and
possibly not in our APIs).

> The extra thing being stored in an R+ situation is a pristine copy of
> the copy-from source. It is not "the base". We stored it as if it were
> "the base" so that we would not have to change the APIs or the client in
> order to make the default client's default "diff" command perform a diff
> against this copy.

Yah. It's all whacked. We'll get better APIs.

> So the new WC should store, for each node:
>
> * Base:
> - repos URL_at_REV
> - cached text and props (if caching enabled)
>
> * Copy-from source (present only on a node scheduled A+/R+):
> - repos URL_at_REV
> - cached text and props (if caching enabled)
>
>
> Basically I am saying it does not make sense to use the label "working"
> for copy-from sources, and we should define:
>
> * the "base" tree is the tree that we would revert to;

Well, there are two ways to revert, I'd prefer to stick to "same as
repos" for BASE, which is basically immutable.

> * the "copy-from" tree is sparsely populated, not really a "tree" as
> such but just an (often empty) set of nodes;

Fair enough. But just a name change over the WORKING that I defined?

> * the "working" tree is what the user works with, using whatever
> combination of Subversion commands and OS commands the client requires.
> I think this corresponds to the current 'svn_opt_revision_working'.

I'd stick with ACTUAL for this; I don't see much need to change
something we're used to.

>...

Cheers,
-g

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=985390
Received on 2008-12-17 03:13:04 CET

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