3 ms·
I learned Mercurial first and found the vast majority of its commands to be highly intuitive for the 4 core actions of a distributed version control system 1)
by snprbob86 16y ago
I learned Mercurial first and found the vast majority of its commands to be highly intuitive for the 4 core actions of a distributed version control system
1) Check-pointing code
2) Jumping back (or sideways) in time
3) Sending code to others
4) Receiving code from others
However, once I really understood the distributed version control model, I found myself thinking in terms of the DAG and wanting more control over it. I started viewing my version control system as a tool for more than just version control. I started viewing it as a tool for understanding and communicating about my code. I started using it as a tool to manipulate my code.
Then, for one small project, I tried Git. It drove me NUTS for about a week. I was going to smash things. I was so angry about it using stupid cryptic terms for simple things. I was annoyed by the complexity of overloaded, highly flexible commands. But once I translated the vocabulary, the commands stopped seeming so complex. Instead, they seemed like a reasonable abstractions. Each of the sub-operations they can perform are really just specializations of one kind of operation. It became second nature. I started doing swiss-army-knife voodoo with Git that Mercurial could only accomplish with a giant pile of half-baked plugins, blood, sweat, and tears.
Now, I only use Git.
tldr: Git is a more abstract, more powerful tool than any mere version control system. This is only something you come to appreciate with experience.
- lars512 16y agoCan you provide a concrete example of DAG editing which you had trouble doing with Mercurial?
- snprbob86 16y agoFrom things as simple as "git stash" to anything you'd use Mercurial's MQ extension for and beyond. Also, the Index, a concept which I initially wrote off as a frustrating extra step, turns out to be super useful for moving around chunks of code quickly.