summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
index 22eeb8e3d3..67fae270eb 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
@@ -46,6 +46,9 @@ package org.eclipse.jgit.treewalk;
import java.io.File;
import java.security.MessageDigest;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.dircache.DirCacheCheckout;
+import org.eclipse.jgit.dircache.DirCacheEntry;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.ObjectId;
@@ -175,6 +178,24 @@ public class FileTreeIteratorTest extends RepositoryTestCase {
assertEquals(expect, top.getEntryObjectId());
}
+ public void testIsModifiedSymlink() throws Exception {
+ File f = writeTrashFile("symlink", "content");
+ Git git = new Git(db);
+ git.add().addFilepattern("symlink").call();
+ git.commit().setMessage("commit").call();
+
+ // Modify previously committed DirCacheEntry and write it back to disk
+ DirCacheEntry dce = db.readDirCache().getEntry("symlink");
+ dce.setFileMode(FileMode.SYMLINK);
+ DirCacheCheckout.checkoutEntry(db, f, dce);
+
+ FileTreeIterator fti = new FileTreeIterator(trash, db.getFS(), db
+ .getConfig().get(WorkingTreeOptions.KEY));
+ while (!fti.getEntryPathString().equals("symlink"))
+ fti.next(1);
+ assertFalse(fti.isModified(dce, false));
+ }
+
private static String nameOf(final AbstractTreeIterator i) {
return RawParseUtils.decode(Constants.CHARSET, i.path, 0, i.pathLen);
}