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

changing the checkout process

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2003-05-15 18:32:46 CEST

Again, another RFC, resulting from a whiteboard session last week.
Wanted to run it by the list first.

The proposal is to drastically simplify the way we do checkouts.

At the moment, every RA layer is responsible for implementing its own
RA->checkout() routine, which essentially loops over dirents (just
like RA->ls() does) and pushes data at the wc update-editor.

Instead, we could make svn_client_checkout() do this:

  1. create a wc root directory with nothing but a THIS_DIR entry,
     URL, revnum, and 'incomplete' flag.

  2. call svn_client_update(). It will report the directory as
     incomplete, and the server will add all children.

This change would effectively make checkouts rely completely on
svn_repos_dir_delta(), rather than on independent RA looping
implementations.

The pros:

   - we lose a lot of code from all three RA layers
   - our checkout logic is unified (easier maintenance, in theory)
   - for people creating new RA layers, one less routine to write

The cons:
 
   - this approach may give people the willies. I mean, come on... a
     checkout is just an update of an broken root dir?

Any thoughts?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu May 15 18:34:09 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.