News for hackers. Stuff that matters.
Re:Shit – An implementation of Git using POSIX shell by gruez on Tuesday February 11, 2020 @11:50PM (#22305896)
>This "moving pointer" model of Git branches led me to instant enlightenment.

As opposed to any other VCS? Feels like that model is the only one that works with SVN too. I struggle to see how "branch is a container of commits" is a viable model to begin with.

Re:Shit – An implementation of Git using POSIX shell by Izkata on Wednesday February 12, 2020 @12:01AM (#22305942)
It's a good-enough description of SVN, where branches exist in the same directory tree, commits are tied to the branch by way of the path, and the merge tools are "merge this batch of commits from branch A to trunk" (you don't have to take the whole branch at once).

One of the biggest hurdles my co-workers have had learning git after having used svn for years is the "bucket of commits" mental model they've built up for branches. A common question is how to merge a single commit.

Re:Shit – An implementation of Git using POSIX shell by rileymat2 on Wednesday February 12, 2020 @12:07AM (#22305969)
This is closer to how I would describe HG and SVN. Branches can be traced from start to merge, they are heavy. You know which commits came from what.

In git you can lose track of what came from what branch when you start merging multiple back and forth, this does happen with svn.

Re:Shit – An implementation of Git using POSIX shell by Mikhail_Edoshin on Wednesday February 19, 2020 @03:26PM (#22369684)
Mercurial branches are different from git branches; they're topological structures that emerge when a revision gets an alternate child. They're like growing and stopping lines of development. They exist on their own, Mercurial simply allows to give them names. What git calls branches in Mercurial is called bookmarks.