]> source.dussan.org Git - jgit.git/commit
Improve performance of persisting an index by magnitudes 35/6535/2 stable-2.0
authorChristian Halstrick <christian.halstrick@sap.com>
Thu, 28 Jun 2012 18:06:29 +0000 (11:06 -0700)
committerKevin Sawicki <kevin@github.com>
Thu, 28 Jun 2012 18:06:29 +0000 (11:06 -0700)
commitc9e507c0b9fe9a91ae65dfa8a3bcaa1f739a5686
treeefe78249a3d2d2c3e1de265d5f331f4582cca147
parent2f27d5ae12ef0dbb8c493573e389bf9f6a10f570
Improve performance of persisting an index by magnitudes

When updating smudged entries use a pathfilter to iterate only over
working tree files which have an associated smudged index entry.

Commit dac66672df0535f61a13273524d46e1e0012ca69 introduced that we
check and update smudged entries while persisting a dircache. Before
that commit adding a file to git caused  file i/o for the index file,
the object database (to store new content) and all files we wanted to
add (to read new content). After that commit we have additionally file
i/o for every file in the working tree (even ignored files).
Especially on windows iterating over the working tree can be very
time consuming. This decreased the performance of persisting a dircache
dramatically (I measured factors 4 to 10 while adding a file to linux
kernel repo). One could easily see this effect when dragging&dropping
modified files in a linux kernel repo in the egit staging view.

Change-Id: I568dec77635013cf6bb46f652d3f2b89de041c82
Signed-off-by: Kevin Sawicki <kevin@github.com>
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java