Calling branches "branches" is misleading


Coming from Git and Subversion this feature was difficult for me to understand. In those systems the analogy makes sense because you can draw the repository history as a bunch of timelines that are related to a main timeline (except when you create an orphan branch and then the analogy doesn’t make sense anymore).

After I read that in Pijul branches are just sets of patches I got quite confused and I didn’t understand what was its purpose. I had to read about spontaneous (non-)branches in Darcs before everything clicked.

So I wonder why not rename the feature? I think set is a good name because that’s what they are but if we want an analogy why not pool or workspace? This would make the fork and prune (I read that’s how delete-branch will be renamed) subcommands a little longer (because we would need something like new-pool or new-set or whatever) but I think the mental model is more important.

And of course this is matter of opinion. Maybe someone will get the concept faster than me but in any case I think it is better to be precise (and that’s the reason that patches are called patches and not commits)

Edit: I think state could work too

1 Like


This is a very good point, I was explaining this to a friend this week, and advised him against using branches in the beginning, and he said “I think I understand, patches commute, but I like my stuff clean”.

I had to draw a set and a timeline on my whiteboard to make the distinction clear.

Changesets are great, especially since I don’t like the term “patch” very much.



I like changeset too but I think anything is better than branch :sweat_smile:



That’s interesting, why is that? To me, ‘change’ sounds much more ambiguous than ‘patch’.



Because (1) patches sounds like a quick fix and (2) like they apply to a specific context.

Both are false in Pijul. Other properties of patches are that they describe changes to a file, and are generated by a diff, which are both true in Pijul.



Maybe it would make sense to start talking about “changes” in places of “patches” and “changeset” in place of “branch,” then?



Yes please! IMHO it doesn’t matter that much if they are called patches or changes but once a concept is chosen I think it must be used everywhere to avoid confusion



In my yet-to-be-released qt interface for pijul, I use change for the elementary changes within patches, and contribution for (current) patches. I’ve kept branch, but maybe variant would work?



I don’t know about contribution. The more I think about it, the more I am convinced we should not throw away the word patch, as it is something familiar for vcs user and darcs users more specifically.

Maybe just renaming branches as patchsets would be enough to clear people’s mind?