Ian Bicking: the old part of his blog

Re: DVCS Mini Roundup

Well, dunno what you mean by a "side project" wrt. Git and Cogito - it's certainly not a "side project" for me (I maintain Cogito) and AFAIK not for Junio (the Git maintainer) either. Also, it is used extensively for the Linux kernel development, which makes it not likely to fade away either. Otherwise, I've found your comments confusing since it's not clear what exactly is wrong with it other than it "seems silly". We obviously love specific feedback, tho' (even from non-users to explain why they do not like us and what can we improve to fix it).

Comment on DVCS Mini Roundup
by Petr Baudis

Comments:

I guess I got the impression due to Git starting with Linus, for whom it of course is a side project. Sorry that I didn't notice the maintainership had moved around. Also, many Git frontends have come and gone -- while Cogito seems to have emerged as the preferred frontend, it adds to the confusion.

Git itself just seems like an internal implementation detail. An important detail, perhaps, but not very important to a user. So it comes off as strange because Git is kind of the front man. Then starting from the Git page, Cogito links to an index of source files, which comes off as very hackerly and a little half-hearted. Linus's opinion on programmer accessibility (which he seems to be against) perhaps also colors my view on these things.

That said, I haven't used Git or Cogito (I hope I didn't imply such -- I haven't used any of these except very light bzr and darcs use), so this is a shallow summary.

# Ian Bicking

Hmm, well, Cogito was there from the _very_ start (it popped up one or two days after Git 0.01, I think; first under the git-pasky name, but the first month was just very wild). I don't think there was actually any big fluctuation in the Git frontends, I can't remember any Git frontends which came and gone - which ones do you have on mind?

In fact, from Cogito point of view, Git indeed _is_ an (important) implementation detail. Perhaps I didn't put enough accent on Cogito being a version control system on its own.

I'm confused about the Cogito link, the only link I can see leads to the list of release tarballs - is that what you mean, that it would look better if there would be a direct link to the latest version? It wouldn't ever occur to me that this might make a negative impression, but perhaps you are right... - that's a valuable observation (if I understood you right, that is), thanks!

# Petr Baudis

There's several pieces listed on the Git website, and when I've seen Git in conversations I've seen people refer to a couple different pieces. Many of those pieces may not be version control systems... all I know is there's a bunch of things, and it's unclear which is which. That "Git" gets all the fame due to its lineage, yet is a fairly low-level bit of code, probably doesn't help the situation.

I'm confused about the Cogito link, the only link I can see leads to the list of release tarballs - is that what you mean, that it would look better if there would be a direct link to the latest version?

No, there should be a link to a real website! That website should show a quick sample of how to use it, links to docs, etc. It would probably be good to explain Cogito's relation to Git and other tools as well. A link to an index of files gives the impression that it's a really low-level tool, or else that it is a tool very early in its development. At least that's what I usually think when I encounter such a page.

# Ian Bicking

I've never really understood what Linus is talking about when he says "git is not a DVCS" -- it tackles all the same problems every other DVCS does. AFAICT the only thing it means is that the UI is sometimes lower level than a user might want. I'd suggest mostly just ignoring the "not a VCS" thing entirely. People use it as one.

# Nathaniel Smith

Isn't Git more like a versioned filesystem? That's what Subversion and SVK are built on, but Subversion and SVK aren't the same as the versioned filesystem underlying them.

# Ian Bicking

This is an evolution problem, and the situation _is_ somewhat confusing. At the beginning, there was a tool called "Git" which provided very lowlevel commands in the "versioned filesystem" spirit, and on top of that was founded Cogito which provides a real DVCS interface (and I believe it has in fact one of the best UIs out there; but don't believe me, I wrote the thing ;).

So at the beginning, the "this is not a DVCS" notion was true. But that only held for the first several months. Then, various scripts appeared even in Git that started providing a real DVCS interface ("porcelain") you are used too (although the Git UI may be perceived as clumsy), so by now Git is a DVCS on its own, _at the same time? as it still provides the lowlevel interface ("plumbing") e.g. Cogito uses.

# Petr Baudis

Don't get me wrong, but the problem with cogito/git is that there is no webpage claiming: "This is git, that is cogito. You can use it using this 10 minutes to success tutorial..."

If i google up "git" or "cogito" i don't get any results. Only a combination with linux or kernel returns me a link pointing to kernel.org/git. And there is nothing related to git :-/

Regards, Armin


git.or.cz is the fourth result when googling git, cogito directory on kernel.org is the fourth result when googling cogito and cogito's README is the fifth result. But I agree that Cogito needs own homepage and the Git's homepage is too brief, I've bumped its priority and will try to expand it. Thanks for your feedback!


Ah. Setting google language settings to English improved the situation. My prefered language was German and there were no results :-(


I dunno what the decision procedure for determining what a "VCS" versus "versioned filesystem" is. Certainly git has nothing in common with every other thing called a "distributed filesystem" (e.g., NFS, cluster filesystems, etc.), and everything in common with VCSes. Even from the very beginning, it was never possible to write _interestingly different? VCSes on top of git, because it defined all the semantics of what would be stored, and what wouldn't. You could put different UIs on top, maybe use different programs to actually copy the data around, but that's true of every VCS...

Not really an important argument, but I think there's enough noise in this space without continuing to perpetuate this bit :-)

# Nathaniel Smith