diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2010-12-13 14:18:42 -0800 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2010-12-15 15:14:05 -0800 |
commit | 6f3b4d5d041b166499e3be241feb62d01fb1a0b2 (patch) | |
tree | aa86469896ea9c3cce42bc30fe588138787f238e | |
parent | 013cb8de3824c304645a9c5db87c2e80286872d1 (diff) | |
download | jgit-6f3b4d5d041b166499e3be241feb62d01fb1a0b2.tar.gz jgit-6f3b4d5d041b166499e3be241feb62d01fb1a0b2.zip |
Save StoredConfig after modifications
When the Config is changed, it should be saved back to its local
file. This ensure that a future call to getConfig() won't wipe
out the edits that were just made.
Change-Id: Id46d3f85d1c9b377f63ef861b72824e1aa060eee
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
8 files changed, 51 insertions, 20 deletions
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java index 2650db2fa8..3442af94db 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java @@ -43,6 +43,8 @@ package org.eclipse.jgit.http.test; +import java.io.IOException; + import javax.servlet.http.HttpServletRequestWrapper; import org.eclipse.jetty.server.Request; @@ -51,6 +53,7 @@ import org.eclipse.jgit.http.server.resolver.ServiceNotAuthorizedException; import org.eclipse.jgit.http.server.resolver.ServiceNotEnabledException; import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.lib.StoredConfig; public class AsIsServiceTest extends LocalDiskRepositoryTestCase { private Repository db; @@ -87,8 +90,11 @@ public class AsIsServiceTest extends LocalDiskRepositoryTestCase { service.access(new R("bob", "1.2.3.4"), db); } - public void testCreate_Disabled() throws ServiceNotAuthorizedException { - db.getConfig().setBoolean("http", null, "getanyfile", false); + public void testCreate_Disabled() throws ServiceNotAuthorizedException, + IOException { + final StoredConfig cfg = db.getConfig(); + cfg.setBoolean("http", null, "getanyfile", false); + cfg.save(); try { service.access(new R(null, "1.2.3.4"), db); diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java index 4d05a085c6..81d5f4f51d 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java @@ -43,6 +43,8 @@ package org.eclipse.jgit.http.test; +import java.io.IOException; + import javax.servlet.http.HttpServletRequestWrapper; import org.eclipse.jetty.server.Request; @@ -53,6 +55,7 @@ import org.eclipse.jgit.http.server.resolver.ServiceNotEnabledException; import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.transport.ReceivePack; public class DefaultReceivePackFactoryTest extends LocalDiskRepositoryTestCase { @@ -127,8 +130,11 @@ public class DefaultReceivePackFactoryTest extends LocalDiskRepositoryTestCase { assertEquals(author.getWhen(), id.getWhen()); } - public void testCreate_Disabled() throws ServiceNotAuthorizedException { - db.getConfig().setBoolean("http", null, "receivepack", false); + public void testCreate_Disabled() throws ServiceNotAuthorizedException, + IOException { + final StoredConfig cfg = db.getConfig(); + cfg.setBoolean("http", null, "receivepack", false); + cfg.save(); try { factory.create(new R(null, "localhost"), db); @@ -153,8 +159,11 @@ public class DefaultReceivePackFactoryTest extends LocalDiskRepositoryTestCase { } public void testCreate_Enabled() throws ServiceNotEnabledException, - ServiceNotAuthorizedException { - db.getConfig().setBoolean("http", null, "receivepack", true); + ServiceNotAuthorizedException, IOException { + final StoredConfig cfg = db.getConfig(); + cfg.setBoolean("http", null, "receivepack", true); + cfg.save(); + ReceivePack rp; rp = factory.create(new R(null, "1.2.3.4"), db); diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java index 423361e06b..24bf480dd2 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java @@ -43,6 +43,8 @@ package org.eclipse.jgit.http.test; +import java.io.IOException; + import javax.servlet.http.HttpServletRequestWrapper; import org.eclipse.jetty.server.Request; @@ -52,6 +54,7 @@ import org.eclipse.jgit.http.server.resolver.ServiceNotEnabledException; import org.eclipse.jgit.http.server.resolver.UploadPackFactory; import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.transport.UploadPack; public class DefaultUploadPackFactoryTest extends LocalDiskRepositoryTestCase { @@ -104,8 +107,11 @@ public class DefaultUploadPackFactoryTest extends LocalDiskRepositoryTestCase { assertSame(db, up.getRepository()); } - public void testCreate_Disabled() throws ServiceNotAuthorizedException { - db.getConfig().setBoolean("http", null, "uploadpack", false); + public void testCreate_Disabled() throws ServiceNotAuthorizedException, + IOException { + final StoredConfig cfg = db.getConfig(); + cfg.setBoolean("http", null, "uploadpack", false); + cfg.save(); try { factory.create(new R(null, "localhost"), db); diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java index c4912d4055..6cf282f3be 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java @@ -68,6 +68,7 @@ import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.transport.FetchConnection; import org.eclipse.jgit.transport.Transport; @@ -336,8 +337,9 @@ public class HttpClientTests extends HttpTestCase { public void testListRemote_Smart_UploadPackDisabled() throws Exception { FileRepository src = remoteRepository.getRepository(); - src.getConfig().setBoolean("http", null, "uploadpack", false); - src.getConfig().save(); + final FileBasedConfig cfg = src.getConfig(); + cfg.setBoolean("http", null, "uploadpack", false); + cfg.save(); Repository dst = createBareRepository(); Transport t = Transport.open(dst, smartAuthNoneURI); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java index 10396b4e71..27e0b1b541 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java @@ -47,9 +47,9 @@ import java.net.URISyntaxException; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.JGitInternalException; -import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryTestCase; +import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevTag; import org.eclipse.jgit.transport.RefSpec; @@ -66,11 +66,12 @@ public class FetchCommandTest extends RepositoryTestCase { Git git2 = new Git(db2); // setup the first repository to fetch from the second repository - final Config config = db.getConfig(); + final StoredConfig config = db.getConfig(); RemoteConfig remoteConfig = new RemoteConfig(config, "test"); URIish uri = new URIish(db2.getDirectory().toURI().toURL()); remoteConfig.addURI(uri); remoteConfig.update(config); + config.save(); // create some refs via commits and tag RevCommit commit = git2.commit().setMessage("initial commit").call(); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java index 48ede966f9..5d54a1c897 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java @@ -199,8 +199,8 @@ public class PullCommandTest extends RepositoryTestCase { .getPath())); config.addFetchRefSpec(new RefSpec( "+refs/heads/*:refs/remotes/origin/*")); - targetConfig.save(); config.update(targetConfig); + targetConfig.save(); targetFile = new File(dbTarget.getWorkTree(), "SomeFile.txt"); writeToFile(targetFile, "Hello world"); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java index d9a07866c3..04232f6d01 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java @@ -48,9 +48,9 @@ import java.net.URISyntaxException; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.JGitInternalException; import org.eclipse.jgit.errors.MissingObjectException; -import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryTestCase; +import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevTag; import org.eclipse.jgit.transport.RefSpec; @@ -66,11 +66,12 @@ public class PushCommandTest extends RepositoryTestCase { Repository db2 = createWorkRepository(); // setup the first repository - final Config config = db.getConfig(); + final StoredConfig config = db.getConfig(); RemoteConfig remoteConfig = new RemoteConfig(config, "test"); URIish uri = new URIish(db2.getDirectory().toURI().toURL()); remoteConfig.addURI(uri); remoteConfig.update(config); + config.save(); Git git1 = new Git(db); // create some refs via commits and tag diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogConfigTest.java index ded7e58fa6..ea8b17df92 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogConfigTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogConfigTest.java @@ -47,6 +47,8 @@ package org.eclipse.jgit.lib; import java.io.IOException; +import org.eclipse.jgit.storage.file.FileBasedConfig; + public class ReflogConfigTest extends RepositoryTestCase { public void testlogAllRefUpdates() throws Exception { long commitTime = 1154236443000L; @@ -55,7 +57,9 @@ public class ReflogConfigTest extends RepositoryTestCase { // check that there are no entries in the reflog and turn off writing // reflogs assertEquals(0, db.getReflogReader(Constants.HEAD).getReverseEntries().size()); - db.getConfig().setBoolean("core", null, "logallrefupdates", false); + final FileBasedConfig cfg = db.getConfig(); + cfg.setBoolean("core", null, "logallrefupdates", false); + cfg.save(); // do one commit and check that reflog size is 0: no reflogs should be // written @@ -69,8 +73,9 @@ public class ReflogConfigTest extends RepositoryTestCase { db.getReflogReader(Constants.HEAD).getReverseEntries().size() == 0); // set the logAllRefUpdates parameter to true and check it - db.getConfig().setBoolean("core", null, "logallrefupdates", true); - assertTrue(db.getConfig().get(CoreConfig.KEY).isLogAllRefUpdates()); + cfg.setBoolean("core", null, "logallrefupdates", true); + cfg.save(); + assertTrue(cfg.get(CoreConfig.KEY).isLogAllRefUpdates()); // do one commit and check that reflog size is increased to 1 addFileToTree(t, "i-am-another-file", "and this is other data in me\n"); @@ -82,8 +87,9 @@ public class ReflogConfigTest extends RepositoryTestCase { db.getReflogReader(Constants.HEAD).getReverseEntries().size() == 1); // set the logAllRefUpdates parameter to false and check it - db.getConfig().setBoolean("core", null, "logallrefupdates", false); - assertFalse(db.getConfig().get(CoreConfig.KEY).isLogAllRefUpdates()); + cfg.setBoolean("core", null, "logallrefupdates", false); + cfg.save(); + assertFalse(cfg.get(CoreConfig.KEY).isLogAllRefUpdates()); // do one commit and check that reflog size is 2 addFileToTree(t, "i-am-anotheranother-file", |