Recently I've been working with Unity UI, and its event system. This system is seemingly user-friendly in the sense that components have event fields where we put scripts that will do the work. This is already off-standard (bad practice): the GUI button should not be bound to the logic that it does. Instead, something else that does the logic should subscribe to the event of the button, and that thing that does the work should have a field to know which button it takes events from. In that way we can have reusable UI prefabs that are unrelated to any logic.
Mercurial (Hg) is a powerful and sleek distributed version control system. It's quick and gives you the ability to do anything you'd ever want with source control. I have yet to come across a feature from the competing DVCS that you cannot do in Hg, and easier and quicker. It is an extendible platform; because it provides a base command set while more advanced commands have to be explicitly enabled. It is made to be user friendly, and makes sure you know what you're doing. Some user-made extensions can even be downloaded online and can become a part of your standard workflow. With that said, which extensions to choose and where to use them becomes a user's preference. Over the years, it seems Hg has integrated a large part of best extensions into the core distribution and all you have to do is enable them. The installation of other extensions is really simple; you just place a Python file somewhere and point to it in a config file.
If you are thinking about publishing your own Unity extension, I can give you some tips.
Today's article is going to be about a complicated topic that often gets overlooked in Game Development: Source Control. We will focus on my favorite tools: Unity Engine, Mercurial (Distributed Version Control System), SourceTree (as GUI for Mercurial) and CodeCompare (as external tool to merge files). Some of these combinations are not really well documented, so rather than rehashing documentation on my blog I will post my solution which I believe is optimal and unique.