]> source.dussan.org Git - jgit.git/commitdiff
Speed up check for modifications of tracked resources 38/538/1
authorRobin Rosenberg <robin.rosenberg@dewire.com>
Sat, 10 Apr 2010 15:05:36 +0000 (17:05 +0200)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Sat, 10 Apr 2010 15:17:35 +0000 (17:17 +0200)
We only need to check file existense if some other stat returns
a value that may mean that the file does not exist. File.length() == 0
or File.lastModified() == 0 are two such properties. We use length
here.

Change-Id: If626b12e7bb4da994b5c086f6a5b7a12c187261c
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java

index 688957b95bdbc5daca9a90454d55849baa51f5eb..4ae24f5e2e47a25d860367ee362878e297f1eb80 100644 (file)
@@ -567,7 +567,12 @@ public class GitIndex {
                                return true;
 
                        File file = getFile(wd);
-                       if (!file.exists())
+                       long length = file.length();
+                       if (length == 0) {
+                               if (!file.exists())
+                                       return true;
+                       }
+                       if (length != size)
                                return true;
 
                        // JDK1.6 has file.canExecute
@@ -600,9 +605,6 @@ public class GitIndex {
                                }
                        }
 
-                       if (file.length() != size)
-                               return true;
-
                        // Git under windows only stores seconds so we round the timestamp
                        // Java gives us if it looks like the timestamp in index is seconds
                        // only. Otherwise we compare the timestamp at millisecond prevision.