Paul Burba wrote: > Julian Foad wrote: >> If step 2 could repeat the same check as step 1, that would be useful >> for your scenario, but otherwise there's little point in step 2 doing >> a partial check. So for now I'll take the simple solution which is to >> call svn_client_merge4(allow_mixed_rev=TRUE) to bypass the check. >> >> If and when we want to perform the full check in step 2, then we'll >> want to alter svn_client_merge4() in some way to provide more control >> over those checks, or else expose the check function separately. The >> best way might become clearer with further work on the APIs. > > Agreed, this can be dealt with later (if it needs to be dealt with at all). > > Overall I think this patch looks good. The only problem I see is: [...] > svn_client_find_reintegrate_merge() takes an absolute WC path, but we > might be passing it a relative path here. That will ultimately cause > an assertion in wc_db.c:
Yup, I found that too. I also avoided the work duplication in the reimplementation of svn_client_merge_reintegrate(): I made the internal find_reintegrate_merge() function return the sessions and youngest common ancestor revision, so that merge_reintegrate_locked() can call merge_cousins_...() directly instead of calling the higher-level merge_locked(). Committed in this form in r1213349. Thanks for looking. - Julian