[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: Julian Foad <julian.foad_at_wandisco.com>
Date: Thu, 28 Jan 2010 17:30:37 +0000

Greg Stein wrote:
> I didn't see it as "mouthing off" :-)

Phew :-)

> I would also suggest new names for the trees since WORKING has caused
> us problems, too.
> PRISTINE might be okay. And something to reference a restructured tree
> (WORKING is all about add/copy/move/del).

The big conceptual difference between your wc_db trees and what I think
the user's concept of trees should be, is that the wc_db trees are
"overlays", whereas the user's notions of "base" and "working" are
complete trees, in the sense that for an unmodified file both notions
regard the file as existing and having content.

(Correct me if I'm wrong - the thing is, I just don't have a very clear
idea of the concepts, and that's preciseley the problem I'm wanting to

So the wc_db trees are something like

  * (the pristine one, known as BASE)

    A cached version of the complete tree that was checked out of the
repository. (Well, ish.)

  * (the tree-changes, known as WORKING)

    A set of tree-changes, describing any nodes added, deleted, moved,
copied, replaced, etc. Any node that just has text and/or prop mods, or
no mods, does not appear in this tree.

  * (the on-disk and in-property-storage stuff, known as ACTUAL)

    A description of the text-content and properties of any nodes whose
text-content and/or properties are different from its WORKING version.
Any node that has no such differences does not appear in this tree.

Is that anywhere close to accurate for a high-level starter?

I just went to read notes/wc-ng/design, and found:

When considering the wc-1.0 design, one finds that there are a lot
of situations where the exact state of the versioned tree isn't
defined. When explicitly considering which trees relate to the
working copy at one time or another, the following trees can be

 * BASE: The tree of nodes from the repository, [...]

 * WORKING: [...]

 * ACTUAL: [...]

but, worryingly, that text goes into some detail that doesn't seem to
correspond either to the user (command-line) concepts or the wc-ng DB
concepts. Maybe it corresponds to some WC-1 implementation concepts -
but I'm not sure it does.

I think that block of text might have misled some of us into thinking it
was documentation of the WC-NG concepts.

- Julian

> > On Jan 28, 2010 9:57 AM, "Julian Foad" <julianfoad_at_btopenworld.com>
> > wrote:
> >
> > ... and if that sounded like me just mouthing off against lack of
> > clear
> > docco, but not helping again, sorry but I'd really like to help.
Received on 2010-01-28 18:31:15 CET

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