On Sun, Apr 26, 2015 at 08:49:45AM +0200, Erik Elfström wrote: > +/* > + * Return 1 if the given path is the root of a git repository or > + * submodule else 0. Will not return 1 for bare repositories with the > + * exception of creating a bare repository in "foo/.git" and calling > + * is_git_repository("foo"). > + */ > +static int is_git_repository(struct strbuf *path) > +{ > + int ret = 0; > + int unused_error_code; > + size_t orig_path_len = path->len; > + assert(orig_path_len != 0); > + if (path->buf[orig_path_len - 1] != '/') > + strbuf_addch(path, '/'); > + strbuf_addstr(path, ".git"); > + if (read_gitfile_gently(path->buf, &unused_error_code) || is_git_directory(path->buf)) > + ret = 1; > + strbuf_setlen(path, orig_path_len); > + return ret; > +} This iteration looks reasonable overall to me. Should this is_git_repository() helper be available to other files? I think there are other calls to resolve_gitlink_ref() that would want the same treatment (e.g., I think "git status" may have a similar issue). -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html