hg, git, fossil, ...

Rustom Mody rustompmody at gmail.com
Thu Aug 28 22:53:49 EDT 2014


On Friday, August 29, 2014 7:54:44 AM UTC+5:30, Chris Angelico wrote:
> On Fri, Aug 29, 2014 at 12:20 PM, Ian Kelly wrote:
> > But then what do you do if you need to checkout an intermediate
> > revision of the project that isn't tagged? This need does arise. You
> > can't just checkout the revision you want of a particular component,
> > because that old revision of that component may not be compatible with
> > the other components at HEAD. Even if it is, you're still checking out
> > a version of the repository that never actually existed. You can't
> > expect to reproduce behavior at a particular revision if you can't
> > even consistently recreate the revision.

> See, that's where he and we fundamentally disagree. My view, your
> view, git's view, and hg's view, is that all files in a repo are
> intrinsically linked - that "checking out an intermediate revision"
> means checking out that revision across the entire source tree.
> Marko's view is that you check out an intermediate revision of the one
> failing file. In my experience, you can't always say which is the
> failing file, and even if you can, you can't just check out an old
> version of that file and expect it to work with the new versions of
> everything else, because there WILL be parallel changes - and lots of
> them.

There is a basic dogma in git-land that there are 2 gits: git-porcelain
and git git-plumbing.  Since most people use the porcelain exclusively that
gets identified as git.  But that is not the case. Here is Linus on the intention of git as a (non-hierarchical) filesystem:

Linus Torvalds said:
| you can just see git as a filesystem - it's content-
| addressable, and it has a notion of versioning, but I really really
| designed it coming at the problem from the viewpoint of a _filesystem_
| person (hey, kernels is what I do), and I actually have absolutely _zero_
| interest in creating a traditional SCM system.

from http://marc.info/?l=linux-kernel&m=111314792424707



Other instances of git-as-a-filesystem:


Using git plumbing for a backup system:

https://github.com/bup/bup

What Marko wants: 
http://git.661346.n2.nabble.com/RFC-Zit-the-git-based-single-file-content-tracker-td1366498.html

Other attempts (all failed so far) at moving beyond the 40-year old hierarchical paths
http://www.theguardian.com/technology/2006/jun/29/insideit.guardianweeklytechnologysection



More information about the Python-list mailing list