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

Re: ancestor path / revision

From: Ben Collins-Sussman <sussman_at_newton.collab.net>
Date: 2000-12-19 18:27:11 CET

Greg Stein <gstein@lyra.org> writes:

> [think think think]
> We have four "main" editor processes, and in all cases, the revision *must*
> be supplied to the editor:
> 1) report revision status [to determine what must be updated]
> - definitely need the revision; don't need the path, though

Again, how can you decouple the path from the revision? If the
working copy reports "I have version 7 of glub/foo.c", how does the
repository know which node it's talking about? Don't we need to
specify all resources using absolute filesystem paths?

> 2) apply updates to the WC
> - need the revision so the WC knows what rev is now in the WC

It also needs the absolute filesystem path.

> 3) commit WC changes to the server
> - need the path/revision pair to describe ancestry from a move/copy
> - need the revision to specify what a diff was built against
> - add file/dir: revision is N/A

Need path/revison pair to describe *any* local changes, not just
move/copy. (When adding a file or dir, the the working copy reports
the resource's revision as "0", btw.)

> 4) checkout fresh source from the server
> - need the revision so the WC knows what rev is now in the WC

And it needs to know the absolute filesytem path, too.

> How about if we upgrade revision to generally "required", and the "start
> from scratch" case allows a NULL/INVALID_REVNUM pair if there is no
> ancestor? And the path element is typically NULL.

Sorry, I don't mean to sound like a broken record... either my brain
is broken and I'm totally confused, or there's a fundamental
misunderstanding here.

Every resource in the working copy needs to know its coordinates in
the repository, which means *always* having a revision (which tree to
look at) and an absolute path within the tree.

Now, it's a separate question about how these absolute coordinates are
communicated. As Karl suggested, only the "root" of the working copy
may store the absolute path, and when driving a commit editor, the
editor callbacks are called with an assumption that all parent
directory batons' paths are being implicitly prepended. But that's
another topic.
Received on Sat Oct 21 14:36:17 2006

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