Live data from Hacker News

Gitless: a version control system

gitless.com

191–200 of 390 posts

Re: Gitless: a version control system

#191

I see gitless has a bunch of 'gl ____ -c foobar' as well. Why is the -c (create?) needed? Isn't it apparent that if that branch doesn't exist we need to create it? If that remote doesn't exist we need to create it? Convention over configuration?

> Isn't it apparent that if that branch doesn't exist we need to create it?

It could just be misspelled. I've accidentally created quite a few misspelled branches in my time. E.g.: "bug-fix" vs "bug_fix" vs "bugfix".

Re: Gitless: a version control system

#192

I see gitless has a bunch of 'gl ____ -c foobar' as well. Why is the -c (create?) needed? Isn't it apparent that if that branch doesn't exist we need to create it? If that remote doesn't exist we need to create it? Convention over configuration?

Yeah but then there's the issue of simple misspellings. Perhaps switching and creating should be separate commands.

Re: Gitless: a version control system

#193
post #102

Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…

I don't think those commands are remotely sufficient to work with git. You're forgetting about merging, traversing history, branch creation, remotes, grokking the staging area, etc. I'm sure I'm missing a lot as well, because those of us who have worked with git for a long time take these things for granted. And it does frustrate me that it's so complex, because Mercurial shows us it doesn't have to be this way. Unfo…

The commands are enough to get through the first month of using git for your own project.

They are certainly not enough to work with Git for your whole career :)

Re: Gitless: a version control system

#194

Earlier quoted context omitted.

So, what alternatives are you suggesting? I have tried and used Mercurial, SVN, RCS, CVS, Bitkeeper, TFS, Bazaar, Perforce, Darcs and of course Git. Granted, Git may not be great, but it is still my first choice.

Hg is a very similar model to git but doesn't have the cli problems it does. Darcs is distributed with a different (and interesting) model that doesn't have the cli problems get does. But honestly for lots of teams dvcs is not that big an advantage (how many teams are syncing around github right now) which means something like Accurev might be a better choice. It uses a concept of streams which is pretty interesting…

Hg has a lot of problems. It has bookmarks AND branches (for some reason). To edit your commit history you need to pray to the elder gods and sacrifice a newborn. I consider myself pretty smart and yet my mind went completely blank every time I read about anything related to Mercurial Queues. The default install lacks too many features, you need to enable extensions to do even the most basic stuff, like stashing.

Darcs is obviously better than git, but very few people know it exists. And none of free web repositories support it.

Re: Gitless: a version control system

#195

I see gitless has a bunch of 'gl ____ -c foobar' as well. Why is the -c (create?) needed? Isn't it apparent that if that branch doesn't exist we need to create it? If that remote doesn't exist we need to create it? Convention over configuration?

Yeah but then there's the issue of simple misspellings. Perhaps switching and creating should be separate commands.

Exactly. It would be like if `cd pathname` was the equivalent of `mkdir -p pathname && cd pathname`. Even with tab completion, only a tiny minority of users want that behavior. To most, it invites mistakes.

Re: Gitless: a version control system

#196
post #147

Earlier quoted context omitted.

As a tangent, I think calling git a distributed system is misleading. Git is primarily a history manager for a local directory tree that has commands to sync with remote machines. Having to type stuff like git remote add mothership ssh://foo@bar.baz git push mothership in order to sync is not what I usually associate with a distributed system. The word distributed conjures something that's more like dropbox, where th…

"Distributed" means something other than what you think it does. Dropbox is not a distributed system. In fact it is a good example of a centralised system.

"Distributed" is, by popular convention, associated with systems that span multiple computers (or even processes on the same computer).

"Decentralized" is associated with systems without a central point of failure or control.

Git qualifies as both, and Dropbox only qualifies as distributed.

Re: Gitless: a version control system

#197
post #193

Earlier quoted context omitted.

I don't think those commands are remotely sufficient to work with git. You're forgetting about merging, traversing history, branch creation, remotes, grokking the staging area, etc. I'm sure I'm missing a lot as well, because those of us who have worked with git for a long time take these things for granted. And it does frustrate me that it's so complex, because Mercurial shows us it doesn't have to be this way. Unfo…

The commands are enough to get through the first month of using git for your own project. They are certainly not enough to work with Git for your whole career :)

The examples I mentioned were taken from notes I made myself when I was learning git (whenever I had an "aha" moment, I would make a note so I wouldn't forget how to work around it later, since I didn't know the git jargon and thus couldn't Google effectively). Maybe my experience is atypical, but at the time I didn't think I was doing anything novel.

Re: Gitless: a version control system

#198
post #102

Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…

    git checkout  // throw away all changes since the last commit (one file)

    git reset --hard    // throw away all changes since the last commit (all files)
This is a perfect illustration of why git needs a better UI. Two different commands to do exactly the same thing, with the only difference being that one is for one file and the other is for many files? If you tried to design a hard-to-use UI you could hardly do better than that.

[NOTE: these two commands actually don't do quite the same thing, which is part of the problem.]

Re: Gitless: a version control system

#199
post #102

Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…

I'm quite comfortable with git now but I also remember what a pain it was to learn. This included making mistakes and diving deep into git's internals to recover. The question is whether we should make things easier for new versus experienced developers? If switching to gitless became a thing I'd have to learn something new, but if it made things significantly easier for beginners, maybe my personal inconvenience isn…

The problem is better solved with good tutorials. Cutting corners is a bad idea here so encouraging newbies to do that is more hurting than helping them.

Re: Gitless: a version control system

#200

Earlier quoted context omitted.

That sounds a lot like Darcs's model, which is pretty fun to play with (and darcs has a really nice CLI). You may want to take a gander at it.

Or pijul. https://pijul.org/

While in theory I appreciate what pijul is trying to do, I'm not going to plug it until it at the very least self-hosts. Two years in, still not there.
Post reply on HN