> +static void env_append(struct argv_array *env, const char *key, const > +char *val) { > + const char *old = getenv(key); > + > + if (!old) > + argv_array_pushf(env, "%s=%s", key, val); > + else > + argv_array_pushf(env, "%s=%s%c%s", key, old, PATH_SEP, > val); >+} I would like a comment explaining this function. > + * Finalize a temporary object directory by migrating its objects into > +the main > + * object database. > + */ This should mention that it frees its argument.