diff options
author | Jeff King <peff@peff.net> | 2008-10-26 00:46:21 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-10-26 14:09:48 -0700 |
commit | 2675773af893ae81f9b09f18c1f2ec86ca2158e7 (patch) | |
tree | 8f0fed7f4cbfb7f74804c574e698079899906fea | |
parent | userdiff: require explicitly allowing textconv (diff) | |
download | tgif-2675773af893ae81f9b09f18c1f2ec86ca2158e7.tar.xz |
only textconv regular files
We treat symlinks as text containing the results of the
symlink, so it doesn't make much sense to text-convert them.
Similarly gitlink components just end up as the text
"Subproject commit $sha1", which we should leave intact.
Note that a typechange may be broken into two parts: the
removal of the old part and the addition of the new. In that
case, we _do_ show the textconv for any part which is the
addition or removal of a file we would ordinarily textconv,
since it is purely acting on the file contents.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff.c | 2 | ||||
-rwxr-xr-x | t/t4030-diff-textconv.sh | 2 |
2 files changed, 3 insertions, 1 deletions
@@ -1311,6 +1311,8 @@ static const char *get_textconv(struct diff_filespec *one) { if (!DIFF_FILE_VALID(one)) return NULL; + if (!S_ISREG(one->mode)) + return NULL; diff_filespec_load_driver(one); return one->driver->textconv; } diff --git a/t/t4030-diff-textconv.sh b/t/t4030-diff-textconv.sh index 1df48ae12a..3945731e9a 100755 --- a/t/t4030-diff-textconv.sh +++ b/t/t4030-diff-textconv.sh @@ -104,7 +104,7 @@ index ad8b3d2..67be421 \ No newline at end of file EOF # make a symlink the hard way that works on symlink-challenged file systems -test_expect_failure 'textconv does not act on symlinks' ' +test_expect_success 'textconv does not act on symlinks' ' echo -n frotz > file && git add file && git ls-files -s | sed -e s/100644/120000/ | |