Bert Huijben wrote: > 1 is new and should be the new public api (feel free to change > it to a better name and make 3 match it). 2 is the internal api > from before the introduction of 1 and 3. > > 4 is the old ill-defined public api and 5 the better defined > variant. I would make these new functions just check for ‘wcroot’, > not ’strictly’ as that is just a pointer to the ill-definedness > which should be gone now. > > The wcroot is now just the root of the working copy, and not also > every switched subdir too as it used to be with the old apis.
Thanks. Will do. - Julian > Julian Foad wrote: >> These six APIs all overlap in functionality: >> >> 1) svn_wc_check_root(*is_wcroot,*is_switched,*kind,...) >> 2 uses in 2 files >> >> 2) svn_wc__check_wc_root(*wc_root,*kind,*switched,...) >> 5 uses in 4 files >> >> 3) svn_wc__db_is_switched(*is_wcroot,*is_switched,*kind,...) >> 5 uses in 4 files >> >> 4) svn_wc_is_wc_root2(*wc_root,...) >> 1 use in 1 file (deprecated.c) >> >> 5) svn_wc__strictly_is_wc_root(*wc_root,...) >> 5 uses in 5 files >> >> 6) svn_wc__db_is_wcroot(*is_root,...) >> 15 uses in 6 files >> >> >> The first three are functionally identical AFAICT. The duplication adds >> noise >> to the WC internal API as a whole. The first to go is >> svn_wc__check_wc_root() >> ... gone, r1417181+r1417184. >> >> >> Now, (1) is a simple wrapper around (3) and (5) is a simple wrapper around >> (6). >> Such pairs should have matching names. (1) is public so can't change, so >> I'll rename (3) to match it: > > Actually (1) is new for v1.8 so we *can* change it if we want. > >> >> (3) -> 'svn_wc__db_check_root' >> >> and (5) is named 'strictly' to distinguish it from (4), so I'll >> leave it alone and rename (6) to match it: >> >> (6) -> 'svn_wc__db_strictly_is_wc_root'. >> >> That should help reduce the obfuscation a tiny bit.