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

Re: random sort of svn status and svn diff

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 22 Mar 2012 08:23:19 +0000 (GMT)

Sérgio Basto wrote:

> Philip Martin wrote:
>> Or you could rebuild the current APR with a
>> one-line patch to set ht->seed to 0 in apr_hash.c:apr_hash_make.
>
> I think when subversion receive the result of this apr_function , we
> should do the sort , ie , subversion should not depend on sort or not
> sort of the apr .
>
> So where in source code we have the return of apr function ?

There is not just one place, there are many places, even within the diff code.  Start in subversion/svn/diff-cmd.c, at svn_cl__diff(), and follow the function calls down.  For a WC-to-WC diff, these are the main calls:

  svn_cl__diff
    |
    svn_client_diff[_summarize]6, svn_client_diff[_summarize]_peg2
      |
      svn_wc_diff6
        |
        svn_wc__internal_walk_status
          |
          get_dir_status
            |
            /* Walk all the children of this directory. */
            for (hi = apr_hash_first(subpool, all_children);
                 hi; hi = apr_hash_next(hi))
 
This place determines the order of entries within a directory, for a WC-to-WC diff.  That's just one of the code paths involved in diff.  There are several others, depending on the kind of diff.  For diffs against the repository, it is more complex.  Also
look for code that determines the order of property changes.

- Julian
Received on 2012-03-22 09:23:56 CET

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