diff options
author | Raymond E. Pasco <ray@ameretat.dev> | 2020-08-08 09:53:23 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-08-09 20:14:29 +0200 |
commit | cb0dd22b827a0533a8ba105764388269e59d010c (patch) | |
tree | 5c79283df944289084e0b2943336dc8767933528 /diff-lib.c | |
parent | difftool -d: ensure that intent-to-add files are handled correctly (diff) | |
download | git-cb0dd22b827a0533a8ba105764388269e59d010c.tar.xz git-cb0dd22b827a0533a8ba105764388269e59d010c.zip |
diff-lib: use worktree mode in diffs from i-t-a entries
When creating "new file" diffs against i-t-a index entries, diff-lib
erroneously used the mode of the cache entry rather than the mode of the
file in the worktree. This changes run_diff_files() to correctly use the
mode of the worktree file in this case.
Signed-off-by: Raymond E. Pasco <ray@ameretat.dev>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r-- | diff-lib.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/diff-lib.c b/diff-lib.c index 25fd2dee19..50521e2093 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -219,7 +219,8 @@ int run_diff_files(struct rev_info *revs, unsigned int option) continue; } else if (revs->diffopt.ita_invisible_in_index && ce_intent_to_add(ce)) { - diff_addremove(&revs->diffopt, '+', ce->ce_mode, + newmode = ce_mode_from_stat(ce, st.st_mode); + diff_addremove(&revs->diffopt, '+', newmode, &null_oid, 0, ce->name, 0); continue; } |