On Sun, Mar 25, 2012 at 12:17, Julian Foad <julianf...@btopenworld.com> wrote:
>...
> Sometimes we have more than two variables because we also want the repository 
> root URL, either to check it's the same repo as some other location or to 
> derive the repo-root-relative path (or fspath).  It's reached the point where 
> it's definitely worth having a struct that contains <url, rev, repo_root>.  
> Now we can write things like:

Please spell it like "repos_root_url" to be similar to precedent
within libsvn_wc. We settled on "repos_root_url" and "repos_uuid" when
thinking about variable naming for WC-NG.

>...
> /* A location in a repository. */
> typedef struct repo_location_t
> {
>   url_uuid_t *repo;
>   svn_revnum_t rev;
>   const char *url;
> } repo_location_t;

If you're going to have the repos_root_url in there, then I would
recommend switching to repos_relpath rather than keeping a full URL.
The relpath is being used within Ev2, and I'd like to see RA move over
to <root, relpath> pairs for clarity/consistency (RA's arbitrary root
and reparenting is very annoying and brittle).

> It's not ideal as it is.  The pointer to a url_uuid_t sub-structure is 
> unnecessary at this stage
> (that is, unless and until we might make the url_uuid_t structure into
> some bigger "repository" abstraction); it would be simpler and therefore 
> better right now to embed the repo root URL and UUID directly.

Yeah. The substructure doesn't add any value, it seems.

>  Also, suggestions for a better name are welcome -- preferably shorter, as it 
>will have a 'svn_client__' prefix.

How about svn_client__pathrev_t, since it represents PATH@REV ?

>...
>   * Replace the 'repo' field with a simple 'const char *repo_root_url' (and 
> maybe a uuid as well), thus simplifying initial allocation and the 'dup' 
> function.

Again: s/repo/repos/, just like the standard naming in WC.

>...

Cheers,
-g

Reply via email to