Live data from Hacker News

Gitless: A simple version control system built on top of Git

gitless.com

11–20 of 143 posts

Re: Gitless: A simple version control system built on top of Git

#11
post #3

Yes. Git is powerful, but sadly has deep problems in its conceptual design. This is the reason why even mid-level engineers don't understand it fully. Love this work!

Gitless doesn't change anything about git's concepts, it just abstracts away some commands. So if you think this solves the problems, they're clearly not "conceptual" faults. I think this is important because people are so quick to jump on the "git is bad" contrarian meme. Git is a fantastic piece of work and the CLI has a variety of issues. On top of this, git is conceptually unintuitive, so the CLI issues make for…

The other half of the issue is that git's commands don't follow the abstraction. If each command mapped to a single dag operation, it might make more sense. But they don't (revert).

Re: Gitless: A simple version control system built on top of Git

#12
post #5

Earlier quoted context omitted.

Can you elaborate on the deep problems? I personally find it relatively conceptually elegant.

I think the main problem is that many developers don't think of Git as a DAG, so they don't really understand at a fundamental level what the operations are actually doing. Once you understand this, Git really does become simple. All you have to do is map each command to the actual operation on the DAG. This video really explains it quite well, it's the one video that allowed me to fully grasp everything: https://www…

Yeah, but the question is whether a DAG is a good mental model for a VCS. Just because that's the underlying data structure doesn't mean it has to be the user interface too.

Re: Gitless: A simple version control system built on top of Git

#14
post #5

Earlier quoted context omitted.

Can you elaborate on the deep problems? I personally find it relatively conceptually elegant.

I think the main problem is that many developers don't think of Git as a DAG, so they don't really understand at a fundamental level what the operations are actually doing. Once you understand this, Git really does become simple. All you have to do is map each command to the actual operation on the DAG. This video really explains it quite well, it's the one video that allowed me to fully grasp everything: https://www…

A big part of learning anything is understanding - at a fundamental level - what operations are being executed by whichever tool is being utilized.

So if you will pardon the paraphrase, I think the main problem is that many developers don’t take the time to simply learn git.

Re: Gitless: A simple version control system built on top of Git

#15
I must admit I'm a little bit confused. It opens with a discussion that people find Git hard to use, and a statement that these problems are likely more than skin-deep but then goes on to describe a wrapper around Git which is mostly a bunch of aliases. Don't get me wrong, I'm know that many people do find Git hard-to-use, but I don't see anything in the eventual project implementation which backs up the original claim that the problems are conceptual. I don't think it's possible to fix conceptual problems in a tool by just wrapping it.

I have heard people complain about the staging concept (personally I find it useful, because you can do 'git add -p' which allows you to craft intermediate commits or to-be-squashed fixup commits after you've finished some development), so it's removal in this tool is unsurprising. And it is nice to auto-stash on branch change (though personally I think that they should've made stashing a much better-supported concept in their Git wrapper -- I've never really liked how stashing was implemented in Git).

I do really like that they appear to have worked hard to remove all of the super-scary warnings that Git likes to spit out. As someone who has taught high-school students how to use Git (among other things), I've learned that the easiest way to scare away people from your project is to have bright-red warnings in response to a user doing something. Most students describe it as though the computer is effectively screaming at them. Some tools over-compensate for this is and spew emoji in response to user input, so I'm happy this tool has struck the right balance.

Re: Gitless: A simple version control system built on top of Git

#16
post #12
post #5

Earlier quoted context omitted.

I think the main problem is that many developers don't think of Git as a DAG, so they don't really understand at a fundamental level what the operations are actually doing. Once you understand this, Git really does become simple. All you have to do is map each command to the actual operation on the DAG. This video really explains it quite well, it's the one video that allowed me to fully grasp everything: https://www…

Yeah, but the question is whether a DAG is a good mental model for a VCS. Just because that's the underlying data structure doesn't mean it has to be the user interface too.

Exactly. This seems to be a point that the "Git is easy" crew doesn't understand. Not everyone (in fact, very few) find going into that depth for something that's nothing more than a tool to be reasonable. Reminds me of the Gentoo users that used to say compiling everything is a great idea for an OS.

Re: Gitless: A simple version control system built on top of Git

#17

Earlier quoted context omitted.

Can you elaborate on the deep problems? I personally find it relatively conceptually elegant.

I compare it to 10-15 years ago, when functional programming was rather rare. Mid-level OO programmers would complain it was confusing and unfamilar, whereas in reality has beautiful and simple concepts. Git's use of a DAG is confusing and unfamilar for many programmers, though in reality it's beautiful and simple.

> Git's use of a DAG is confusing and unfamilar for many programmers, though in reality it's beautiful and simple.

The difference relative to functional programming is that you get paid for one and the other is just a tool

Re: Gitless: A simple version control system built on top of Git

#18
post #3

Yes. Git is powerful, but sadly has deep problems in its conceptual design. This is the reason why even mid-level engineers don't understand it fully. Love this work!

Can you elaborate on the deep problems? I personally find it relatively conceptually elegant.

I think that you can find good explanations of these problems here :

https://jneem.github.io/merging/

https://pijul.org/model/#why-care-about-patch-theory

Unfortunatly Gitless doesn't solve them.

But Pijul solve many problems of Git (and Darcs) and is easier to use.

https://pijul.org

Post reply on HN