> -----Original Message-----
> From: Mark Phippard [mailto:markp...@gmail.com]
> Sent: Tuesday, November 29, 2011 5:14 PM
> To: Talden
> Cc: Joshua McKinnon; users@subversion.apache.org
> Subject: Re: Unreferenced pristines behavior in 1.7
>
> On Tue, Nov 29, 2011 at 6:28 PM, Talden <tal...@gmail.com> wrote:
> > I'd actually like the ability to separate the pristine-store from the
> > WC root since I'd like to have several WCs for the same trunk or
> > branch with various pieces of work-in-progress - sharing pristines
> > there would be great.
> >
> > Maybe something like the Bazaar shared-repositories. Just look up the
> > path until you hit a .svn that contains a pristine-store.
>
> Interesting idea.  The top-level .svn folder would need to include the
> wc.db and the pristines, so maybe the other .svn folders would just be
> empty with some kind of pointer file.
>
> A central pristine store needs a central wc.db to go with it though,
> or else the ref counting could not work.

Something similar occurred to me some time ago.  It seems problematic that a 
user might move or copy WCs outside the root location though; Subversion would 
have no easy way to track that and might end up needing to re-fetch all the 
pristines somehow.  You could put the store into the user's profile or 
something to make it fully user-global, but you would still have the problem of 
dealing with users moving or copying WCs around.

To deal with this you might want a more sophisticated management system, where 
the user could specify locations containing WCs, and Subversion could 
interrogate their top-level .svn directories to perform a global cleanup 
(fixing reference counts and whatnot).

Another option would be an MRU-style behavior where you update the global store 
with indicators of how recently you have seen files (and I have no idea how you 
could make this scale), and toss pristines that seem stale.  This would be more 
automatic but it seems like it wouldn't work all that well.

A third option might be a little of a hybrid; you would have Subversion 
implicitly determine where your WCs were and have it scan around those 
locations during certain operations, attempting to update reference counts and 
whatnot.  Still, if you moved a WC then its pristine might get wiped...unless 
you access them from the new location within a certain period of time.

If you really wanted to make this work well, you'd probably need to install a 
daemon or service to monitor WC directory (and possibly other directory) 
locations.  A side advantage of this would be that you could detect changes in 
real time rather than doing file tree scans to check for modified files.

If you did any of this though, you might want to make optional behaviors such 
as "share this WCs pristine with other WCs" (aka global storage), "remove 
pristine if they have not been accessed in x days" (aka MRU behavior), and 
"watch filesystem for WC changes" (aka monitoring daemon/service).

--Todd


Please consider the environment before printing this e-mail.

The contents of this e-mail message (including any attachments) are 
confidential to and are intended to be conveyed for the use of the recipient to 
whom it is addressed only. If you receive this transmission in error, please 
notify the sender of this immediately and delete the message from your system.  
Any distribution, reproduction or use of this message by someone other than 
recipient is not authorized and may be unlawful.

Reply via email to