Revision 838f9a15667cfefa9e645c26627ce81ce7599915 authored by Thomas Rast on 03 August 2013, 10:36:15 UTC, committed by Junio C Hamano on 05 August 2013, 15:27:00 UTC
The reflog walking logic (git log -g) replaces the true parent list with the preceding commit in the reflog. This results in bogus commit diffs when combined with options such as -p; the diff is against the reflog predecessor, not the parent of the commit. Save the true parents on the side, extending the functions from the previous commit. The diff logic picks them up and uses them to show the correct diffs. We do have to be somewhat careful about repeated calling of save_parents(), since the reflog may list a commit more than once. We now store (commit_list*)-1 to distinguish the "not saved yet" and "root commit" cases. This lets us preserve an empty parent list even if save_parents() is repeatedly called. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 53d00b3
File | Mode | Size |
---|---|---|
Documentation | ||
block-sha1 | ||
builtin | ||
compat | ||
contrib | ||
git-gui | ||
git_remote_helpers | ||
gitk-git | ||
gitweb | ||
mergetools | ||
perl | ||
po | ||
ppc | ||
t | ||
templates | ||
vcs-svn | ||
xdiff | ||
.gitattributes | -rw-r--r-- | 105 bytes |
.gitignore | -rw-r--r-- | 3.5 KB |
.mailmap | -rw-r--r-- | 11.9 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 768 bytes |
INSTALL | -rw-r--r-- | 8.5 KB |
LGPL-2.1 | -rw-r--r-- | 26.2 KB |
Makefile | -rw-r--r-- | 75.1 KB |
README | -rw-r--r-- | 2.6 KB |
RelNotes | l--------- | 32 bytes |
abspath.c | -rw-r--r-- | 5.7 KB |
aclocal.m4 | -rw-r--r-- | 1.4 KB |
advice.c | -rw-r--r-- | 3.3 KB |
advice.h | -rw-r--r-- | 966 bytes |
alias.c | -rw-r--r-- | 1.7 KB |
alloc.c | -rw-r--r-- | 1.6 KB |
archive-tar.c | -rw-r--r-- | 11.0 KB |
archive-zip.c | -rw-r--r-- | 12.1 KB |
archive.c | -rw-r--r-- | 11.9 KB |
archive.h | -rw-r--r-- | 1.3 KB |
argv-array.c | -rw-r--r-- | 1.8 KB |
argv-array.h | -rw-r--r-- | 696 bytes |
attr.c | -rw-r--r-- | 19.2 KB |
attr.h | -rw-r--r-- | 1.6 KB |
base85.c | -rw-r--r-- | 2.8 KB |
bisect.c | -rw-r--r-- | 23.6 KB |
bisect.h | -rw-r--r-- | 644 bytes |
blob.c | -rw-r--r-- | 565 bytes |
blob.h | -rw-r--r-- | 664 bytes |
branch.c | -rw-r--r-- | 8.4 KB |
branch.h | -rw-r--r-- | 1.9 KB |
builtin.h | -rw-r--r-- | 8.5 KB |
bulk-checkin.c | -rw-r--r-- | 7.0 KB |
bulk-checkin.h | -rw-r--r-- | 343 bytes |
bundle.c | -rw-r--r-- | 11.1 KB |
bundle.h | -rw-r--r-- | 707 bytes |
cache-tree.c | -rw-r--r-- | 16.6 KB |
cache-tree.h | -rw-r--r-- | 1.5 KB |
cache.h | -rw-r--r-- | 48.7 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-- | 5.2 KB |
color.h | -rw-r--r-- | 3.1 KB |
column.c | -rw-r--r-- | 10.2 KB |
column.h | -rw-r--r-- | 1.4 KB |
combine-diff.c | -rw-r--r-- | 36.2 KB |
command-list.txt | -rw-r--r-- | 8.2 KB |
commit-slab.h | -rw-r--r-- | 2.9 KB |
commit.c | -rw-r--r-- | 37.8 KB |
commit.h | -rw-r--r-- | 9.0 KB |
config.c | -rw-r--r-- | 41.9 KB |
config.mak.in | -rw-r--r-- | 540 bytes |
config.mak.uname | -rw-r--r-- | 15.3 KB |
configure.ac | -rw-r--r-- | 32.1 KB |
connect.c | -rw-r--r-- | 14.9 KB |
connected.c | -rw-r--r-- | 2.6 KB |
connected.h | -rw-r--r-- | 818 bytes |
convert.c | -rw-r--r-- | 29.2 KB |
convert.h | -rw-r--r-- | 2.2 KB |
copy.c | -rw-r--r-- | 1.6 KB |
credential-cache--daemon.c | -rw-r--r-- | 5.9 KB |
credential-cache.c | -rw-r--r-- | 2.9 KB |
credential-store.c | -rw-r--r-- | 4.0 KB |
credential.c | -rw-r--r-- | 7.6 KB |
credential.h | -rw-r--r-- | 822 bytes |
csum-file.c | -rw-r--r-- | 4.0 KB |
csum-file.h | -rw-r--r-- | 1.1 KB |
ctype.c | -rw-r--r-- | 2.6 KB |
daemon.c | -rw-r--r-- | 30.5 KB |
date.c | -rw-r--r-- | 25.0 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.5 KB |
diff-lib.c | -rw-r--r-- | 14.1 KB |
diff-no-index.c | -rw-r--r-- | 6.3 KB |
diff.c | -rw-r--r-- | 132.3 KB |
diff.h | -rw-r--r-- | 11.1 KB |
diffcore-break.c | -rw-r--r-- | 8.8 KB |
diffcore-delta.c | -rw-r--r-- | 5.4 KB |
diffcore-order.c | -rw-r--r-- | 2.2 KB |
diffcore-pickaxe.c | -rw-r--r-- | 6.4 KB |
diffcore-rename.c | -rw-r--r-- | 18.6 KB |
diffcore.h | -rw-r--r-- | 4.4 KB |
dir.c | -rw-r--r-- | 39.9 KB |
dir.h | -rw-r--r-- | 6.4 KB |
editor.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 6.9 KB |
environment.c | -rw-r--r-- | 7.5 KB |
exec_cmd.c | -rw-r--r-- | 3.2 KB |
exec_cmd.h | -rw-r--r-- | 509 bytes |
fast-import.c | -rw-r--r-- | 87.4 KB |
fetch-pack.c | -rw-r--r-- | 24.3 KB |
fetch-pack.h | -rw-r--r-- | 808 bytes |
fmt-merge-msg.h | -rw-r--r-- | 187 bytes |
fsck.c | -rw-r--r-- | 10.1 KB |
fsck.h | -rw-r--r-- | 1.0 KB |
generate-cmdlist.sh | -rwxr-xr-x | 433 bytes |
gettext.c | -rw-r--r-- | 4.1 KB |
gettext.h | -rw-r--r-- | 1.4 KB |
git-add--interactive.perl | -rwxr-xr-x | 35.9 KB |
git-am.sh | -rwxr-xr-x | 22.5 KB |
git-archimport.perl | -rwxr-xr-x | 36.0 KB |
git-bisect.sh | -rwxr-xr-x | 11.7 KB |
git-compat-util.h | -rw-r--r-- | 18.0 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.6 KB |
git-cvsimport.perl | -rwxr-xr-x | 31.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 158.5 KB |
git-difftool--helper.sh | -rwxr-xr-x | 1.9 KB |
git-difftool.perl | -rwxr-xr-x | 13.3 KB |
git-filter-branch.sh | -rwxr-xr-x | 11.3 KB |
git-instaweb.sh | -rwxr-xr-x | 17.8 KB |
git-lost-found.sh | -rwxr-xr-x | 554 bytes |
git-merge-octopus.sh | -rwxr-xr-x | 2.2 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.4 KB |
git-merge-resolve.sh | -rwxr-xr-x | 944 bytes |
git-mergetool--lib.sh | -rw-r--r-- | 7.4 KB |
git-mergetool.sh | -rwxr-xr-x | 8.2 KB |
git-p4.py | -rwxr-xr-x | 123.2 KB |
git-parse-remote.sh | -rw-r--r-- | 2.1 KB |
git-pull.sh | -rwxr-xr-x | 8.0 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.3 KB |
git-rebase--am.sh | -rw-r--r-- | 1.4 KB |
git-rebase--interactive.sh | -rw-r--r-- | 25.9 KB |
git-rebase--merge.sh | -rw-r--r-- | 3.0 KB |
git-rebase.sh | -rwxr-xr-x | 14.5 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-remote-testgit.sh | -rwxr-xr-x | 2.4 KB |
git-remote-testpy.py | -rw-r--r-- | 7.2 KB |
git-repack.sh | -rwxr-xr-x | 4.9 KB |
git-request-pull.sh | -rwxr-xr-x | 3.7 KB |
git-send-email.perl | -rwxr-xr-x | 42.8 KB |
git-sh-i18n.sh | -rw-r--r-- | 2.0 KB |
git-sh-setup.sh | -rw-r--r-- | 6.5 KB |
git-stash.sh | -rwxr-xr-x | 13.5 KB |
git-submodule.sh | -rwxr-xr-x | 31.0 KB |
git-svn.perl | -rwxr-xr-x | 59.6 KB |
git-web--browse.sh | -rwxr-xr-x | 4.3 KB |
git.c | -rw-r--r-- | 17.2 KB |
git.rc | -rw-r--r-- | 574 bytes |
git.spec.in | -rw-r--r-- | 11.1 KB |
gpg-interface.c | -rw-r--r-- | 3.7 KB |
gpg-interface.h | -rw-r--r-- | 721 bytes |
graph.c | -rw-r--r-- | 34.8 KB |
graph.h | -rw-r--r-- | 3.9 KB |
grep.c | -rw-r--r-- | 38.7 KB |
grep.h | -rw-r--r-- | 4.7 KB |
hash.c | -rw-r--r-- | 2.5 KB |
hash.h | -rw-r--r-- | 1.4 KB |
help.c | -rw-r--r-- | 11.2 KB |
help.h | -rw-r--r-- | 1.1 KB |
hex.c | -rw-r--r-- | 2.3 KB |
http-backend.c | -rw-r--r-- | 13.8 KB |
http-fetch.c | -rw-r--r-- | 2.3 KB |
http-push.c | -rw-r--r-- | 50.5 KB |
http-walker.c | -rw-r--r-- | 14.0 KB |
http.c | -rw-r--r-- | 34.5 KB |
http.h | -rw-r--r-- | 5.3 KB |
ident.c | -rw-r--r-- | 9.3 KB |
imap-send.c | -rw-r--r-- | 33.3 KB |
kwset.c | -rw-r--r-- | 20.5 KB |
kwset.h | -rw-r--r-- | 2.6 KB |
levenshtein.c | -rw-r--r-- | 2.5 KB |
levenshtein.h | -rw-r--r-- | 203 bytes |
line-log.c | -rw-r--r-- | 30.9 KB |
line-log.h | -rw-r--r-- | 1.3 KB |
line-range.c | -rw-r--r-- | 5.4 KB |
line-range.h | -rw-r--r-- | 1.2 KB |
list-objects.c | -rw-r--r-- | 5.5 KB |
list-objects.h | -rw-r--r-- | 429 bytes |
ll-merge.c | -rw-r--r-- | 10.2 KB |
ll-merge.h | -rw-r--r-- | 567 bytes |
lockfile.c | -rw-r--r-- | 6.3 KB |
log-tree.c | -rw-r--r-- | 22.0 KB |
log-tree.h | -rw-r--r-- | 1015 bytes |
mailmap.c | -rw-r--r-- | 8.8 KB |
mailmap.h | -rw-r--r-- | 271 bytes |
match-trees.c | -rw-r--r-- | 8.2 KB |
merge-blobs.c | -rw-r--r-- | 2.6 KB |
merge-blobs.h | -rw-r--r-- | 194 bytes |
merge-recursive.c | -rw-r--r-- | 58.1 KB |
merge-recursive.h | -rw-r--r-- | 1.6 KB |
merge.c | -rw-r--r-- | 2.8 KB |
mergesort.c | -rw-r--r-- | 1.5 KB |
mergesort.h | -rw-r--r-- | 574 bytes |
name-hash.c | -rw-r--r-- | 7.6 KB |
notes-cache.c | -rw-r--r-- | 2.2 KB |
notes-cache.h | -rw-r--r-- | 500 bytes |
notes-merge.c | -rw-r--r-- | 22.6 KB |
notes-merge.h | -rw-r--r-- | 2.9 KB |
notes-utils.c | -rw-r--r-- | 4.4 KB |
notes-utils.h | -rw-r--r-- | 1.1 KB |
notes.c | -rw-r--r-- | 36.1 KB |
notes.h | -rw-r--r-- | 11.2 KB |
object.c | -rw-r--r-- | 8.0 KB |
object.h | -rw-r--r-- | 3.5 KB |
pack-check.c | -rw-r--r-- | 5.0 KB |
pack-revindex.c | -rw-r--r-- | 7.0 KB |
pack-revindex.h | -rw-r--r-- | 223 bytes |
pack-write.c | -rw-r--r-- | 10.4 KB |
pack.h | -rw-r--r-- | 3.2 KB |
pager.c | -rw-r--r-- | 3.5 KB |
parse-options-cb.c | -rw-r--r-- | 2.7 KB |
parse-options.c | -rw-r--r-- | 15.4 KB |
parse-options.h | -rw-r--r-- | 8.9 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-ids.c | -rw-r--r-- | 2.5 KB |
patch-ids.h | -rw-r--r-- | 490 bytes |
path.c | -rw-r--r-- | 16.4 KB |
pathspec.c | -rw-r--r-- | 3.0 KB |
pathspec.h | -rw-r--r-- | 372 bytes |
pkt-line.c | -rw-r--r-- | 4.5 KB |
pkt-line.h | -rw-r--r-- | 3.0 KB |
preload-index.c | -rw-r--r-- | 2.4 KB |
pretty.c | -rw-r--r-- | 42.9 KB |
prio-queue.c | -rw-r--r-- | 1.9 KB |
prio-queue.h | -rw-r--r-- | 1.4 KB |
progress.c | -rw-r--r-- | 6.1 KB |
progress.h | -rw-r--r-- | 504 bytes |
prompt.c | -rw-r--r-- | 1.4 KB |
prompt.h | -rw-r--r-- | 207 bytes |
quote.c | -rw-r--r-- | 10.3 KB |
quote.h | -rw-r--r-- | 2.8 KB |
reachable.c | -rw-r--r-- | 6.2 KB |
reachable.h | -rw-r--r-- | 163 bytes |
read-cache.c | -rw-r--r-- | 52.8 KB |
reflog-walk.c | -rw-r--r-- | 8.3 KB |
reflog-walk.h | -rw-r--r-- | 773 bytes |
refs.c | -rw-r--r-- | 89.1 KB |
refs.h | -rw-r--r-- | 8.2 KB |
remote-curl.c | -rw-r--r-- | 22.0 KB |
remote-testsvn.c | -rw-r--r-- | 8.5 KB |
remote.c | -rw-r--r-- | 47.3 KB |
remote.h | -rw-r--r-- | 4.5 KB |
replace_object.c | -rw-r--r-- | 2.7 KB |
rerere.c | -rw-r--r-- | 18.0 KB |
rerere.h | -rw-r--r-- | 778 bytes |
resolve-undo.c | -rw-r--r-- | 4.3 KB |
resolve-undo.h | -rw-r--r-- | 602 bytes |
revision.c | -rw-r--r-- | 85.1 KB |
revision.h | -rw-r--r-- | 7.3 KB |
run-command.c | -rw-r--r-- | 16.7 KB |
run-command.h | -rw-r--r-- | 2.9 KB |
send-pack.c | -rw-r--r-- | 7.6 KB |
send-pack.h | -rw-r--r-- | 403 bytes |
sequencer.c | -rw-r--r-- | 32.2 KB |
sequencer.h | -rw-r--r-- | 1020 bytes |
server-info.c | -rw-r--r-- | 5.1 KB |
setup.c | -rw-r--r-- | 24.2 KB |
sh-i18n--envsubst.c | -rw-r--r-- | 10.7 KB |
sha1-array.c | -rw-r--r-- | 1.2 KB |
sha1-array.h | -rw-r--r-- | 583 bytes |
sha1-lookup.c | -rw-r--r-- | 7.8 KB |
sha1-lookup.h | -rw-r--r-- | 403 bytes |
sha1_file.c | -rw-r--r-- | 77.2 KB |
sha1_name.c | -rw-r--r-- | 34.9 KB |
shallow.c | -rw-r--r-- | 3.4 KB |
shell.c | -rw-r--r-- | 5.2 KB |
shortlog.h | -rw-r--r-- | 463 bytes |
show-index.c | -rw-r--r-- | 2.2 KB |
sideband.c | -rw-r--r-- | 3.4 KB |
sideband.h | -rw-r--r-- | 262 bytes |
sigchain.c | -rw-r--r-- | 969 bytes |
sigchain.h | -rw-r--r-- | 215 bytes |
strbuf.c | -rw-r--r-- | 11.6 KB |
strbuf.h | -rw-r--r-- | 6.1 KB |
streaming.c | -rw-r--r-- | 11.7 KB |
streaming.h | -rw-r--r-- | 504 bytes |
string-list.c | -rw-r--r-- | 7.4 KB |
string-list.h | -rw-r--r-- | 4.9 KB |
submodule.c | -rw-r--r-- | 27.8 KB |
submodule.h | -rw-r--r-- | 1.6 KB |
symlinks.c | -rw-r--r-- | 9.4 KB |
tag.c | -rw-r--r-- | 3.9 KB |
tag.h | -rw-r--r-- | 576 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-chmtime.c | -rw-r--r-- | 2.6 KB |
test-ctype.c | -rw-r--r-- | 918 bytes |
test-date.c | -rw-r--r-- | 1.4 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-index-version.c | -rw-r--r-- | 258 bytes |
test-line-buffer.c | -rw-r--r-- | 2.1 KB |
test-match-trees.c | -rw-r--r-- | 588 bytes |
test-mergesort.c | -rw-r--r-- | 924 bytes |
test-mktemp.c | -rw-r--r-- | 269 bytes |
test-parse-options.c | -rw-r--r-- | 3.5 KB |
test-path-utils.c | -rw-r--r-- | 3.5 KB |
test-prio-queue.c | -rw-r--r-- | 621 bytes |
test-read-cache.c | -rw-r--r-- | 202 bytes |
test-regex.c | -rw-r--r-- | 534 bytes |
test-revision-walking.c | -rw-r--r-- | 1.4 KB |
test-run-command.c | -rw-r--r-- | 840 bytes |
test-scrap-cache-tree.c | -rw-r--r-- | 395 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 |
test-string-list.c | -rw-r--r-- | 2.5 KB |
test-subprocess.c | -rw-r--r-- | 401 bytes |
test-svn-fe.c | -rw-r--r-- | 1.3 KB |
test-wildmatch.c | -rw-r--r-- | 2.7 KB |
thread-utils.c | -rw-r--r-- | 1.3 KB |
thread-utils.h | -rw-r--r-- | 209 bytes |
trace.c | -rw-r--r-- | 4.7 KB |
transport-helper.c | -rw-r--r-- | 32.1 KB |
transport.c | -rw-r--r-- | 34.2 KB |
transport.h | -rw-r--r-- | 6.5 KB |
tree-diff.c | -rw-r--r-- | 8.6 KB |
tree-walk.c | -rw-r--r-- | 17.7 KB |
tree-walk.h | -rw-r--r-- | 2.2 KB |
tree.c | -rw-r--r-- | 6.2 KB |
tree.h | -rw-r--r-- | 897 bytes |
unimplemented.sh | -rw-r--r-- | 100 bytes |
unix-socket.c | -rw-r--r-- | 2.4 KB |
unix-socket.h | -rw-r--r-- | 158 bytes |
unpack-trees.c | -rw-r--r-- | 47.9 KB |
unpack-trees.h | -rw-r--r-- | 2.2 KB |
upload-pack.c | -rw-r--r-- | 20.0 KB |
url.c | -rw-r--r-- | 2.8 KB |
url.h | -rw-r--r-- | 492 bytes |
usage.c | -rw-r--r-- | 3.3 KB |
userdiff.c | -rw-r--r-- | 9.2 KB |
userdiff.h | -rw-r--r-- | 646 bytes |
utf8.c | -rw-r--r-- | 16.4 KB |
utf8.h | -rw-r--r-- | 1.4 KB |
varint.c | -rw-r--r-- | 631 bytes |
varint.h | -rw-r--r-- | 198 bytes |
version.c | -rw-r--r-- | 651 bytes |
version.h | -rw-r--r-- | 180 bytes |
walker.c | -rw-r--r-- | 7.2 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wildmatch.c | -rw-r--r-- | 7.8 KB |
wildmatch.h | -rw-r--r-- | 346 bytes |
wrap-for-bin.sh | -rw-r--r-- | 707 bytes |
wrapper.c | -rw-r--r-- | 9.4 KB |
write_or_die.c | -rw-r--r-- | 1.9 KB |
ws.c | -rw-r--r-- | 9.6 KB |
wt-status.c | -rw-r--r-- | 39.7 KB |
wt-status.h | -rw-r--r-- | 2.5 KB |
xdiff-interface.c | -rw-r--r-- | 7.0 KB |
xdiff-interface.h | -rw-r--r-- | 944 bytes |
zlib.c | -rw-r--r-- | 6.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...