[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: cleaning up mergeinfo using svn 1.7

From: Stefan Sperling <stsp_at_elego.de>
Date: Sat, 10 Sep 2011 00:46:42 +0200

On Sat, Sep 10, 2011 at 12:40:11AM +0200, Stefan Sperling wrote:
> It would help if you could present examples where elision does not
> work for you, so we can fix 'svn merge'.

The following quote from
https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_client/mergeinfo.h
provides some background on how elision is supposed to work.

/* Elide any svn:mergeinfo set on TARGET_WCPATH to its nearest working
   copy (or possibly repository) ancestor with equivalent mergeinfo.

   If WC_ELISION_LIMIT_PATH is NULL check up to the root of the
   working copy or the nearest switched parent for an elision
   destination, if none is found check the repository, otherwise check
   as far as WC_ELISION_LIMIT_PATH within the working copy.
   TARGET_WCPATH and WC_ELISION_LIMIT_PATH, if it exists, must both be
   absolute or relative to the working directory.

   Elision occurs if:

     A) TARGET_WCPATH has empty mergeinfo and no parent path with
        explicit mergeinfo can be found in either the WC or the
        repository (WC_ELISION_LIMIT_PATH must be NULL for this to
        occur).

     B) TARGET_WCPATH has empty mergeinfo and its nearest parent also
        has empty mergeinfo.

     C) TARGET_WCPATH has the same mergeinfo as its nearest parent
        when that parent's mergeinfo is adjusted for the path
        difference between the two, e.g.:

           TARGET_WCPATH = A_COPY/D/H
           TARGET_WCPATH's mergeinfo = '/A/D/H:3'
           TARGET_WCPATH nearest parent = A_COPY
           Parent's mergeinfo = '/A:3'
           Path differece = 'D/H'
           Parent's adjusted mergeinfo = '/A/D/H:3'

   If Elision occurs remove the svn:mergeinfo property from
   TARGET_WCPATH. */
svn_error_t *
svn_client__elide_mergeinfo(const char *target_wcpath,
                            const char *wc_elision_limit_path,
                            svn_client_ctx_t *ctx,
                            apr_pool_t *pool);
Received on 2011-09-10 00:47:22 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.