From: Victor Leschuk Date: Sat, 24 Oct 2015 07:13:54 GMT Subject: Re: git --literal-pathspecs add -u says "fatal: pathspec ':/' did not match any files" Message-ID: <562B2FB2.4080604@gmail.com> In-Reply-To: Hello Noam, The problem is that in the absence of explicit argument we set the list of files to special path ":/" which means repo root: if ((0 < addremove_explicit || take_worktree_changes) && !argc) { static const char *whole[2] = { ":/", NULL }; argc = 1; argv = whole; } And after that we treat it as regular file if (!seen[i] && path[0] && ((pathspec.items[i].magic & (PATHSPEC_GLOB | PATHSPEC_ICASE)) || !file_exists(path))) { /* <======== file_exists() here just checks lstat() result */ Maybe it'll make sense to modify file_exists() to treat ":/" specially. Something like that: diff --git a/dir.c b/dir.c index 109ceea..6cae3b9 100644 --- a/dir.c +++ b/dir.c @@ -2103,6 +2103,10 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru int file_exists(const char *f) { struct stat sb; + if (!strcmp(f, ":/")) { + /* ":/" - root dir, always exists */ + return 1; + } return lstat(f, &sb) == 0; } -- Victor On 10/24/2015 02:39 AM, Noam Postavsky wrote: > ~/tmp/tmprepo$ git init > Initialized empty Git repository in /home/npostavs/tmp/tmprepo/.git/ > ~/tmp/tmprepo$ git --literal-pathspecs add -u > fatal: pathspec ':/' did not match any files > ~/tmp/tmprepo$ git --version > git version 2.6.1 > > It was reported[1] that 2.0.2 and several following versions also fail > with the same error; I found that version 1.9.5 succeeds. > > Adding a "." argument: > > git --literal-pathspecs add -u . > > succeeds in all versions. > > [1]: https://github.com/magit/magit/issues/2354#issuecomment-150665961 > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html