Shallow branches or history horizons
There is an idea floating around and I'm curious to see if it is an idea that has merit and worth putting effort into. This idea is in the DVCS space and is called 'shallow branches' or 'history horizons'.
The concept itself is pretty simple. When using a DVCS with a project with a long history, each and every user has a copy of this history. Now much of this history may be ancient (for some definition of ancient, 6 months, 6 years, whatever). Most developers will never have a need to go into the ancient history of a project, and so a truncated history is fine as long as their branches that they create are still mergable with the main repository.
Here's how it could play out:
- Bob wants to work on the fooix project to fix a minor bug, this is Bob's first look at the fooix source. The fooix project has been around for eons and has a huge history. Bob doesn't care about the history, he just wants to do his simple fix (think a typo).
- Bob grabs the fooix trunk branch but only gets enough history to create the working files.
- Bob makes his fix, and publishes his branch for the fooix developers to grab.
The advantage here is that when Bob grabs his branch, he is only getting just enough history to work, and so his resulting repository is smaller and faster.
Commands that worked by inspecting the history would stop at the repository's horizon and say something like 'and that's all I've got'. Obviously there'd need to be a way to say 'go and get me another 4 months of history' or even 'ok, now I'm really interested, get me the complete history'.
This is conceptually different from a lazy loading or stacked repository as there is an explicit horizon where normal history commands stop.
So lazyweb, the question I have is this: 'Is this a worthwhile feature in a DVCS tool?'Shallow branches or history horizons
How Bazaar: Shallow branches or history horizons
21 Jan 2009 This idea is in the DVCS space and is called "shallow branches" or "history horizons". The concept itself is pretty simple.
How Bazaar: Wikkid Wiki
26 May 2010 Any wikkid wiki can be branched locally for off line editing. Any branch can be viewed using wikkid Shallow branches or history horizons
HistoryHorizon - Bazaar Version Control
25 Feb 2006 Shallow checkouts would be the same as shallow branches, So the project creates a new branch with history horizon say -5000 and moves
ThreeWishes - Bazaar Version Control
history horizons or shallow checkouts for faster checkouts Allowing a Subversion repository to be a peer in a Bazaar branch network is the single
Re: History horizons: how hard can they be ? - msg#00525 - bazaar
They > are intended as a 'hard stop' on history - the history behind the .... (
Re: History horizons: how hard can they be ? - msg#00522 - bazaar
Another option is supporting history horizons - just letting everything .... (
Advogato: Blog for robertc
14 Jul 2007 This is intended to be the API by which the desire for limiting history - to achieve shallow branches/history horizons - is communicated at
Geoscientific Workflow Process in Drilling a Deep-Water Well
Three horizons have been mapped in column are not in themselves hazards but should .... Depositional history of shallow subsurface strata via stratal slices and .... therefore there can be numerous branches tering a shallow gas pocket
ctrlproxy - Stationary Traveller
Shallow branches / history horizons are becoming a real blocker for bzr-svn adoption so I might have a look at those next. Posted by Jelmer Vernooij in bzr,
DistributedSCM - GNOME Live!
17 Dec 2008 Publishing a git branch to your public webspace is not obvious to checkout only a part of history in Git (known as "history horizon"? Shallow clones, checking out just a few (or one) revision, are available since