On Wed, May 29, 2013 at 07:21:51PM -0700, Junio C Hamano wrote:

> Karsten Blees <karsten.bl...@gmail.com> writes:
> 
> > I realize colon was chosen to mimic git-check-attr, however,
> > check-attr prints relative paths only (I think?).
> >
> > How about using TAB or '|' instead? AFAICT, these are typically
> > not used in paths or glob patterns.
> 
> The primary reason to use ':' in "check-ignore -v" is to mimic the
> output format of "grep -n".
> 
> Emacs users can then run the commands like check-attr/check-ignore
> with "M-x find-grep" (or "M-x compile"), the output format is
> recognized by the editor, and the user can jump around with \C-x` to
> view hits.
> 
> I do not use vim myself, but I would be mildly surprised if there
> isn't a similar feature there.

It does (it is how my "git jump" command feeds marks to vim). Usually we
would quote ambiguous pathnames, but I think we do not here to retain
compatibility with that microformat. Readers that care about quoting
should use "-z" to get unambiguous output. And indeed, it seems that
check-ignore behaves reasonably in this case. The tests fail because the
test script itself is lazy. It does:

  sed -e 's/      "/      /' -e 's/\\//' -e 's/"$//' expected-verbose | \
        tr ":\t\n" "\0" >expected-verbose0

which generates a bogus expectation; both the delimiter colons and any
in the fields are converted, whereas only the former should be.
Karsten's fix should work, or we could generate our expected output more
carefully.

Long ago we switched to putting a space into our trash directory name to
catch problems with such pathnames when we run the test suite. I wonder
if we should do the same with ":". Doing this:

diff --git a/t/test-lib.sh b/t/test-lib.sh
index ca6bdef..5d84705 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -600,7 +600,7 @@ fi
 fi
 
 # Test repository
-TRASH_DIRECTORY="trash directory.$(basename "$0" .sh)"
+TRASH_DIRECTORY="trash directory:$(basename "$0" .sh)"
 test -n "$root" && TRASH_DIRECTORY="$root/$TRASH_DIRECTORY"
 case "$TRASH_DIRECTORY" in
 /*) ;; # absolute path is good

reveals the breakage on Linux. And it seems that a lot of other tests
break, too. I haven't looked into them yet, though.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to