diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-06-23 10:27:47 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-06-23 10:37:21 -0700 |
commit | 78cc1a540ba127b13f2f3fd531777b57f3a9cd46 (patch) | |
tree | 9f4d294accbb456727dad9dc231afc862d535433 /diff-lib.c | |
parent | d95d728aba06a34394d15466045cbdabdada58a2 (diff) | |
download | git-78cc1a540ba127b13f2f3fd531777b57f3a9cd46.tar.gz |
Revert "diff-lib.c: adjust position of i-t-a entries in diff"nd/diff-i-t-a
This reverts commit d95d728aba06a34394d15466045cbdabdada58a2.
It turns out that many other commands that need to interact with the
result of running diff-files and diff-index, e.g. "git apply", "git
rm", etc., need to be adjusted to the new world order it brings in.
For example, it would break this sequence to correct a whitespace
breakage in the parts you changed:
git add -N file
git diff --cached file | git apply --cached --whitespace=fix
git checkout file
In the old world order, "diff" showed a patch to modify an existing
empty file by adding its full contents, and "apply" updated the
index by modifying the existing empty blob (which is what an
Intent-to-Add entry records in the index) with that patch.
In the new world order, "diff" shows a patch to create a new file
with its full contents, but because "apply" thinks that the i-t-a
entry already exists in the index, it refused to accept a creation.
Adjusting "apply" to this new world order is easy, but we need to
assess the extent of the damage to the rest of the system the new
world order brought in before going forward and adjust them all,
after which we can resurrect the commit being reverted here.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/diff-lib.c b/diff-lib.c index 714501a7a3..a85c4971ac 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -212,11 +212,6 @@ int run_diff_files(struct rev_info *revs, unsigned int option) ce->sha1, !is_null_sha1(ce->sha1), ce->name, 0); continue; - } else if (ce->ce_flags & CE_INTENT_TO_ADD) { - diff_addremove(&revs->diffopt, '+', ce->ce_mode, - EMPTY_BLOB_SHA1_BIN, 0, - ce->name, 0); - continue; } changed = match_stat_with_submodule(&revs->diffopt, ce, &st, @@ -381,13 +376,6 @@ static void do_oneway_diff(struct unpack_trees_options *o, struct rev_info *revs = o->unpack_data; int match_missing, cached; - /* i-t-a entries do not actually exist in the index */ - if (idx && (idx->ce_flags & CE_INTENT_TO_ADD)) { - idx = NULL; - if (!tree) - return; /* nothing to diff.. */ - } - /* if the entry is not checked out, don't examine work tree */ cached = o->index_only || (idx && ((idx->ce_flags & CE_VALID) || ce_skip_worktree(idx))); |