attr: Do not walk path if we're at the root

parent 4cb7c4a4
......@@ -422,10 +422,8 @@ static int collect_attr_files(
/* Resolve path in a non-bare repo */
if (workdir != NULL)
error = git_path_find_dir(&dir, path, workdir);
/* when in a bare repo, find the containing folder if the given
* path is a subfolder (if not, the containing folder is the root) */
else if (strchr(path, '/') != NULL)
error = git_path_dirname_r(&dir, path);
else
error = git_path_dirname_r(&dir, path);
if (error < 0)
goto cleanup;
......@@ -449,7 +447,12 @@ static int collect_attr_files(
giterr_clear(); /* no error even if there is no index */
info.files = files;
error = git_path_walk_up(&dir, workdir, push_one_attr, &info);
if (!strcmp(dir.ptr, ".")) {
error = push_one_attr(&info, "");
} else {
error = git_path_walk_up(&dir, workdir, push_one_attr, &info);
}
if (error < 0)
goto cleanup;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment