Hacker News new | ask | show | jobs
by sbzoom 3369 days ago
If you had enough time to kill to read the original post above and you have some more time to kill, this is a really good write-up about git/hg/bzr.

https://duckrowing.com/2013/12/26/bzr-init-a-bazaar-tutorial...

Bazaar's model is based around branches. Make a branch, change stuff, commit, merge. Merges are like top-level things. When you read the log you get only the commits to that branch (like, say, "trunk"). If all you ever do is merge to trunk, you only see merges. Fancy trick - you can show nested commits in the log. So "bzr log -n3" shows you the merges, but all the commits that went into that merge. It really is super nice and very easy to use. And a lot of that ease of use is because the mental model makes sense.

Oh, and branches are stored as paths - that's right, folders. Instead of storing multiple versions of code in an "index" that you can't actually see, Bazaar just uses folders.

/workspace/my-project /trunk/ /the-thing-with-the-stuff/

So comparing files means... comparing two files. I don't actually have to use the VCS's commands to compare things. I could - I just don't have to. You can get diffs between a particular revision of a file (or folder). Or you could make a new branch (folder) at a particular revision. Then you can just actually look at all the files.

I know SVN does this too. And CVS. And probably Perforce. I just think people have forgotten how reasonable some of the older tools actually were/are. Bazaar does a good job keeping that ease while also being distributed.