[patch 0/3] patches for mq
Chris Mason
mason at suse.com
Thu Nov 10 15:12:42 UTC 2005
On Thu, Nov 10, 2005 at 07:20:05PM +0900, Samuel Masham wrote:
> Hi Chris, All,
>
> I am sending 3 small (tiny) patches for mq.
>
> 1, the autosync command - should be working ... but is a little bit chatty.
Ok, I'll take a look.
> 2, add -repos option to qinit to create a repos for your queue at the
> first place
Fair enough
> 3, deal with empty patch files. remove them from the series file when
> you try and apply them rather than crash and burn.
empty patch files are legal, you're hitting a different bug (see below).
>
> However I have hit a couple of issues when implementing & testing
> especially when doing the qtag command.
>
> Simple ish issue first:
> When a patch fails in a series the main repos rollback behavior and
> the queue rollback are out of kilter. As far as I can see the main
> repos roles back the last patch and the message queue status roles
> back all in the group. See back trace at the bottom of this mail.
Hmmm, I'll look at this.
>
> Difficult issue:
> Tags and mq just don't play well together. When I tag a repo while
> using mq (with patches in your queue applied) I seem to be in an
> inconsistent state. I tried to update the status file but that falls
> down when strip does... I could go on to make random guesses like
> strip not removing the tag and then tagfile being used to generate
> dirstate info... but that's probably unhelpful.
There are a few different sides of this.
1) You can't make a permanent tag against a transient changeset. So, if
you tag the top of a patch queue and then hg qpop, you should first
delete the tag.
2) The tag code should be a little nicer about tags that don't exist.
If you don't want to use local tags, the best way to use tags with mq is
to put them into their own branch. When you want to tag something you
hg update -C -b tag_branch and then run hg tags or edit the tags file to
add/remove the tags you want. Then hg update -C back to the top of the
patch queue.
>
> Anyway hope some of this is of use,
>
> Samuel
>
> ps what goes wrong with empty patch files:-
> File "/home/masuel/lib/python/mercurial/revlog.py", line 467, in diff
> return mdiff.textdiff(a, b)
> TypeError: bdiff() argument 1 must be string, not buffer
> transaction abort!
> rollback completed
This was a merge error from me. I've pushed out a fix.
-chris
--
More information about the Mercurial
mailing list