I've never gotten the -l flag to work either. This is what I use:
It should prompt for a password and then post your review. Login to reviewboard and look it over. Don't forget to Publish your review so others can see it.
If you make changes to your review, do this:
hg postreview -e NNN --parent PARENTREV
where NNN is your review ID number and PARENTREV is the changeset id of the one PRIOR to your initial commit. The thing is that PARENTREV must be a changeset that is in the official NuGet repository. All your diffs will be based off this changeset.
It took me a little bit to figure it out. I kept using the revision of my previous commit, but reviewboard would complain that it couldn't find that changeset. That's because my changeset hadn't been pulled into the main repository yet! Doh!
Again, don't forget to publish! You can add -p to automatically publish.
I'm actually using Mercurial Queues for all my changes. When I'm working on a new patch, I enter:
hg qnew issue123
As I work on my patch, I simply use:
hg qrefresh -e
This updates the patch and (the -e) allows me to edit the commit message. I can also checkpoint my work by committing changes to the "patch" repository, which is basically a nested repository inside your current repo. Checkpointing is simply:
hg commit -m "Update foo bar" --mq <- the mq flag means commit to patch queue
When I need to update my review, I simply use:
hg postreview -e NNN --parent qparent
Where "qparent" is a bookmark that MQ adds pointing to the parent revision. I can submit multiple reviews and when everything looks good, I simply use:
hg qfinish -a
This will commit the patch to my repo as a SINGLE changeset that I then push to my fork and issue a pull request. This way the main repo doesn't get cluttered up with 2-3 changesets for a single feature/bugfix.
Hope this makes sense, Anyway, I should write a blog post about it.