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

RE: Unreferenced pristines behavior in 1.7

From: Gleason, Todd <Todd.Gleason_at_elekta.com>
Date: Wed, 30 Nov 2011 07:45:42 -0800

> -----Original Message-----
> From: Mark Phippard [mailto:markphip_at_gmail.com]
> Sent: Tuesday, November 29, 2011 5:14 PM
> To: Talden
> Cc: Joshua McKinnon; users_at_subversion.apache.org
> Subject: Re: Unreferenced pristines behavior in 1.7
>
> On Tue, Nov 29, 2011 at 6:28 PM, Talden <talden_at_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.
Received on 2011-11-30 16:45:00 CET

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

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