diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgUtil.java b/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgUtil.java index cdee4c504187..dece06fb4a7d 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgUtil.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgUtil.java @@ -567,4 +567,10 @@ public abstract class HgUtil { HgRepository hgRepository = getRepositoryManager(project).getRepositoryForRoot(root); return hgRepository != null ? hgRepository.getRepositoryConfig().getDefaultPushPath() : null; } + + @Nullable + public static String getRepositoryNamedConfig(@NotNull Project project, @NotNull VirtualFile root, @Nullable String configName) { + HgRepository hgRepository = getRepositoryManager(project).getRepositoryForRoot(root); + return hgRepository != null ? hgRepository.getRepositoryConfig().getNamedConfig(configName) : null; + } } diff --git a/plugins/hg4idea/testSrc/hg4idea/test/config/HgConfigTest.java b/plugins/hg4idea/testSrc/hg4idea/test/config/HgConfigTest.java new file mode 100644 index 000000000000..b115c0ea4777 --- /dev/null +++ b/plugins/hg4idea/testSrc/hg4idea/test/config/HgConfigTest.java @@ -0,0 +1,46 @@ +package hg4idea.test.config; + +import com.intellij.openapi.util.io.FileUtil; +import hg4idea.test.HgPlatformTest; +import org.zmlx.hg4idea.repo.HgRepository; +import org.zmlx.hg4idea.util.HgUtil; + +import java.io.File; +import java.io.IOException; + +import static com.intellij.dvcs.test.Executor.cd; + +/** + * @author Nadya Zabrodina + */ +public class HgConfigTest extends HgPlatformTest { + + @Override + public void setUp() throws Exception { + super.setUp(); + prepareSecondRepository(); + } + + public void testDefaultPathInClonedRepo() { + cd(myChildRepo); + assertEquals(myRepository.getCanonicalPath(), HgUtil.getRepositoryDefaultPath(myProject, myChildRepo)); + } + + public void testLargeExtensionInClonedRepo() { + cd(myChildRepo); + File hgrc = new File(new File(myChildRepo.getPath(), ".hg"), "hgrc"); + assert hgrc.exists(); + try { + FileUtil.appendToFile(hgrc, "\n[extensions]\n" + + "largefiles ="); + } + catch (IOException e) { + e.printStackTrace(); + fail("Can not update hgrc file."); + } + HgRepository hgRepository = HgUtil.getRepositoryManager(myProject).getRepositoryForRoot(myChildRepo); + assertNotNull(hgRepository); + hgRepository.getRepositoryConfig().update(myProject, null); + assertNotNull(HgUtil.getRepositoryNamedConfig(myProject, myChildRepo, "extensions.largefiles")); + } +}