[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Irmin merge question

I think it might be useful for setting different mailbox's merge profiles. But 
it is definitely very helpful and easier in updating mailboxâs overall 
statistics like message count, recent messages, etc. Iâm actually not sure if I 
can use the changed objects only to derive this statistics. The change to the 
API seems fairly small - it could be an optional argument to the merge that 
indicates whether to use âfast-forwardâ or not and set to true by default.


> On Aug 6, 2015, at 5:09 PM, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote:
>> As far as I can tell from the code, cases when lca=t1 or lca=t2 are handled 
>> by the âdefault' method so the custom defined merge is not called.
>> But this was not always the case - in some revisions of ir_merge.ml the 
>> âdefaultâ ( in method bijectâ ) was not called first :
>> Commits on Mar 4,Feb 6, Feb 2 2015 - call âdefaultâ first
>> Commits on Jan 27, Jan 26, Jan 12 2015 - donât call âdefaultâ first
>> Commits on Jan 11 2015, and older - call âdefaultâ first
> if the lca is the same as one of the 2 values then yes, we are now doing a 
> "fast-forward" merge ie. we pick the most recent version (basically, that 
> means that the other versions is late). Are you sure that you want to do a 
> merge in that case?
> Thomas
>> So it changed back and forth. I am not sure what the intention was but I 
>> think having the ability to custom-handle all cases is preferred?
>> Thanks,
>> Gregory
>>> On Aug 5, 2015, at 11:45 PM, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> 
>>> wrote:
>>>> I have a question about Irmin merge call back for user-defined contents. 
>>>> It appears that merge is only called for the content that was changed but 
>>>> not added or deleted. Is it possible to have it called for all actions?
>>> It's supposed to be called even when one of the version is added or 
>>> deleted. In that case one of the values will be a None. That's why the 
>>> merge callback [1] takes an option type. Notice that you should not 
>>> normally have None for all the 3 elements of the 3-way merge.
>>> Best,
>>> Thomas
>>> [1] http://mirage.github.io/irmin/Irmin.Contents.S.html#VALmerge

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.