On Thu, 2012-03-22 at 08:23 +0000, Julian Foad wrote: > 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))
Thanks, can you do some draft code example ? , how we got apr_hash sorted by name ? with a for which construct a sort_apr_hash ? > 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. Thanks, -- Sérgio M. B.