Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
index 630bd7dc0d..d30c1911de 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
@@ -66,6 +66,7 @@ import java.util.Set;
import org.eclipse.jgit.api.MergeCommand.FastForwardMode;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.junit.MockSystemReader;
+import org.eclipse.jgit.merge.MergeConfig;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.SystemReader;
import org.junit.After;
@@ -334,19 +335,27 @@ public class ConfigTest {
assertSame(FastForwardMode.FF, c.getEnum(
ConfigConstants.CONFIG_BRANCH_SECTION, "side",
ConfigConstants.CONFIG_KEY_MERGEOPTIONS, FastForwardMode.FF));
+ MergeConfig mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF, mergeConfig.getFastForwardMode());
c = parse("[branch \"side\"]\n\tmergeoptions = --ff-only\n");
assertSame(FastForwardMode.FF_ONLY, c.getEnum(
ConfigConstants.CONFIG_BRANCH_SECTION, "side",
ConfigConstants.CONFIG_KEY_MERGEOPTIONS,
FastForwardMode.FF_ONLY));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF_ONLY, mergeConfig.getFastForwardMode());
c = parse("[branch \"side\"]\n\tmergeoptions = --ff\n");
assertSame(FastForwardMode.FF, c.getEnum(
ConfigConstants.CONFIG_BRANCH_SECTION, "side",
ConfigConstants.CONFIG_KEY_MERGEOPTIONS, FastForwardMode.FF));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF, mergeConfig.getFastForwardMode());
c = parse("[branch \"side\"]\n\tmergeoptions = --no-ff\n");
assertSame(FastForwardMode.NO_FF, c.getEnum(
ConfigConstants.CONFIG_BRANCH_SECTION, "side",
ConfigConstants.CONFIG_KEY_MERGEOPTIONS, FastForwardMode.NO_FF));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.NO_FF, mergeConfig.getFastForwardMode());
}
@Test
@@ -368,18 +377,56 @@ public class ConfigTest {
assertSame(FastForwardMode.Merge.TRUE, c.getEnum(
ConfigConstants.CONFIG_KEY_MERGE, null,
ConfigConstants.CONFIG_KEY_FF, FastForwardMode.Merge.TRUE));
+ MergeConfig mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF, mergeConfig.getFastForwardMode());
c = parse("[merge]\n\tff = only\n");
assertSame(FastForwardMode.Merge.ONLY, c.getEnum(
ConfigConstants.CONFIG_KEY_MERGE, null,
ConfigConstants.CONFIG_KEY_FF, FastForwardMode.Merge.ONLY));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF_ONLY, mergeConfig.getFastForwardMode());
c = parse("[merge]\n\tff = true\n");
assertSame(FastForwardMode.Merge.TRUE, c.getEnum(
ConfigConstants.CONFIG_KEY_MERGE, null,
ConfigConstants.CONFIG_KEY_FF, FastForwardMode.Merge.TRUE));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF, mergeConfig.getFastForwardMode());
c = parse("[merge]\n\tff = false\n");
assertSame(FastForwardMode.Merge.FALSE, c.getEnum(
ConfigConstants.CONFIG_KEY_MERGE, null,
ConfigConstants.CONFIG_KEY_FF, FastForwardMode.Merge.FALSE));
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.NO_FF, mergeConfig.getFastForwardMode());
+ }
+
+ @Test
+ public void testCombinedMergeOptions() throws ConfigInvalidException {
+ Config c = new Config(null); // not set
+ MergeConfig mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF, mergeConfig.getFastForwardMode());
+ assertTrue(mergeConfig.isCommit());
+ assertFalse(mergeConfig.isSquash());
+ // branch..mergeoptions should win over merge.ff
+ c = parse("[merge]\n\tff = false\n"
+ + "[branch \"side\"]\n\tmergeoptions = --ff-only\n");
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF_ONLY, mergeConfig.getFastForwardMode());
+ assertTrue(mergeConfig.isCommit());
+ assertFalse(mergeConfig.isSquash());
+ // merge.ff used for ff setting if not set via mergeoptions
+ c = parse("[merge]\n\tff = only\n"
+ + "[branch \"side\"]\n\tmergeoptions = --squash\n");
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF_ONLY, mergeConfig.getFastForwardMode());
+ assertTrue(mergeConfig.isCommit());
+ assertTrue(mergeConfig.isSquash());
+ // mergeoptions wins if it has ff options amongst other options
+ c = parse("[merge]\n\tff = false\n"
+ + "[branch \"side\"]\n\tmergeoptions = --ff-only --no-commit\n");
+ mergeConfig = c.get(MergeConfig.getParser("side"));
+ assertSame(FastForwardMode.FF_ONLY, mergeConfig.getFastForwardMode());
+ assertFalse(mergeConfig.isCommit());
+ assertFalse(mergeConfig.isSquash());
}
@Test

Back to the top