We challenge all the basic assumptions of VCS and conclude ... git was right all along it just needs some syntactic sugar.
Gitless: an experimental version control system built on top of Git
21–30 of 48 posts
Re: Gitless: an experimental version control system built on top of Git
#22Anyway, that's not to discourage the effort - this is how we move development forward.
Re: Gitless: an experimental version control system built on top of Git
#23So... what advantages does this provide over straight Git? Reading the docs, it doesn't appear to abstract over Git at all.
1. Write code
2. Realize it's more than you want to commit at a go
3. Stage just the files (or hunks, using `git add -i`) you want
4. git stash
5. confirm tests still work
6. git commit
7. git stash pop
8. continue working, committing, etc.
I certainly understand the desire for cleaning up Git's CLI[1], but the staging area is one of those truly new offerings in Git w.r.t. legacy VCS. One that requires cognitive effort to learn but becomes a very useful tool in practice.[1] Cf. Steve Losh's infamous "Git Koans": http://stevelosh.com/blog/2013/04/git-koans/
Re: Gitless: an experimental version control system built on top of Git
#24So... what advantages does this provide over straight Git? Reading the docs, it doesn't appear to abstract over Git at all.
It removes the staging area, which also removes one of the more powerful tools in git for teasing apart work into distinct ideas, whether for creating a sensible commit history, or to separate "tangled" work into different branches. For example: 1. Write code 2. Realize it's more than you want to commit at a go 3. Stage just the files (or hunks, using `git add -i`) you want 4. git stash 5. confirm tests still work 6.…
Even though he had never checked in code it was still saved into the VCS. That is pretty powerful.
Re: Gitless: an experimental version control system built on top of Git
#25A nice project: Git is a wonderful version control system, but the git cli (the porcelain) definitely has some annoyances. I think submodules, for example, are completely broken at the CLI level. I don't think this project necessarily goes far enough though; the biggest change I saw was getting rid of the staging area. Whether or not that's a good idea, I was hoping for crazier ideas! For example, how about something…
Re: Gitless: an experimental version control system built on top of Git
#26So... what advantages does this provide over straight Git? Reading the docs, it doesn't appear to abstract over Git at all.
It removes the staging area, which also removes one of the more powerful tools in git for teasing apart work into distinct ideas, whether for creating a sensible commit history, or to separate "tangled" work into different branches. For example: 1. Write code 2. Realize it's more than you want to commit at a go 3. Stage just the files (or hunks, using `git add -i`) you want 4. git stash 5. confirm tests still work 6.…
Re: Gitless: an experimental version control system built on top of Git
#27Re: Gitless: an experimental version control system built on top of Git
#28Earlier quoted context omitted.
It removes the staging area, which also removes one of the more powerful tools in git for teasing apart work into distinct ideas, whether for creating a sensible commit history, or to separate "tangled" work into different branches. For example: 1. Write code 2. Realize it's more than you want to commit at a go 3. Stage just the files (or hunks, using `git add -i`) you want 4. git stash 5. confirm tests still work 6.…
Except that in practice people tend not to perform steps 4, 5 and 7. They then commit non-working code and honestly believe that their commit is OK, because they saw all tests pass.
At least from my small sample size of people, that is true.
Re: Gitless: an experimental version control system built on top of Git
#29So... what advantages does this provide over straight Git? Reading the docs, it doesn't appear to abstract over Git at all.
From what I can see: easier control over tracked/untracked status of files; no stage (might be considered a disadvantage, though I'll wager a good interactive commit feature would render a stage unnecessary), automatically commit everything by default, much simpler concept of what a branch is and isn't; no fetch at all, just merge. I like this experiment quite a lot. It's clearly very incomplete and lacking of featur…
An interactive commit interface which loses the accepted/rejected changes if you have to close it for one reason or another is going to be worse than the git UI for interactive commits.
Re: Gitless: an experimental version control system built on top of Git
#30So... what advantages does this provide over straight Git? Reading the docs, it doesn't appear to abstract over Git at all.
It removes the staging area, which also removes one of the more powerful tools in git for teasing apart work into distinct ideas, whether for creating a sensible commit history, or to separate "tangled" work into different branches. For example: 1. Write code 2. Realize it's more than you want to commit at a go 3. Stage just the files (or hunks, using `git add -i`) you want 4. git stash 5. confirm tests still work 6.…