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…
Gitless: A simple version control system built on top of Git
11–20 of 143 posts
Re: Gitless: A simple version control system built on top of Git
#12Earlier 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…
Re: Gitless: A simple version control system built on top of Git
#13Re: Gitless: A simple version control system built on top of Git
#14Earlier 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…
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
#15I 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
#16Earlier 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.
Re: Gitless: A simple version control system built on top of Git
#17Earlier 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.
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
#18Yes. 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.
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.
Re: Gitless: A simple version control system built on top of Git
#19Removing staging seems a little odd. To me staging, especially with a GUI like Sourcetree, is almost the best part of git.
But I have to admit, I mostly used it via Github and as a solo-dev.