Nico Williams wrote:
On Wed, Jun 4, 2014 at 9:07 AM, Stephan Beal<sgb...@googlemail.com>  wrote:
On Wed, Jun 4, 2014 at 12:02 AM, Nico Williams<n...@cryptonector.com>
wrote:
Mercurial too had "heavy-duty" branches only, then they added
"bookmarks" that are very similar to git branches.  Since a "bookmark"
is just a symbolic name for a commit... this is just a new table at
best, with two columns.
Bookmarks. That's a nice idea, actually. Added to my TODO list.

It's interesting that I just sold you on the git branching model, by
using the Mercurial analog.

I don't know what that says.  To me any heavy-duty branching model is
difficult to explain, but clearly bookmarks are easy to explain, or at
least easier to explain when you start from a heavy-duty branching
model.  Regardless of what it means, it's good!  :)

I think Git is a great, powerful, and flexible tool that actually has a much simpler design than it initially appears. But to get to a place where you actually understand that design (and, thus, understand Git), takes about 99x more effort than 99% of the software I've ever used.

Once you get to that point, though, it's wonderful! ;)

One serious problem I have with Git's branching model, though, is that the branch names don't really name branches.

If I want to go back and dig through the history of an old "feature-x" branch, I get the commit that the feature-x ref is currently pointing to along with every other ancestor of that commit -- including every ancestor of the commit that feature-x branched out of and the ancestry of every other commit that's been merged into the feature-x branch.

Well, okay, but that's not really what reasonable human beings conceptualize as a branch.

This is, of course, assuming that the "feature-x" ref still exists. In Git, it is common practice for people to delete a ref (even from the remote repository) after the branch has been merged. To me, this really does amount to deleting history.

Fossil branches are actual branches, and I find this very helpful. As an example, I fairly often find myself wanting to look back at a specific commit that I remember. I obviously don't have the artifact ID memorized. I only vaguely remember when it was created. While the commit message was clear and descriptive, I don't remember it, and searching for keywords that I think appear in it returns nothing. If I could go back in time, I would give it a tag. But heck, even Git doesn't include a time machine yet.

However, I do remember the branch name (and even if I don't, I can easily find it in the list of closed branches). Firing up "fossil ui" and going to /timeline?r=feature-x narrows it down to a handful of commits.

Anyway, there are some things that I wouldn't mind if Fossil stole from Git, but the branching model is not one of them.

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to