https://github.com/git/git
Revision f5184380f08c814535e7bda374e403596eef90a3 authored by Alex Riesen on 04 January 2007, 10:22:47 UTC, committed by Junio C Hamano on 10 January 2007, 22:45:20 UTC
The merge-recursive implementation in C inherited the invariant that the on-file index file is written out and later read back after any index operations and writing trees from the original Python implementation. But it was only because the original implementation worked at the scripting level. There is no need to write out the index file after handling every path. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent 2a3a3c2
Tip revision: f5184380f08c814535e7bda374e403596eef90a3 authored by Alex Riesen on 04 January 2007, 10:22:47 UTC
Speed-up recursive by flushing index only once for all entries
Speed-up recursive by flushing index only once for all entries
Tip revision: f518438
File | Mode | Size |
---|---|---|
Documentation | ||
arm | ||
compat | ||
contrib | ||
gitweb | ||
mozilla-sha1 | ||
perl | ||
ppc | ||
t | ||
templates | ||
xdiff | ||
.gitignore | -rw-r--r-- | 2.1 KB |
.mailmap | -rw-r--r-- | 1.4 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 751 bytes |
INSTALL | -rw-r--r-- | 4.1 KB |
Makefile | -rw-r--r-- | 26.7 KB |
README | -rw-r--r-- | 24.7 KB |
alloc.c | -rw-r--r-- | 1.4 KB |
archive-tar.c | -rw-r--r-- | 8.1 KB |
archive-zip.c | -rw-r--r-- | 8.8 KB |
archive.h | -rw-r--r-- | 1.1 KB |
base85.c | -rw-r--r-- | 2.9 KB |
blob.c | -rw-r--r-- | 1.2 KB |
blob.h | -rw-r--r-- | 311 bytes |
builtin-add.c | -rw-r--r-- | 4.3 KB |
builtin-annotate.c | -rw-r--r-- | 444 bytes |
builtin-apply.c | -rw-r--r-- | 66.1 KB |
builtin-archive.c | -rw-r--r-- | 5.8 KB |
builtin-blame.c | -rw-r--r-- | 46.7 KB |
builtin-branch.c | -rw-r--r-- | 10.9 KB |
builtin-cat-file.c | -rw-r--r-- | 3.2 KB |
builtin-check-ref-format.c | -rw-r--r-- | 282 bytes |
builtin-checkout-index.c | -rw-r--r-- | 7.6 KB |
builtin-commit-tree.c | -rw-r--r-- | 3.9 KB |
builtin-count-objects.c | -rw-r--r-- | 2.9 KB |
builtin-describe.c | -rw-r--r-- | 3.8 KB |
builtin-diff-files.c | -rw-r--r-- | 1.3 KB |
builtin-diff-index.c | -rw-r--r-- | 1.0 KB |
builtin-diff-stages.c | -rw-r--r-- | 2.5 KB |
builtin-diff-tree.c | -rw-r--r-- | 3.2 KB |
builtin-diff.c | -rw-r--r-- | 8.6 KB |
builtin-fmt-merge-msg.c | -rw-r--r-- | 7.7 KB |
builtin-for-each-ref.c | -rw-r--r-- | 20.4 KB |
builtin-grep.c | -rw-r--r-- | 16.3 KB |
builtin-init-db.c | -rw-r--r-- | 8.7 KB |
builtin-log.c | -rw-r--r-- | 16.0 KB |
builtin-ls-files.c | -rw-r--r-- | 11.5 KB |
builtin-ls-tree.c | -rw-r--r-- | 3.5 KB |
builtin-mailinfo.c | -rw-r--r-- | 16.7 KB |
builtin-mailsplit.c | -rw-r--r-- | 4.1 KB |
builtin-merge-file.c | -rw-r--r-- | 1.5 KB |
builtin-mv.c | -rw-r--r-- | 7.4 KB |
builtin-name-rev.c | -rw-r--r-- | 5.4 KB |
builtin-pack-objects.c | -rw-r--r-- | 42.5 KB |
builtin-pack-refs.c | -rw-r--r-- | 2.9 KB |
builtin-prune-packed.c | -rw-r--r-- | 1.5 KB |
builtin-prune.c | -rw-r--r-- | 1.9 KB |
builtin-push.c | -rw-r--r-- | 7.1 KB |
builtin-read-tree.c | -rw-r--r-- | 6.5 KB |
builtin-reflog.c | -rw-r--r-- | 9.4 KB |
builtin-repo-config.c | -rw-r--r-- | 5.4 KB |
builtin-rerere.c | -rw-r--r-- | 10.1 KB |
builtin-rev-list.c | -rw-r--r-- | 6.4 KB |
builtin-rev-parse.c | -rw-r--r-- | 7.7 KB |
builtin-rm.c | -rw-r--r-- | 5.4 KB |
builtin-runstatus.c | -rw-r--r-- | 812 bytes |
builtin-shortlog.c | -rw-r--r-- | 7.9 KB |
builtin-show-branch.c | -rw-r--r-- | 19.2 KB |
builtin-show-ref.c | -rw-r--r-- | 5.7 KB |
builtin-stripspace.c | -rw-r--r-- | 1012 bytes |
builtin-symbolic-ref.c | -rw-r--r-- | 728 bytes |
builtin-tar-tree.c | -rw-r--r-- | 2.1 KB |
builtin-unpack-objects.c | -rw-r--r-- | 9.0 KB |
builtin-update-index.c | -rw-r--r-- | 16.6 KB |
builtin-update-ref.c | -rw-r--r-- | 1.5 KB |
builtin-upload-archive.c | -rw-r--r-- | 4.1 KB |
builtin-verify-pack.c | -rw-r--r-- | 1.7 KB |
builtin-write-tree.c | -rw-r--r-- | 2.1 KB |
builtin.h | -rw-r--r-- | 5.2 KB |
cache-tree.c | -rw-r--r-- | 12.5 KB |
cache-tree.h | -rw-r--r-- | 921 bytes |
cache.h | -rw-r--r-- | 16.1 KB |
check-builtins.sh | -rwxr-xr-x | 588 bytes |
check-racy.c | -rw-r--r-- | 517 bytes |
color.c | -rw-r--r-- | 3.2 KB |
color.h | -rw-r--r-- | 376 bytes |
combine-diff.c | -rw-r--r-- | 25.0 KB |
commit.c | -rw-r--r-- | 26.5 KB |
commit.h | -rw-r--r-- | 3.6 KB |
config.c | -rw-r--r-- | 19.3 KB |
config.mak.in | -rw-r--r-- | 906 bytes |
configure.ac | -rw-r--r-- | 10.8 KB |
connect.c | -rw-r--r-- | 17.2 KB |
convert-objects.c | -rw-r--r-- | 7.3 KB |
copy.c | -rw-r--r-- | 692 bytes |
csum-file.c | -rw-r--r-- | 2.9 KB |
csum-file.h | -rw-r--r-- | 566 bytes |
ctype.c | -rw-r--r-- | 890 bytes |
daemon.c | -rw-r--r-- | 25.8 KB |
date.c | -rw-r--r-- | 17.0 KB |
delta.h | -rw-r--r-- | 3.2 KB |
diff-delta.c | -rw-r--r-- | 13.8 KB |
diff-lib.c | -rw-r--r-- | 8.8 KB |
diff.c | -rw-r--r-- | 70.3 KB |
diff.h | -rw-r--r-- | 6.7 KB |
diffcore-break.c | -rw-r--r-- | 8.5 KB |
diffcore-delta.c | -rw-r--r-- | 5.1 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-- | 13.0 KB |
diffcore.h | -rw-r--r-- | 3.7 KB |
dir.c | -rw-r--r-- | 9.5 KB |
dir.h | -rw-r--r-- | 1.7 KB |
dump-cache-tree.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 4.1 KB |
environment.c | -rw-r--r-- | 2.4 KB |
exec_cmd.c | -rw-r--r-- | 2.8 KB |
exec_cmd.h | -rw-r--r-- | 295 bytes |
fetch-pack.c | -rw-r--r-- | 16.3 KB |
fetch.c | -rw-r--r-- | 6.6 KB |
fetch.h | -rw-r--r-- | 1.6 KB |
fsck-objects.c | -rw-r--r-- | 14.0 KB |
generate-cmdlist.sh | -rwxr-xr-x | 547 bytes |
git-add--interactive.perl | -rwxr-xr-x | 15.9 KB |
git-am.sh | -rwxr-xr-x | 11.0 KB |
git-applymbox.sh | -rwxr-xr-x | 2.8 KB |
git-applypatch.sh | -rwxr-xr-x | 5.4 KB |
git-archimport.perl | -rwxr-xr-x | 34.2 KB |
git-bisect.sh | -rwxr-xr-x | 5.7 KB |
git-checkout.sh | -rwxr-xr-x | 5.4 KB |
git-clean.sh | -rwxr-xr-x | 1.5 KB |
git-clone.sh | -rwxr-xr-x | 9.9 KB |
git-commit.sh | -rwxr-xr-x | 13.2 KB |
git-compat-util.h | -rw-r--r-- | 6.1 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 7.5 KB |
git-cvsimport.perl | -rwxr-xr-x | 25.6 KB |
git-cvsserver.perl | -rwxr-xr-x | 91.2 KB |
git-fetch.sh | -rwxr-xr-x | 11.2 KB |
git-gc.sh | -rwxr-xr-x | 265 bytes |
git-instaweb.sh | -rwxr-xr-x | 5.2 KB |
git-lost-found.sh | -rwxr-xr-x | 468 bytes |
git-ls-remote.sh | -rwxr-xr-x | 2.2 KB |
git-merge-octopus.sh | -rwxr-xr-x | 2.4 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.1 KB |
git-merge-ours.sh | -rwxr-xr-x | 356 bytes |
git-merge-resolve.sh | -rwxr-xr-x | 955 bytes |
git-merge-stupid.sh | -rwxr-xr-x | 1.4 KB |
git-merge.sh | -rwxr-xr-x | 10.5 KB |
git-p4import.py | -rw-r--r-- | 10.5 KB |
git-parse-remote.sh | -rwxr-xr-x | 6.2 KB |
git-pull.sh | -rwxr-xr-x | 2.9 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.0 KB |
git-rebase.sh | -rwxr-xr-x | 8.1 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-remote.perl | -rwxr-xr-x | 5.8 KB |
git-repack.sh | -rwxr-xr-x | 2.6 KB |
git-request-pull.sh | -rwxr-xr-x | 847 bytes |
git-reset.sh | -rwxr-xr-x | 2.3 KB |
git-resolve.sh | -rwxr-xr-x | 2.7 KB |
git-revert.sh | -rwxr-xr-x | 4.2 KB |
git-send-email.perl | -rwxr-xr-x | 15.5 KB |
git-sh-setup.sh | -rwxr-xr-x | 1.1 KB |
git-svn.perl | -rwxr-xr-x | 80.3 KB |
git-svnimport.perl | -rwxr-xr-x | 24.7 KB |
git-tag.sh | -rwxr-xr-x | 2.9 KB |
git-verify-tag.sh | -rwxr-xr-x | 741 bytes |
git.c | -rw-r--r-- | 9.6 KB |
git.spec.in | -rw-r--r-- | 7.0 KB |
gitk | -rwxr-xr-x | 170.5 KB |
grep.c | -rw-r--r-- | 12.8 KB |
grep.h | -rw-r--r-- | 1.6 KB |
hash-object.c | -rw-r--r-- | 1.8 KB |
help.c | -rw-r--r-- | 4.8 KB |
http-fetch.c | -rw-r--r-- | 26.1 KB |
http-push.c | -rw-r--r-- | 66.3 KB |
http.c | -rw-r--r-- | 11.3 KB |
http.h | -rw-r--r-- | 2.5 KB |
ident.c | -rw-r--r-- | 5.5 KB |
imap-send.c | -rw-r--r-- | 28.5 KB |
index-pack.c | -rw-r--r-- | 24.7 KB |
interpolate.c | -rw-r--r-- | 2.0 KB |
interpolate.h | -rw-r--r-- | 583 bytes |
list-objects.c | -rw-r--r-- | 3.3 KB |
list-objects.h | -rw-r--r-- | 382 bytes |
local-fetch.c | -rw-r--r-- | 6.1 KB |
lockfile.c | -rw-r--r-- | 1.5 KB |
log-tree.c | -rw-r--r-- | 8.7 KB |
log-tree.h | -rw-r--r-- | 386 bytes |
merge-base.c | -rw-r--r-- | 1.1 KB |
merge-file.c | -rw-r--r-- | 2.3 KB |
merge-index.c | -rw-r--r-- | 2.7 KB |
merge-recursive.c | -rw-r--r-- | 33.8 KB |
merge-tree.c | -rw-r--r-- | 7.8 KB |
mktag.c | -rw-r--r-- | 3.9 KB |
mktree.c | -rw-r--r-- | 3.1 KB |
object-refs.c | -rw-r--r-- | 3.0 KB |
object.c | -rw-r--r-- | 5.4 KB |
object.h | -rw-r--r-- | 2.4 KB |
pack-check.c | -rw-r--r-- | 4.1 KB |
pack-redundant.c | -rw-r--r-- | 14.3 KB |
pack.h | -rw-r--r-- | 382 bytes |
pager.c | -rw-r--r-- | 974 bytes |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-id.c | -rw-r--r-- | 1.6 KB |
path-list.c | -rw-r--r-- | 2.2 KB |
path-list.h | -rw-r--r-- | 603 bytes |
path.c | -rw-r--r-- | 6.0 KB |
peek-remote.c | -rw-r--r-- | 1.3 KB |
pkt-line.c | -rw-r--r-- | 2.5 KB |
pkt-line.h | -rw-r--r-- | 348 bytes |
quote.c | -rw-r--r-- | 7.6 KB |
quote.h | -rw-r--r-- | 2.0 KB |
reachable.c | -rw-r--r-- | 4.8 KB |
reachable.h | -rw-r--r-- | 127 bytes |
read-cache.c | -rw-r--r-- | 24.9 KB |
receive-pack.c | -rw-r--r-- | 10.7 KB |
refs.c | -rw-r--r-- | 27.4 KB |
refs.h | -rw-r--r-- | 2.0 KB |
revision.c | -rw-r--r-- | 30.9 KB |
revision.h | -rw-r--r-- | 3.0 KB |
rsh.c | -rw-r--r-- | 1.7 KB |
rsh.h | -rw-r--r-- | 159 bytes |
run-command.c | -rw-r--r-- | 1.8 KB |
run-command.h | -rw-r--r-- | 594 bytes |
send-pack.c | -rw-r--r-- | 9.5 KB |
server-info.c | -rw-r--r-- | 5.1 KB |
setup.c | -rw-r--r-- | 6.1 KB |
sha1_file.c | -rw-r--r-- | 48.7 KB |
sha1_name.c | -rw-r--r-- | 12.7 KB |
shallow.c | -rw-r--r-- | 2.3 KB |
shell.c | -rw-r--r-- | 1.1 KB |
show-index.c | -rw-r--r-- | 594 bytes |
sideband.c | -rw-r--r-- | 1.9 KB |
sideband.h | -rw-r--r-- | 335 bytes |
ssh-fetch.c | -rw-r--r-- | 3.6 KB |
ssh-pull.c | -rw-r--r-- | 154 bytes |
ssh-push.c | -rw-r--r-- | 155 bytes |
ssh-upload.c | -rw-r--r-- | 2.8 KB |
strbuf.c | -rw-r--r-- | 768 bytes |
strbuf.h | -rw-r--r-- | 216 bytes |
tag.c | -rw-r--r-- | 2.6 KB |
tag.h | -rw-r--r-- | 471 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-date.c | -rw-r--r-- | 378 bytes |
test-delta.c | -rw-r--r-- | 1.7 KB |
test-sha1.c | -rw-r--r-- | 815 bytes |
test-sha1.sh | -rwxr-xr-x | 1.9 KB |
trace.c | -rw-r--r-- | 3.9 KB |
tree-diff.c | -rw-r--r-- | 6.1 KB |
tree-walk.c | -rw-r--r-- | 4.4 KB |
tree-walk.h | -rw-r--r-- | 863 bytes |
tree.c | -rw-r--r-- | 5.0 KB |
tree.h | -rw-r--r-- | 860 bytes |
unpack-file.c | -rw-r--r-- | 820 bytes |
unpack-trees.c | -rw-r--r-- | 18.2 KB |
unpack-trees.h | -rw-r--r-- | 890 bytes |
update-server-info.c | -rw-r--r-- | 457 bytes |
upload-pack.c | -rw-r--r-- | 16.0 KB |
usage.c | -rw-r--r-- | 1.9 KB |
utf8.c | -rw-r--r-- | 9.5 KB |
utf8.h | -rw-r--r-- | 389 bytes |
var.c | -rw-r--r-- | 1.3 KB |
write_or_die.c | -rw-r--r-- | 1.9 KB |
wt-status.c | -rw-r--r-- | 8.4 KB |
wt-status.h | -rw-r--r-- | 566 bytes |
xdiff-interface.c | -rw-r--r-- | 2.6 KB |
xdiff-interface.h | -rw-r--r-- | 500 bytes |
Computing file changes ...