sbzoom | 9 years ago | on: Reinventing the Git Interface (2014)
sbzoom's comments
sbzoom | 9 years ago | on: Reinventing the Git Interface (2014)
The usual way that people work in Mercurial is to make a clone - which is a whole copy. If you were working in SVN you would probably make a branch first (on the server), and then check out that branch. When you are done with your branch, you get up to date with trunk, then merge it in. And, this is the important part, your merge is treated as one commit. Pretty normal stuff. Mercurial though threads all your local commits into the log. So even though you make one merge, you can't find that merge in the log. All the commits are shown stuffed in there by date. And everyone is sad.
Now, you can change that if you use named branches instead of cloning. But it has other problems. The biggest one is you get "multiple heads." If I make a branch and you make a branch and we both commit, they both get stored in the index. But they get stored as different heads. So when I do a "pull" I get this strange warning about multiple heads - the "trunk" and your branch. I'm actually still not sure how to unwind it actually. I'm not enough of an expert.
So I try to user Bazaar wherever I go. It doesn't always happen - it is hard to change people's minds or have a company that is flexible enough to try different solutions. And, because Git is so popular, there is an integration with just about everything. For a 3-rd party candidate like Bazaar IDE integration is half-baked. So is Jira integration. Actually, just about all integrations. I'm considering becoming a committer on like 10 different Bazaar-related projects. :)
Check this out: https://duckrowing.com/2014/04/25/git-vs-mercurial-vs-bazaar... Yes GitHub is popular. But out there in the non-Opensource world, Git is WAY behind SVN. Which is totally fine. Use what works. If you have a centralized development organization, and everyone sits near each other and talks all the time, why do you need distributed VCS? And if everyone at the company knows how to use a tool and there aren't constant mistakes - just use it. It gets easy to not be able to see the forest for the trees when you spend 6 hours trying to figure out how to rewind a busted git repo.
sbzoom | 9 years ago | on: Reinventing the Git Interface (2014)
sbzoom | 9 years ago | on: Reinventing the Git Interface (2014)
I understand the usefulness (and popularity) of GitHub. It is a great tool for collaboration. Its just too bad that it uses git as the underlying vcs. I wish there was a decent competitor to GitHub with a different vcs so we could see if people would make the switch. Oh well. Maybe someday.
sbzoom | 13 years ago | on: Disrupting Medicine: Check
1) Zynx : http://www.zynxhealth.com/Solutions/ZynxOrder.aspx Very dated and expensive.
2) Provation : http://www.provationordersets.com/index.aspx Slightly better but small market share compared to Zynx.
3) Elsevier : http://www.clinicaldecisionsupport.com/order-sets New player yet to launch. Cloud based.
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.