April 2008

Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!

So I was both happy and irritated to find two boxes outside my apartment door this evening: happy because it meant I got to spend the night playing Guitar Hero III on my new Wii, and irritated that UPS had left them to sit in the hallway all day. How come they sometimes know to take things to the leasing office? Oh well.

So yeah, Wii. Lots of fun. I'm picking up Guitar Hero pretty quickly. Now I just need to pack up and do something with my superceded GameCube, and of course pick up all of the packing detritus. Now I know why Wiis are so hard to come by - it must take forever to wrap each individual piece in foam and seal it with green tape. :)

Last night was the last night of the regular bowling season. My team won the first quarter, so we'll be at the championships next week. Need to bring my A game.

And here it is 01:30 and I'm still awake. Something tells me I'm not going to be at the demo day in the morning. Oh well.

Posted Wednesday, April 30, 2008 08:26:56 UTC in Personal - Permanent link

So much going on

It has been a while since I did a personal post. Although, every time I try to do a personal post, it ends up pretty technical. Oh well, let's continue:

So that's what I've been up to.

Posted Monday, April 28, 2008 03:16:50 UTC in Personal - Permanent link

The more things change, the more they stay the same

So as I said I would in last night's post, I read more of the Git documentation and various blog posts surrounding the topic. Now that I understand more about Git, I do find its model interesting. As I understand it, Git basically stores changesets as floating objects, and you have heads (which they call branches) which point to changesets, which then point to their parent changesets. You can pull random changes into a Git repository - it doesn't care. So you could have the Linux kernel sources in your repo, and pull in Samba, and then nuke all of the heads that point at the Linux kernel sources, prune your repository, and hey! You just switched your repository from Linux to Samba! What fun!

But as cool as that sounds, I've decided to stick with Mercurial. Here's why:

I have been working with hg for a while now and really the only problem I have had is this thing surrounding named branches which ultimately is little more than an annoyance. So I'm going to stick with it and hopefully they'll come up with a good solution for it in a future version. Or I'll get bored some night and come up with something myself. You never know.

I also gave bzr another look. Apparently back in February it became an official GNU project. So from the perspective of avoiding projects backed by either Linus Torvalds or Richard Stallman, Mercurial is a winner. They recently released version 1.3. Thoughts:

And I guess I shouldn't neglect to mention Darcs while I'm at it. But it's late and I really should be in bed, so I'll be laconic about it:

'Nuff said.

P.S. To be fair, you could do the Linux->Samba thing with hg if you wanted to. But it would at least require a --force to hg pull.

Posted Wednesday, April 16, 2008 10:55:40 UTC in Technical - Permanent link

Let's git it on

That is quite possibly the dumbest title I've ever had for a blog post.

So of course after I bashed git in last night's post, I have started looking at it again. My dismissal of it initially was because of the lack of real Windows support, but that has become less of an issue for me. Also, apparently there is a native port of git for Windows now though.

Anyway, the first thing I'm going to do is get git 1.5, since it's supposed to be better or whatever. Not surprisingly, etch still has 1.4. I have been contemplating upgrading my home box to lenny anyway, so I might do that, or I might simply backport it.

Anyway, for what I said about its documentation, the user manual seems to be comprehensive and decent. It does seem that they reuse standard VCS terms to mean different things, though.

Anyway, I'll report back on how this goes. That nonsense I went through last night just to purge some badly-named branches from my repository may just push me to git.

Posted Tuesday, April 15, 2008 08:58:41 UTC in Technical - Permanent link

hg and named branches

A few days ago I read a comparison of Mercurial and Git. One of the things the author had to say against Mercurial was that it had a really bad model surrounding named branches. At the time I hadn't really used named branches, so I didn't think much of it.

Well tonight I was working on setting up hgweb so that I could deprecate my svn repository, and I ran right into this problem. When I set up my crazy hg stuff to track PuTTY development, I managed to create two named branches in my repository: the upstream branch (putty) and my local branch (PuTTY). Now since I was only exposing my changes by pushing to a svn repo, this didn't really matter much. But now that I was going to expose the repository for public consumption, I wanted more descriptive names.

Unfortunately, this isn't straightforward by any means. In hg, the branch name is an arbitrary string that is intrinsic to the changeset. It is included in the changeset description which is used to generate the changeset hash. So there is no simply no way to change it on committed changesets. You can make a branch inactive by committing on it with a different branch name, but this doesn't hide it from hgweb or the output of hg branches. And there is no way to prevent an attempt to reuse that branch name later from generating a branch-shadow warning.

I see this as a rather severe problem. There are some ideas on the Mercurial Wiki about how to address this, but so far nothing.

So I am currently attempting to do nasty things with hg transplant to rebuild the repository history with more meaningful names. It's a huge pain, but I still think I prefer hg to git. I had to use git the other day to check out the Ceph code, and git still puts me off. For one thing, there's this whole 1.4-vs-cogito-vs-1.5 nonsense I don't really care to understand. The crazy development-all-over-the-place model that git enthusiasts tout as its greatest feature is its greatest downfall from a usability perspective. And the documentation still sucks.

Posted Monday, April 14, 2008 09:04:47 UTC in Technical - Permanent link

remctl 2.12

Yesterday Russ released remctl 2.12, which included my changes to build on Windows. It still didn't quite compile, though, so I have updated my patch with the necessary fixes. He's planning a new release soon, so hopefully after that it will no longer be necessary for me to maintain my patch separately.

You can find my updated patch on the remctl page.

Posted Monday, April 07, 2008 02:08:16 UTC in Software Releases - Permanent link
Matthew Loar
matthew@loar.name
Last modified and spun 2009-06-19