swh:1:snp:47f1e8bb459169b0feb652a9c3d9cbabd8526d4a
Revision 8947fdd598848b8ceb2cea9ff42e906c946eae5c authored by Jeff King on 08 December 2009, 07:49:35 UTC, committed by Junio C Hamano on 08 December 2009, 07:52:46 UTC
Commit 24ab81a fixed the deletion of empty files, but broke
deletion of non-empty files. The approach it took was to
factor out the "deleted" line from the patch header into its
own hunk, the same way we do for mode changes. However,
unlike mode changes, we only showed the special "delete this
file" hunk if there were no other hunks. Otherwise, the user
would annoyingly be presented with _two_ hunks: one for
deleting the file and one for deleting the content.

This meant that in the non-empty case, we forgot about the
deleted line entirely, and we submitted a bogus patch to
git-apply (with "/dev/null" as the destination file, but not
marked as a deletion).

Instead, this patch combines the file deletion hunk and the
content deletion hunk (if there is one) into a single
deletion hunk which is either staged or not.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 24ab81a
History
Tip revision: 84d06cdc06389ae7c462434cb7b1db0980f63860 authored by Junio C Hamano on 26 March 2021, 21:59:47 UTC
Sync with v2.31.1
Tip revision: 84d06cd
File Mode Size
Documentation
block-sha1
compat
contrib
git-gui
gitk-git
gitweb
perl
ppc
t
templates
xdiff
.gitattributes -rw-r--r-- 70 bytes
.gitignore -rw-r--r-- 2.5 KB
.mailmap -rw-r--r-- 2.5 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 734 bytes
INSTALL -rw-r--r-- 6.0 KB
Makefile -rw-r--r-- 54.3 KB
README -rw-r--r-- 2.4 KB
RelNotes l--------- 32 bytes
abspath.c -rw-r--r-- 2.8 KB
advice.c -rw-r--r-- 581 bytes
advice.h -rw-r--r-- 197 bytes
alias.c -rw-r--r-- 1.4 KB
alloc.c -rw-r--r-- 1.7 KB
archive-tar.c -rw-r--r-- 6.3 KB
archive-zip.c -rw-r--r-- 7.3 KB
archive.c -rw-r--r-- 9.6 KB
archive.h -rw-r--r-- 927 bytes
attr.c -rw-r--r-- 16.0 KB
attr.h -rw-r--r-- 978 bytes
base85.c -rw-r--r-- 2.9 KB
bisect.c -rw-r--r-- 23.7 KB
bisect.h -rw-r--r-- 900 bytes
blob.c -rw-r--r-- 1.1 KB
blob.h -rw-r--r-- 311 bytes
branch.c -rw-r--r-- 4.9 KB
branch.h -rw-r--r-- 1.0 KB
builtin-add.c -rw-r--r-- 9.2 KB
builtin-annotate.c -rw-r--r-- 446 bytes
builtin-apply.c -rw-r--r-- 90.7 KB
builtin-archive.c -rw-r--r-- 3.1 KB
builtin-bisect--helper.c -rw-r--r-- 617 bytes
builtin-blame.c -rw-r--r-- 62.5 KB
builtin-branch.c -rw-r--r-- 17.1 KB
builtin-bundle.c -rw-r--r-- 1.8 KB
builtin-cat-file.c -rw-r--r-- 5.6 KB
builtin-check-attr.c -rw-r--r-- 3.0 KB
builtin-check-ref-format.c -rw-r--r-- 529 bytes
builtin-checkout-index.c -rw-r--r-- 8.1 KB
builtin-checkout.c -rw-r--r-- 20.8 KB
builtin-clean.c -rw-r--r-- 4.1 KB
builtin-clone.c -rw-r--r-- 16.8 KB
builtin-commit-tree.c -rw-r--r-- 3.6 KB
builtin-commit.c -rw-r--r-- 29.9 KB
builtin-config.c -rw-r--r-- 12.9 KB
builtin-count-objects.c -rw-r--r-- 3.0 KB
builtin-describe.c -rw-r--r-- 9.0 KB
builtin-diff-files.c -rw-r--r-- 1.9 KB
builtin-diff-index.c -rw-r--r-- 1.2 KB
builtin-diff-tree.c -rw-r--r-- 4.2 KB
builtin-diff.c -rw-r--r-- 10.6 KB
builtin-fast-export.c -rw-r--r-- 16.0 KB
builtin-fetch--tool.c -rw-r--r-- 12.7 KB
builtin-fetch-pack.c -rw-r--r-- 19.2 KB
builtin-fetch.c -rw-r--r-- 18.5 KB
builtin-fmt-merge-msg.c -rw-r--r-- 8.7 KB
builtin-for-each-ref.c -rw-r--r-- 22.4 KB
builtin-fsck.c -rw-r--r-- 15.8 KB
builtin-gc.c -rw-r--r-- 6.1 KB
builtin-grep.c -rw-r--r-- 22.8 KB
builtin-help.c -rw-r--r-- 11.1 KB
builtin-init-db.c -rw-r--r-- 13.4 KB
builtin-log.c -rw-r--r-- 34.0 KB
builtin-ls-files.c -rw-r--r-- 14.0 KB
builtin-ls-remote.c -rw-r--r-- 2.4 KB
builtin-ls-tree.c -rw-r--r-- 4.5 KB
builtin-mailinfo.c -rw-r--r-- 22.9 KB
builtin-mailsplit.c -rw-r--r-- 6.3 KB
builtin-merge-base.c -rw-r--r-- 1.4 KB
builtin-merge-file.c -rw-r--r-- 2.5 KB
builtin-merge-ours.c -rw-r--r-- 751 bytes
builtin-merge-recursive.c -rw-r--r-- 1.8 KB
builtin-merge.c -rw-r--r-- 31.6 KB
builtin-mktree.c -rw-r--r-- 5.0 KB
builtin-mv.c -rw-r--r-- 5.9 KB
builtin-name-rev.c -rw-r--r-- 7.1 KB
builtin-pack-objects.c -rw-r--r-- 59.1 KB
builtin-pack-refs.c -rw-r--r-- 589 bytes
builtin-prune-packed.c -rw-r--r-- 1.9 KB
builtin-prune.c -rw-r--r-- 3.8 KB
builtin-push.c -rw-r--r-- 5.5 KB
builtin-read-tree.c -rw-r--r-- 5.5 KB
builtin-receive-pack.c -rw-r--r-- 16.4 KB
builtin-reflog.c -rw-r--r-- 17.6 KB
builtin-remote.c -rw-r--r-- 36.6 KB
builtin-replace.c -rw-r--r-- 3.9 KB
builtin-rerere.c -rw-r--r-- 3.4 KB
builtin-reset.c -rw-r--r-- 8.7 KB
builtin-rev-list.c -rw-r--r-- 9.5 KB
builtin-rev-parse.c -rw-r--r-- 14.4 KB
builtin-revert.c -rw-r--r-- 11.3 KB
builtin-rm.c -rw-r--r-- 7.0 KB
builtin-send-pack.c -rw-r--r-- 13.6 KB
builtin-shortlog.c -rw-r--r-- 8.4 KB
builtin-show-branch.c -rw-r--r-- 22.9 KB
builtin-show-ref.c -rw-r--r-- 6.1 KB
builtin-stripspace.c -rw-r--r-- 1.9 KB
builtin-symbolic-ref.c -rw-r--r-- 1.3 KB
builtin-tag.c -rw-r--r-- 11.1 KB
builtin-tar-tree.c -rw-r--r-- 2.3 KB
builtin-unpack-objects.c -rw-r--r-- 12.9 KB
builtin-update-index.c -rw-r--r-- 19.2 KB
builtin-update-ref.c -rw-r--r-- 1.6 KB
builtin-update-server-info.c -rw-r--r-- 591 bytes
builtin-upload-archive.c -rw-r--r-- 4.1 KB
builtin-verify-pack.c -rw-r--r-- 4.1 KB
builtin-verify-tag.c -rw-r--r-- 2.7 KB
builtin-write-tree.c -rw-r--r-- 1.5 KB
builtin.h -rw-r--r-- 7.4 KB
bundle.c -rw-r--r-- 10.4 KB
bundle.h -rw-r--r-- 627 bytes
cache-tree.c -rw-r--r-- 15.6 KB
cache-tree.h -rw-r--r-- 1.4 KB
cache.h -rw-r--r-- 34.8 KB
check-builtins.sh -rwxr-xr-x 588 bytes
check-racy.c -rw-r--r-- 538 bytes
check_bindir -rwxr-xr-x 369 bytes
color.c -rw-r--r-- 4.5 KB
color.h -rw-r--r-- 1.1 KB
combine-diff.c -rw-r--r-- 27.7 KB
command-list.txt -rw-r--r-- 7.5 KB
commit.c -rw-r--r-- 17.5 KB
commit.h -rw-r--r-- 4.8 KB
config.c -rw-r--r-- 29.3 KB
config.mak.in -rw-r--r-- 1.5 KB
configure.ac -rw-r--r-- 22.0 KB
connect.c -rw-r--r-- 14.0 KB
convert.c -rw-r--r-- 14.1 KB
copy.c -rw-r--r-- 1.6 KB
csum-file.c -rw-r--r-- 2.5 KB
csum-file.h -rw-r--r-- 761 bytes
ctype.c -rw-r--r-- 874 bytes
daemon.c -rw-r--r-- 25.2 KB
date.c -rw-r--r-- 21.7 KB
decorate.c -rw-r--r-- 1.8 KB
decorate.h -rw-r--r-- 400 bytes
delta.h -rw-r--r-- 3.4 KB
diff-delta.c -rw-r--r-- 15.3 KB
diff-lib.c -rw-r--r-- 12.9 KB
diff-no-index.c -rw-r--r-- 6.1 KB
diff.c -rw-r--r-- 92.8 KB
diff.h -rw-r--r-- 8.8 KB
diffcore-break.c -rw-r--r-- 8.6 KB
diffcore-delta.c -rw-r--r-- 5.3 KB
diffcore-order.c -rw-r--r-- 2.2 KB
diffcore-pickaxe.c -rw-r--r-- 3.2 KB
diffcore-rename.c -rw-r--r-- 16.8 KB
diffcore.h -rw-r--r-- 4.0 KB
dir.c -rw-r--r-- 21.7 KB
dir.h -rw-r--r-- 2.5 KB
editor.c -rw-r--r-- 1.2 KB
entry.c -rw-r--r-- 6.0 KB
environment.c -rw-r--r-- 4.7 KB
exec_cmd.c -rw-r--r-- 3.3 KB
exec_cmd.h -rw-r--r-- 487 bytes
fast-import.c -rw-r--r-- 62.7 KB
fetch-pack.h -rw-r--r-- 460 bytes
fixup-builtins -rwxr-xr-x 432 bytes
fsck.c -rw-r--r-- 8.0 KB
fsck.h -rw-r--r-- 1023 bytes
generate-cmdlist.sh -rwxr-xr-x 443 bytes
git-add--interactive.perl -rwxr-xr-x 34.4 KB
git-am.sh -rwxr-xr-x 17.3 KB
git-archimport.perl -rwxr-xr-x 36.0 KB
git-bisect.sh -rwxr-xr-x 9.9 KB
git-compat-util.h -rw-r--r-- 11.3 KB
git-cvsexportcommit.perl -rwxr-xr-x 12.4 KB
git-cvsimport.perl -rwxr-xr-x 27.8 KB
git-cvsserver.perl -rwxr-xr-x 113.7 KB
git-difftool--helper.sh -rwxr-xr-x 1.6 KB
git-difftool.perl -rwxr-xr-x 2.0 KB
git-filter-branch.sh -rwxr-xr-x 11.5 KB
git-instaweb.sh -rwxr-xr-x 10.4 KB
git-lost-found.sh -rwxr-xr-x 554 bytes
git-merge-octopus.sh -rwxr-xr-x 2.0 KB
git-merge-one-file.sh -rwxr-xr-x 3.5 KB
git-merge-resolve.sh -rwxr-xr-x 944 bytes
git-mergetool--lib.sh -rw-r--r-- 8.7 KB
git-mergetool.sh -rwxr-xr-x 6.0 KB
git-parse-remote.sh -rwxr-xr-x 1.9 KB
git-pull.sh -rwxr-xr-x 6.4 KB
git-quiltimport.sh -rwxr-xr-x 3.3 KB
git-rebase--interactive.sh -rwxr-xr-x 18.4 KB
git-rebase.sh -rwxr-xr-x 13.5 KB
git-relink.perl -rwxr-xr-x 4.0 KB
git-repack.sh -rwxr-xr-x 4.4 KB
git-request-pull.sh -rwxr-xr-x 1.6 KB
git-send-email.perl -rwxr-xr-x 32.6 KB
git-sh-setup.sh -rwxr-xr-x 4.2 KB
git-stash.sh -rwxr-xr-x 8.5 KB
git-submodule.sh -rwxr-xr-x 16.8 KB
git-svn.perl -rwxr-xr-x 159.7 KB
git-web--browse.sh -rwxr-xr-x 3.9 KB
git.c -rw-r--r-- 14.2 KB
git.spec.in -rw-r--r-- 9.6 KB
graph.c -rw-r--r-- 34.6 KB
graph.h -rw-r--r-- 2.6 KB
grep.c -rw-r--r-- 17.4 KB
grep.h -rw-r--r-- 2.0 KB
hash-object.c -rw-r--r-- 3.6 KB
hash.c -rw-r--r-- 2.5 KB
hash.h -rw-r--r-- 1.1 KB
help.c -rw-r--r-- 8.3 KB
help.h -rw-r--r-- 751 bytes
http-fetch.c -rw-r--r-- 2.1 KB
http-push.c -rw-r--r-- 53.5 KB
http-walker.c -rw-r--r-- 13.7 KB
http.c -rw-r--r-- 30.0 KB
http.h -rw-r--r-- 5.3 KB
ident.c -rw-r--r-- 5.9 KB
imap-send.c -rw-r--r-- 33.1 KB
index-pack.c -rw-r--r-- 26.7 KB
levenshtein.c -rw-r--r-- 2.5 KB
levenshtein.h -rw-r--r-- 201 bytes
list-objects.c -rw-r--r-- 4.6 KB
list-objects.h -rw-r--r-- 422 bytes
ll-merge.c -rw-r--r-- 8.8 KB
ll-merge.h -rw-r--r-- 304 bytes
lockfile.c -rw-r--r-- 6.2 KB
log-tree.c -rw-r--r-- 13.9 KB
log-tree.h -rw-r--r-- 783 bytes
mailmap.c -rw-r--r-- 6.6 KB
mailmap.h -rw-r--r-- 350 bytes
match-trees.c -rw-r--r-- 7.1 KB
merge-file.c -rw-r--r-- 2.4 KB
merge-index.c -rw-r--r-- 2.2 KB
merge-recursive.c -rw-r--r-- 38.0 KB
merge-recursive.h -rw-r--r-- 1.2 KB
merge-tree.c -rw-r--r-- 8.1 KB
mktag.c -rw-r--r-- 5.2 KB
name-hash.c -rw-r--r-- 2.5 KB
object.c -rw-r--r-- 6.1 KB
object.h -rw-r--r-- 2.7 KB
pack-check.c -rw-r--r-- 4.5 KB
pack-redundant.c -rw-r--r-- 14.9 KB
pack-refs.c -rw-r--r-- 2.8 KB
pack-refs.h -rw-r--r-- 465 bytes
pack-revindex.c -rw-r--r-- 4.0 KB
pack-revindex.h -rw-r--r-- 223 bytes
pack-write.c -rw-r--r-- 7.3 KB
pack.h -rw-r--r-- 2.2 KB
pager.c -rw-r--r-- 1.9 KB
parse-options.c -rw-r--r-- 15.3 KB
parse-options.h -rw-r--r-- 6.9 KB
patch-delta.c -rw-r--r-- 2.2 KB
patch-id.c -rw-r--r-- 1.6 KB
patch-ids.c -rw-r--r-- 2.5 KB
patch-ids.h -rw-r--r-- 490 bytes
path.c -rw-r--r-- 12.6 KB
pkt-line.c -rw-r--r-- 2.4 KB
pkt-line.h -rw-r--r-- 348 bytes
preload-index.c -rw-r--r-- 2.3 KB
pretty.c -rw-r--r-- 23.6 KB
progress.c -rw-r--r-- 6.3 KB
progress.h -rw-r--r-- 504 bytes
quote.c -rw-r--r-- 10.1 KB
quote.h -rw-r--r-- 2.6 KB
reachable.c -rw-r--r-- 5.6 KB
reachable.h -rw-r--r-- 127 bytes
read-cache.c -rw-r--r-- 45.3 KB
reflog-walk.c -rw-r--r-- 6.7 KB
reflog-walk.h -rw-r--r-- 416 bytes
refs.c -rw-r--r-- 42.1 KB
refs.h -rw-r--r-- 3.7 KB
remote-curl.c -rw-r--r-- 2.9 KB
remote.c -rw-r--r-- 37.5 KB
remote.h -rw-r--r-- 3.8 KB
replace_object.c -rw-r--r-- 2.6 KB
rerere.c -rw-r--r-- 9.3 KB
rerere.h -rw-r--r-- 259 bytes
revision.c -rw-r--r-- 48.8 KB
revision.h -rw-r--r-- 4.2 KB
run-command.c -rw-r--r-- 8.5 KB
run-command.h -rw-r--r-- 2.6 KB
send-pack.h -rw-r--r-- 355 bytes
server-info.c -rw-r--r-- 5.2 KB
setup.c -rw-r--r-- 12.7 KB
sha1-lookup.c -rw-r--r-- 7.8 KB
sha1-lookup.h -rw-r--r-- 403 bytes
sha1_file.c -rw-r--r-- 65.0 KB
sha1_name.c -rw-r--r-- 19.6 KB
shallow.c -rw-r--r-- 2.3 KB
shell.c -rw-r--r-- 2.2 KB
shortlog.h -rw-r--r-- 450 bytes
show-index.c -rw-r--r-- 2.1 KB
sideband.c -rw-r--r-- 3.3 KB
sideband.h -rw-r--r-- 326 bytes
sigchain.c -rw-r--r-- 969 bytes
sigchain.h -rw-r--r-- 215 bytes
strbuf.c -rw-r--r-- 7.7 KB
strbuf.h -rw-r--r-- 4.9 KB
string-list.c -rw-r--r-- 4.2 KB
string-list.h -rw-r--r-- 1.7 KB
symlinks.c -rw-r--r-- 8.6 KB
tag.c -rw-r--r-- 2.7 KB
tag.h -rw-r--r-- 471 bytes
tar.h -rw-r--r-- 644 bytes
test-chmtime.c -rw-r--r-- 2.6 KB
test-ctype.c -rw-r--r-- 1.4 KB
test-date.c -rw-r--r-- 1.3 KB
test-delta.c -rw-r--r-- 1.8 KB
test-dump-cache-tree.c -rw-r--r-- 1.5 KB
test-genrandom.c -rw-r--r-- 722 bytes
test-match-trees.c -rw-r--r-- 588 bytes
test-parse-options.c -rw-r--r-- 3.0 KB
test-path-utils.c -rw-r--r-- 872 bytes
test-sha1.c -rw-r--r-- 816 bytes
test-sha1.sh -rwxr-xr-x 1.9 KB
test-sigchain.c -rw-r--r-- 344 bytes
thread-utils.c -rw-r--r-- 965 bytes
thread-utils.h -rw-r--r-- 109 bytes
trace.c -rw-r--r-- 3.5 KB
transport-helper.c -rw-r--r-- 3.8 KB
transport.c -rw-r--r-- 24.8 KB
transport.h -rw-r--r-- 2.7 KB
tree-diff.c -rw-r--r-- 11.9 KB
tree-walk.c -rw-r--r-- 5.3 KB
tree-walk.h -rw-r--r-- 1.7 KB
tree.c -rw-r--r-- 7.0 KB
tree.h -rw-r--r-- 883 bytes
unimplemented.sh -rw-r--r-- 100 bytes
unpack-file.c -rw-r--r-- 841 bytes
unpack-trees.c -rw-r--r-- 24.8 KB
unpack-trees.h -rw-r--r-- 1.4 KB
upload-pack.c -rw-r--r-- 18.3 KB
usage.c -rw-r--r-- 2.3 KB
userdiff.c -rw-r--r-- 6.0 KB
userdiff.h -rw-r--r-- 477 bytes
utf8.c -rw-r--r-- 11.6 KB
utf8.h -rw-r--r-- 580 bytes
var.c -rw-r--r-- 1.4 KB
walker.c -rw-r--r-- 7.2 KB
walker.h -rw-r--r-- 1.1 KB
wrapper.c -rw-r--r-- 6.1 KB
write_or_die.c -rw-r--r-- 2.0 KB
ws.c -rw-r--r-- 7.9 KB
wt-status.c -rw-r--r-- 15.5 KB
wt-status.h -rw-r--r-- 1.1 KB
xdiff-interface.c -rw-r--r-- 7.9 KB
xdiff-interface.h -rw-r--r-- 1.1 KB

README

back to top