]> source.dussan.org Git - jgit.git/commitdiff
IndexDiff: Remove unnecessary changesExist flag 75/2075/2
authorShawn O. Pearce <spearce@spearce.org>
Wed, 8 Dec 2010 03:11:05 +0000 (19:11 -0800)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 8 Dec 2010 18:03:20 +0000 (10:03 -0800)
Instead of setting a boolean when a difference record is found, return
false from diff() only if all of the collections are empty.  When all
of them are empty, no difference was found.

Change-Id: I555fef37adb764ce253481751071c53ad12cf416
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java

index 3c63e251b333240d21862bbde58b8146be8fcf19..0ab096c3a39d8e8d8b035e6d2e137df00bea5c99 100644 (file)
@@ -168,7 +168,6 @@ public class IndexDiff {
         * @throws IOException
         */
        public boolean diff() throws IOException {
-               boolean changesExist = false;
                dirCache = repository.readDirCache();
 
                TreeWalk treeWalk = new TreeWalk(repository);
@@ -202,12 +201,10 @@ public class IndexDiff {
                                                        != dirCacheIterator.getEntryRawMode()) {
                                                // in repo, in index, content diff => changed
                                                changed.add(treeWalk.getPathString());
-                                               changesExist = true;
                                        }
                                } else {
                                        // in repo, not in index => removed
                                        removed.add(treeWalk.getPathString());
-                                       changesExist = true;
                                        if (workingTreeIterator != null)
                                                untracked.add(treeWalk.getPathString());
                                }
@@ -215,13 +212,11 @@ public class IndexDiff {
                                if (dirCacheIterator != null) {
                                        // not in repo, in index => added
                                        added.add(treeWalk.getPathString());
-                                       changesExist = true;
                                } else {
                                        // not in repo, not in index => untracked
                                        if (workingTreeIterator != null
                                                        && !workingTreeIterator.isEntryIgnored()) {
                                                untracked.add(treeWalk.getPathString());
-                                               changesExist = true;
                                        }
                                }
                        }
@@ -230,18 +225,22 @@ public class IndexDiff {
                                if (workingTreeIterator == null) {
                                        // in index, not in workdir => missing
                                        missing.add(treeWalk.getPathString());
-                                       changesExist = true;
                                } else {
                                        if (workingTreeIterator.isModified(
                                                        dirCacheIterator.getDirCacheEntry(), true)) {
                                                // in index, in workdir, content differs => modified
                                                modified.add(treeWalk.getPathString());
-                                               changesExist = true;
                                        }
                                }
                        }
                }
-               return changesExist;
+
+               if (added.isEmpty() && changed.isEmpty() && removed.isEmpty()
+                               && missing.isEmpty() && modified.isEmpty()
+                               && untracked.isEmpty())
+                       return false;
+               else
+                       return true;
        }
 
        /**