]> source.dussan.org Git - jgit.git/commit
Use ANY_DIFF filter in ResolveMerger only for bare repositories 18/45718/4
authorMatthias Sohn <matthias.sohn@sap.com>
Sun, 12 Apr 2015 23:01:13 +0000 (01:01 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Sun, 10 May 2015 21:17:36 +0000 (23:17 +0200)
commit8b9623511f216027294b0cf4d2ecb7710915238a
tree1bf4b9b98eac4b9565e60002d1964cc33f317875
parent4ac7cf003b802b66d085451a5b3dc4912c56e230
Use ANY_DIFF filter in ResolveMerger only for bare repositories

As Chris pointed out change I822721c76c64e614f87a080ced2457941f53adcd
slowed down merge since ANY_DIFF filter is much less efficient than the
manual detection of diffs done in ResolveMerger.processEntry() since it
avoids unnecessary filesystem calls using the git index. Hence only set
the ANY_DIFF filter on bare repositories which don't have a working tree
to scan.

To test performance I used the setup described in Chris' comment on
change I822721c76c64e614f87a080ced2457941f53adcd and modified
ResolveMerger.mergeTrees() to not add the working tree in order to
simulate merging in a bare repository.

At least on Mac I couldn't detect a speedup, with and without the
ANY_DIFF filter merge test takes an average 0.67sec.

Change-Id: I17b3a06f369cee009490f54ad1a2deb6c145c7cf
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java