Branko Čibej wrote:

> There are two revised merge APIs:
> 
>     svn_client_merge5
>     svn_client_merge_peg5
> 
> and also a whole new group of svn_client_automatic_merge_ APIs, and the
> (not revised) svn_client_merge_reintegrate. I'm in a dilemma as to which
> of these APIs to use in JavaHL; and I'm also wondering if
> svn_client_merge(_peg)5 should even exist, given the new automatic
> variants are supposed do supersede them, and whether

The automatic merge API *only* performs merge-tracking merges that are 
'complete' (that take all source revisions up to rX).  If you want to do a 
non-tracking merge, or a merge-tracking cherry-pick merge, then _merge(_peg) is 
what you need.

> svn_client_merge_reintegrate should be deprecated.

I would suggest yes.  In general, I would suggest the Java API should track the 
C API unless there is a good reason not to.

Put another way, if we think the C API for merging is confusing / bloated / 
whatever, then we should address it there -- in the C API -- and then track the 
changes in the bindings.

For example, it might perhaps be reasonable to remove the merge-tracking 
support in the new revision of svn_client_merge5(), becaue that function is for 
performing a 2-URL merge and the automatic merge should replace the only really 
useful use case for that (which is the reintegrate use case).

> Regarding the latter, I'm given to understand that we will still have to
> use svn_client_merge_reintegrate in some -- extreme? -- cases, but IMO,
> it would be more correct to deprecate now even if the automatic merge
> doesn't cover all edge cases yet.

I agree with that principle, whether we consider the 
all-revs-are-merged-except-for-some-no-ops case to be extreme or not.

- Julian

Reply via email to