Hey, so, after years and years of avoiding revision control software because of the (admittedly minor) learning curve and misunderstandings on my part, I started using Mercurial earlier this year, and really find it easy to use, easy to understand, and overall really pleasant and friendly. That is, the command-line interface. The TortiousHG interface got in my way too much and I kept stumbling over it*.
I've committed 113 times already (Woot!) I commit at least once a day, but sometimes twice or more, whenever I come to logical points to commit.
Where I've had trouble is with the idea of branching. I understand the concept, and I understand why it would be useful, but suppose I have several development branches: "Development" (or 'trunk' or 'main' or whatever the correct term is) , "ExperimentalFeatureX" and "UnfinishedFeatureY".
Suppose I'm currently in UnfinishedFeatureY working on it. If I fix a bug that's unrelated to FeatureY, I want to make sure that bug is fixed in Development. How can I merge just that one bug fix (or just that one file) into Development?
Here's another situation that worries me. I have all my art assets in the revision control system also. What if I'm working in ExperimentalFeatureX, add some new art, then cancel the experimental branch and close it, forgetting my art assets are in there? Is there a way I can add certain files to every active branch at the same time?
*I always have a weird relationship with tools - I want X amount of control, but don't want Y amount of complexity. Many tools dumb things down so much that the control I want either is blocked (with the tool taking control for itself), or hidden behind dozens of GUI commands that make it more complex to accomplish what should be (and is) an easy task.