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

Re: [MirageOS-devel] Irmin merge question

> 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?


> 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®.