Wed, 26 Apr 2006

Falling Deeper in Love With Mercurial: 0.8.1

Mercurial 0.8.1 has my two main gripes: you can now push and pull partial trees (effectively giving you a way of expunging revisions), and "hg revert" doesn't delete a file you previously "hg add"ed. I filled in the User Survey too.

Some gripes remain, as with any software:

  • Get rid of "forget": "revert" now does the job of removing an add correctly. While forget could be useful, it's a wart.
  • Get rid of "undo": only undoes some things. Not all, and it doesn't tell you what it undoes. I screwed my repo pretty badly with this once, now I pretend it doesn't exist.
  • Get rid of "unbundle" and make "pull" work from a bundle.
  • Streamline "old-http": there's no fundamental reason why this should suck, with partial http GETs (the format is append-only). This is what currently prevents hosting mercurial repos on SourceForge, for example.
  • Then get rid of "old-http" and simply have the "http:" method auto-detect.

After 1.0, I'd love to see the following

  • Proper support for merge across rename.
  • I'd love to see hg become a universal client, so I don't *have* to deal with git or svn. "git+http://" and "svn+http://" methods which hid the differences would be wonderful. And people who suggest tailor obviously haven't used it.

Of course, mercurial being in Python, raises a serious barrier to me hacking on it. It's far more efficient for me to leave it to someone who groks Python. Mind you, I don't have the antipathy for Python that Keith Packard has...

[/tech] permanent link