FreeBSD/contrib/subversion/subversion/libsvn_repos/dump.c
/* Remove all entries from TRACKER that are not relevant to PATH anymore.
 * If ALLOW_EXACT_MATCH is FALSE, keep only entries that pertain to
 * parent folders but not to PATH itself.
 *
 * This internal function implicitly updates the tracker state during the
 * tree by removing "past" entries.  Other functions will add entries when
 * we encounter a new tree change.
 */
Remove all entries from TRACKER that are not relevant to PATH anymore.
If ALLOW_EXACT_MATCH is FALSE, keep only entries that pertain to
parent folders but not to PATH itself.

This internal function implicitly updates the tracker state during the
tree by removing "past" entries.  Other functions will add entries when
we encounter a new tree change.
Remove all entries from TRACKER that are not relevant to PATH anymore . If ALLOW_EXACT_MATCH is FALSE keep only entries that pertain to parent folders but not to PATH itself . This internal function implicitly updates the tracker state during the tree by removing " past " entries . Other functions will add entries when we encounter a new tree change .
static void
tracker_trim(path_tracker_t *tracker,
             const char *path,
             svn_boolean_t allow_exact_match)
{
  for (; tracker->depth; --tracker->depth)
    {
      path_tracker_entry_t *parent = &APR_ARRAY_IDX(tracker->stack,
                                                    tracker->depth - 1,
                                                    path_tracker_entry_t);
      const char *rel_path
        = svn_dirent_skip_ancestor(parent->path->data, path);
      if (rel_path && (allow_exact_match || *rel_path != '\0'))
        break;
    }
}
static void tracker_trim ( path_tracker_t * tracker , const char * path , svn_boolean_t allow_exact_match ) { for ( ; tracker -> depth ; -- tracker -> depth ) { path_tracker_entry_t * parent = & APR_ARRAY_IDX ( tracker -> stack , tracker -> depth - 1 , path_tracker_entry_t ) ; const char * rel_path = svn_dirent_skip_ancestor ( parent -> path -> data , path ) ; if ( rel_path && ( allow_exact_match || * rel_path != ' \0 ' ) ) break ; } }
Remove all entries from TRACKER that are not relevant to PATH anymore.
Remove all entries from TRACKER that are not relevant to PATH anymore .
/* remove everything that is unrelated to PATH.
     Note that TRACKER->STACK is depth-ordered,
     i.e. stack[N] is a (maybe indirect) parent of stack[N+1]
     for N+1 < DEPTH.
   */ /* always keep parents.  Keep exact matches when allowed. */