Brane told me that while updating the JavaHL API he noticed that the new 
svn_client_merge_automatic() is Yet Another Merge API, and would prefer make 
the existing JavaHL merge API encompass that functionality rather than add yet 
another variant.  So I said if let's see if we can apply that idea to the 
libsvn_client API.


Idea: 'automatic' merge is (in a high level logical sense) most similar to a 
subset of the 'pegged' merge.  So make 'merge_peg' do the automatic merge (like 
calling the automatic merge API) if the params are suitable.  The intention is 
that this should be easier for Subversion client developers to understand and 
for them to DTRT.

API differences between pegged and automatic merge:

                Pegged merge                       Automatic merge

The 'find'API: Single merge_peg call does        Separate'find' and 'do' calls.
                the whole process.                 Result of 'find' tells what 
we found,
                                                   used for 'svn mergeinfo' 
graph.

Source:         revision ranges X:Y[,X:Y...]       revision range 0:Y
                on branch URL@PEG                  on branch URL@PEG

Target:                                           optional non-WC tgt for 'find'

If mergeinfo:   skip already-merged revs           (same)
                record the merge

No mergeinfo:   don't skip revs                   error out
                don't record

Options differ: allow_mixed_rev                   allow_mixed_rev
                                                   allow_local_mods
                                                   allow_switched_subtrees
               ignore_mergeinfo

At that level, it looks close enough to be feasible to embed 'automatic' merge 
inside 'pegged'.  I'm looking closer now.

Any thoughts?

- Julian



--
Certified & Supported Apache Subversion Downloads: 
http://www.wandisco.com/subversion/download

Reply via email to