Re: git ls-files --error-unmatch weirdness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/8/12 SZEDER Gábor <szeder@xxxxxxxxxx>:
> So, the same 'git ls-files' command is OK when run at the top of the
> worktree, but errors out in a subdirectory.  What's going on?  Is this
> a bug?  If not, why not?

report_path_error() in ls-files.c is meant to check pathspecs given by
user. However when in a subdir, get_pathspec() automatically adds a
pathspec (that is prefix). This new pathspec confuses
report_path_error(). The following patch may help (possibly corrupted
because I paste in gmail, but you get the idea)

diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 0e98bff..e0611ac 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -545,7 +545,8 @@ int cmd_ls_files(int argc, const char **argv,
const char *cmd_prefix)
 	max_prefix_len = max_prefix ? strlen(max_prefix) : 0;

 	/* Treat unmatching pathspec elements as errors */
-	if (pathspec && error_unmatch) {
+	if (pathspec && error_unmatch &&
+	    (!prefix || pathspec[1])) {
 		int num;
 		for (num = 0; pathspec[num]; num++)
 			;

-- 
Duy
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]