History-less repository?

Bill Barry after.fallout at gmail.com
Mon Sep 22 15:19:22 CDT 2008


Vadim Lebedev wrote:
 One obvious hack which comes to mind is to make .hg  directory  be a 
symlink pointing to a NFS or SMB mounted volume

Eww... Is that possible? Even if it was, you would still want one .hg 
dir for every repo (At least I think you would, doesn't the .hg dir 
maintain some info about the current repo?). And it wouldn't stop anyone 
from cloning this repo into a new location where they have access to the 
entire thing.

I'm not convinced that a history-less repository is something that 
should even be a desirable security goal. Every RCS I've ever heard of 
has a way to get the entire history (at least what is stored in the 
common repo; except VSS, but that is only because it has bugs and fails 
not because it is designed to not be able to do so) simply because any 
individual has the ability to update to each previous revision and 
manually copy it to a different repo. History is what makes a version 
control system a _version_ control system. I suppose if you wanted to 
chop off history as of a specific point, you could delete everybody's 
copies of the repo, update to a specific point, delete the .hg dir and 
make a new one with the current file contents for everybody to clone.

Cleaving history might make some sense every once in a while simply to 
maintain performance. But even there I am not so sure. Our repository 
has 1500+ revisions in it now and is still multiple orders of magnitude 
faster (and it hasn't shown any signs of slowing down the entire time so 
far, except in hg status, but I suspect that has more to do with the 
number of files there than the number of revisions) than our svn repo 
was at 40k revisions (which by the way also never slowed down with 
increasing revisions).



More information about the Mercurial mailing list