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

Re: '@BASE' vs. 'BASE tree' -- was: Re: svn_wc__db_base_get_info() vs. svn_wc__db_read_info() ?

From: Greg Stein <gstein_at_gmail.com>
Date: Thu, 28 Jan 2010 22:04:59 -0500

On Thu, Jan 28, 2010 at 21:25, Neels J Hofmeyr <neels_at_elego.de> wrote:
> Wait a minute, I just read this again:
>
> notes/wc-ng/design
> [[[
>  * BASE: The tree of nodes from the repository, against which local changes
>     are made.  Also known as "pristine".  Each node is as it was in the
>     repository at a particular revision and URL, as recorded per node in
>     the WC metadata.  A directory node in the BASE tree knows something
>     about the children it had in the repository (### details?), but its set
>     of children in the WC is independent of that.  In a node or tree
> [--->                                          HERE ^^^^^^^            ]
>     scheduled for replacement the BASE is the pristine version of the
>     to-be-added node or tree, not of the deleted one.  For a node that is
>     scheduled for add without history, there is no BASE node.
> ]]]
>
> Er, what? I thought that was different in the BASE *tree*. Is this really
> true? Then all I said about the BASE tree is probably wrong.

What do you mean "this". Be explicit... I don't see anything wrong here.

> - Where is the information for a 'revert' in case of (a) an add and of (b) a
> replace-with-history (going to be) in wc-ng?

Still in the BASE tree.

An 'add' just creates WORKING nodes. A "replace-with-history" is a
fucked-up name. Never ever say "with-history". I say there is no such
thing. It is a *copy*. Plain and simple. So you're talking about a
'delete' followed by a 'copy' into the same location. Information for
the revert is still sitting in the BASE tree.

> - In the same line, does base_shadowed == TRUE mean that the BASE tree now
> reflects the to-be-committed node's history and no longer "what I checked out"?

BASE is always what you checked out.

I think what might be throwing you off is that the repository has a
set of children X. In the working copy, you could have a *subset* of
those children named Y because you've *excluded* some children.

Now... all that said. Let look at the phrase "the BASE is the pristine
version of the to-be-added node or tree," ... that's just wrong. The
BASE is untouched by adds, deletes, etc. As Julian mentioned, there is
some stuff in wc-ng/design that appears to be descriptive of wc-1
terms rather than what we've come to concretely as wc-ng concepts.

Cheers,
-g
Received on 2010-01-29 04:05:36 CET

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