----- Original Message -----
> From: Branko Čibej <br...@apache.org>
> To: Ashod Nakashian <ashodnakash...@yahoo.com>
> Cc: "dev@subversion.apache.org" <dev@subversion.apache.org>
> Sent: Sunday, April 1, 2012 12:23 PM
> Subject: Re: Compressed Pristines (Summary)
> 
> On 31.03.2012 23:30, Ashod Nakashian wrote:
>>>>   Git can keep deleted items until git-gc is invoked, should we 
> support 
>>>  something similar, we need to be consistent and probably support 
> arbitrary 
>>>  revision history, which is out of scope.
>>> 
>>>  I'm confused: how does revision history affect the pristine store?
>>  If the pristine store also keeps multiple revisions, then it's a whole 
> different set of features than what we are aiming for (at least for 
> compressed 
> pristines).
> 
> Certainly the pristine store keeps multiple revisions of files. After
> all, it's just a SHA-1 => contents dictionary, so every time you 
> "svn
> update," you'll get new revisions of files in the pristine store.

Sure. I meant multiple revisions of the same file. You're absolutely right, the 
PS tracks SHA-1 and whether two files are revisions of the /same/ file or not 
isn't relevant. What I meant to say is that if we are to have such a case, we 
probably need to add support for it on the higher level where 
files/revisions/SHA-1's/references are tracked. This is out of scope and 
changes the very definition of the PS as we have it now.

> 
> What the store doesn't do is /know/ about the revisions. Neither does
> the wc.db, which only tracks reference counts for the SHA-1 keys. Every
> time a file changes, its hash will change, too, a new key will be
> inserted in the pristine store, and the reference count for the old key
> will be decremented. I'm not sure what happens when the count reaches
> zero; used to be that only "svn cleanup" would delete unreferenced
> pristines, but ISTR this changed a while ago.
> 
> In any case, the pristine store shouldn't worry about revisions, only
> about efficiently storing the contents. It doesn't even have to worry
> about reference counting, since wc.db already does that.
> 
> -- Brane
> 
> 
> P.S.: If we ever implement local snapshots and/or local branches, it
> /still/ won't be the pristine store's problem to track whole-tree info.
> This is why I like the clear separation between pristine store, which is
> a simple dictionary, and wc.db, which is moderately complex.
> 
> 
> P.P.S.: When we transition from pristine store per working copy to
> pristine store per ~/.subversion directory, then the pristine store will
> have to track how many working copies are using it. But that's way in
> the future -- and another good reason to use a proper database for the
> indexing.
> 

Sure. We're on the same page here on all points.

-Ash

Reply via email to