git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC/PATCH] ls-files: fix pathspec display on error

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jul 27, 2011, 11:56 UTC
Message-ID
<b535c21e1becdf8aeeb1d3f8ddaa7f5415830844.1311767679.git.git@drmicha.warpmail.net>
In-Reply-To
<CAEBDL5XJbYT9yczZiVPpeA3mpROuKQdw+-AOJjUmRp4W6M5uzg@mail.gmail.com>

Trying to commit or ls a file "../$a" from within a subdirectory "aha" gives the following output, when "$a" runs through the values "a", "aa" etc.:

error: pathspec '../a' did not match any file(s) known to git. error: pathspec '../aa' did not match any file(s) known to git. error: pathspec '../aaa' did not match any file(s) known to git. error: pathspec '' did not match any file(s) known to git. error: pathspec 'a' did not match any file(s) known to git. error: pathspec 'aa' did not match any file(s) known to git. error: pathspec 'aaa' did not match any file(s) known to git. error: pathspec 'aaaa' did not match any file(s) known to git. error: pathspec 'aaaaa' did not match any file(s) known to git. error: pathspec 'aaaaaa' did not match any file(s) known to git.

This comes from the fact that report_path_error() tries to chop off a prefix from the pathspec which may have been resolved and consumed already.

Fix this by displaying the full pathspec.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
So, I couldn't reproduce because it depends on the length of the dirname.
This may be fallout from efad1a5 (ls-files: allow relative pathspec, 2010-06-03)
but I haven't checked and won't be able to for the next 3 weeks, sorry.
I just wanted to send out this possible fix before I leave.
---
 builtin/ls-files.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 1570123..e0b1401 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -418,7 +418,7 @@ int report_path_error(const char *ps_matched, const char **pathspec, int prefix_
 			continue;
 
 		error("pathspec '%s' did not match any file(s) known to git.",
-		      pathspec[num] + prefix_len);
+		      pathspec[num]);
 		errors++;
 	}
 	return errors;
-- 
1.7.6.336.gdf067
Previous: John SzakmeisterNext: Clemens Buchacher
Message 10 of 37 in “Possible bug”
  1. Reuben ThomasJul 23, 2011
  2. commit: allow partial commits with relative pathsMichael J Gruber, Jul 25, 2011
  3. Junio C HamanoJul 25, 2011
  4. Junio C HamanoJul 25, 2011
  5. Michael J GruberJul 27, 2011
  6. Reuben ThomasJul 27, 2011
  7. Michael J GruberJul 27, 2011
  8. Reuben ThomasJul 27, 2011
  9. John SzakmeisterJul 27, 2011
  10. ls-files: fix pathspec display on errorMichael J Gruber, Jul 27, 2011
  11. Clemens BuchacherJul 29, 2011
  12. Junio C HamanoAug 1, 2011
  13. test ls-files with relative pathsClemens Buchacher, Aug 1, 2011
  14. Junio C HamanoAug 1, 2011
  15. ls-files: fix pathspec display on errorClemens Buchacher, Aug 1, 2011
  16. Junio C HamanoAug 1, 2011
  17. Erik Faye-LundJul 28, 2011
  18. Junio C HamanoJul 27, 2011
  19. Junio C HamanoJul 27, 2011
  20. Michael J GruberJul 27, 2011
  21. commit: allow partial commits with relative pathsClemens Buchacher, Jul 29, 2011
  22. Michael J GruberJul 30, 2011
  23. Clemens BuchacherJul 30, 2011
  24. Michael J GruberJul 30, 2011
  25. commit: allow partial commits with relative pathsClemens Buchacher, Jul 30, 2011
  26. Junio C HamanoAug 1, 2011
  27. Junio C HamanoAug 2, 2011
  28. Clemens BuchacherAug 3, 2011
  29. Junio C HamanoAug 3, 2011
  30. renaming pathspec_prefix (was: Re: [PATCH v2] commit: allow partial commits with relative paths)Clemens Buchacher, Sep 4, 2011
  31. 1/3 remove prefix argument from pathspec_prefixClemens Buchacher, Sep 4, 2011
  32. Junio C HamanoSep 6, 2011
  33. Junio C HamanoSep 6, 2011
  34. Clemens BuchacherSep 8, 2011
  35. Junio C HamanoSep 8, 2011
  36. 2/3 consolidate pathspec_prefix and common_prefixClemens Buchacher, Sep 4, 2011
  37. 3/3 rename pathspec_prefix -> common_prefix and move to dir.[ch]Clemens Buchacher, Sep 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.