summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorChristian Halstrick <christian.halstrick@sap.com>2016-04-12 14:38:37 +0200
committerChristian Halstrick <christian.halstrick@sap.com>2016-04-22 09:32:34 +0200
commit22d7ec2971edf8d375c4fc9ef9d92526bad73626 (patch)
treea14c398c8b5316777ec4ffe53c86be857a77b1dd /org.eclipse.jgit.test
parent80fa5f39f9d3b742e34b4baad019d917ff19f318 (diff)
downloadjgit-22d7ec2971edf8d375c4fc9ef9d92526bad73626.tar.gz
jgit-22d7ec2971edf8d375c4fc9ef9d92526bad73626.zip
Fix calling of clean/smudge filters from Checkout,MergeCommands
When CheckoutCommand or MergeCommand is called then not in all situation the treewalks have been prepared to support clean/smudge filters. Fix this Bug: 491505 Change-Id: Iab5608049221c46d06812552ab97299e44d59e64
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java37
1 files changed, 20 insertions, 17 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
index 8162ac4575..0bb6610a24 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java
@@ -88,7 +88,6 @@ import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
public class CheckoutCommandTest extends RepositoryTestCase {
@@ -740,11 +739,9 @@ public class CheckoutCommandTest extends RepositoryTestCase {
}
@Test
- @Ignore
- public void testSmudgeAndClean() throws IOException, GitAPIException {
- // @TODO: fix this test
- File clean_filter = writeTempFile("sed s/V1/@version/g -");
- File smudge_filter = writeTempFile("sed s/@version/V1/g -");
+ public void testSmudgeAndClean() throws Exception {
+ File clean_filter = writeTempFile("sed s/V1/@version/g");
+ File smudge_filter = writeTempFile("sed s/@version/V1/g");
try (Git git2 = new Git(db)) {
StoredConfig config = git.getRepository().getConfig();
@@ -753,33 +750,39 @@ public class CheckoutCommandTest extends RepositoryTestCase {
config.setString("filter", "tstFilter", "clean",
"sh " + slashify(clean_filter.getPath()));
config.save();
- writeTrashFile(".gitattributes", "*.txt filter=tstFilter");
+ writeTrashFile(".gitattributes", "filterTest.txt filter=tstFilter");
git2.add().addFilepattern(".gitattributes").call();
git2.commit().setMessage("add attributes").call();
- writeTrashFile("filterTest.txt", "hello world, V1");
+ fsTick(writeTrashFile("filterTest.txt", "hello world, V1\n"));
git2.add().addFilepattern("filterTest.txt").call();
- git2.commit().setMessage("add filterText.txt").call();
+ RevCommit one = git2.commit().setMessage("add filterText.txt").call();
assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=tstFilter][Test.txt, mode:100644, content:Some other change][filterTest.txt, mode:100644, content:hello world, @version]",
+ "[.gitattributes, mode:100644, content:filterTest.txt filter=tstFilter][Test.txt, mode:100644, content:Some change][filterTest.txt, mode:100644, content:hello world, @version\n]",
indexState(CONTENT));
- git2.checkout().setCreateBranch(true).setName("test2").call();
- writeTrashFile("filterTest.txt", "bon giorno world, V1");
+ fsTick(writeTrashFile("filterTest.txt", "bon giorno world, V1\n"));
git2.add().addFilepattern("filterTest.txt").call();
- git2.commit().setMessage("modified filterText.txt").call();
+ RevCommit two = git2.commit().setMessage("modified filterTest.txt").call();
assertTrue(git2.status().call().isClean());
assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=tstFilter][Test.txt, mode:100644, content:Some other change][filterTest.txt, mode:100644, content:bon giorno world, @version]",
+ "[.gitattributes, mode:100644, content:filterTest.txt filter=tstFilter][Test.txt, mode:100644, content:Some change][filterTest.txt, mode:100644, content:bon giorno world, @version\n]",
indexState(CONTENT));
- git2.checkout().setName("refs/heads/test").call();
+ git2.checkout().setName(one.getName()).call();
assertTrue(git2.status().call().isClean());
assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=tstFilter][Test.txt, mode:100644, content:Some other change][filterTest.txt, mode:100644, content:hello world, @version]",
+ "[.gitattributes, mode:100644, content:filterTest.txt filter=tstFilter][Test.txt, mode:100644, content:Some change][filterTest.txt, mode:100644, content:hello world, @version\n]",
indexState(CONTENT));
- assertEquals("hello world, V1", read("filterTest.txt"));
+ assertEquals("hello world, V1\n", read("filterTest.txt"));
+
+ git2.checkout().setName(two.getName()).call();
+ assertTrue(git2.status().call().isClean());
+ assertEquals(
+ "[.gitattributes, mode:100644, content:filterTest.txt filter=tstFilter][Test.txt, mode:100644, content:Some change][filterTest.txt, mode:100644, content:bon giorno world, @version\n]",
+ indexState(CONTENT));
+ assertEquals("bon giorno world, V1\n", read("filterTest.txt"));
}
}