Harald Meland <[EMAIL PROTECTED]> writes:

> [Mark Triggs]
>
>> By the way, speaking of merging, I've just noticed that if I'm
>> in the *tla-revisions* buffer, move my point over a particular revision
>> and do "S" to star-merge it, all of the missing revisions get merged
>> in, not only the one I was interested in.
>
> If you want to merge only a single patchset (i.e. you want to do some
> cherrypicking), star-merge probably isn't what you're looking for.
> Use replay instead.
>
> When star-merge is given a fully-qualified FROM revision, this
> revision is interpreted as the end-point for the merge; this means
> that all revisions prior to the FROM revision will also be part of the
> merge.

Yep, that's the behaviour I would expect.  What I'm seeing with xtla is
that all revisions *after* the FROM revision are being merged (it's
essentially star-merging with the most recent revision).  So, if I have
a tree containing patch-1, then move the point over patch-2 and hit 'S'
to star-merge, it merges patch-2, patch-3, patch-4, ... (instead of just
up to patch-2).

[...]

>> (defun tla-revision-star-merge ()
>>   "Run star-merge from the current location"
>> ...
>>   (if tla-buffer-archive-name
>>       (tla-star-merge (tla-fully-qualified-revision
>>                        tla-buffer-archive-name
>>                        tla-buffer-category-name
>>                        tla-buffer-branch-name
>>                        tla-buffer-version-name) to-tree)
>>     (let* ((elem (ewoc-data (ewoc-locate
>>                              tla-revision-list-cookie)))
>>            (full (caddr elem)))
>>       (tla-star-merge (apply 'tla-fully-qualified-revision
>>                              full)
>>                       to-tree)))
>> ..)
>>
>> That first arm of the IF is the one being entered.
>
> I haven't tried using xtla for this yet, nor have I studied the
> code... but to me it looks as though both arms of the IF are using
> TLA-FULLY-QUALIFIED-REVISION for constructing the first argument too
> TLA-STAR-MERGE.

They are, but in the first branch the revision isn't being supplied as
an argument, so:

(tla-fully-qualified-revision
 tla-buffer-archive-name
 tla-buffer-category-name
 tla-buffer-branch-name
 tla-buffer-version-name) => "[EMAIL PROTECTED]"

while:

(apply 'tla-fully-qualified-revision full)
 => "[EMAIL PROTECTED]"

It's the former that surprised me.. I'm not too sure why you would want
to do this (but it was obviously intentional, so I assume I'm missing
something :o)

Cheers,

Mark

-- 
Mark Triggs
<[EMAIL PROTECTED]>

Reply via email to