Jeff King <p...@peff.net> writes:

> +/*
> + * We anonymize each component of a path individually,
> + * so that paths a/b and a/c will share a common root.
> + * The paths are cached via anonymize_mem so that repeated
> + * lookups for "a" will yield the same value.
> + */
> +static void anonymize_path(struct strbuf *out, const char *path,
> +                        struct hashmap *map,
> +                        char *(*generate)(const char *, size_t *))
> +{
> +     while (*path) {
> +             const char *end_of_component = strchrnul(path, '/');
> +             size_t len = end_of_component - path;
> +             const char *c = anonymize_mem(map, generate, path, &len);
> +             strbuf_add(out, c, len);
> +             path = end_of_component;
> +             if (*path)
> +                     strbuf_addch(out, *path++);
> +     }
> +}

Do two paths sort the same way before and after anonymisation?  For
example, if generate() works as a simple substitution, it should map
a character that sorts before (or after) '/' with another that also
sorts before (or after) '/' for us to be able to diagnose an error
that comes from D/F sort order confusion.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to