public virtual void Test006_ReadUglyConfig() { FilePath cfg = new FilePath(db.Directory, "config"); FileBasedConfig c = new FileBasedConfig(cfg, db.FileSystem); string configStr = " [core];comment\n\tfilemode = yes\n" + "[user]\n" + " email = A U Thor <*****@*****.**> # Just an example...\n" + " name = \"A Thor \\\\ \\\"\\t \"\n" + " defaultCheckInComment = a many line\\n\\\ncomment\\n\\\n" + " to test\n"; Write(cfg, configStr); c.Load(); NUnit.Framework.Assert.AreEqual("yes", c.GetString("core", null, "filemode")); NUnit.Framework.Assert.AreEqual("A U Thor <*****@*****.**>", c.GetString("user" , null, "email")); NUnit.Framework.Assert.AreEqual("A Thor \\ \"\t ", c.GetString("user", null, "name" )); NUnit.Framework.Assert.AreEqual("a many line\ncomment\n to test", c.GetString("user" , null, "defaultCheckInComment")); c.Save(); FileReader fr = new FileReader(cfg); char[] cbuf = new char[configStr.Length]; fr.Read(cbuf); fr.Close(); NUnit.Framework.Assert.AreEqual(configStr, new string(cbuf)); }
/// <exception cref="System.IO.IOException"></exception> /// <exception cref="NGit.Errors.ConfigInvalidException"></exception> private FileBasedConfig ConfigFor(FilePath gitDir) { FilePath configPath = new FilePath(gitDir, Constants.CONFIG); FileBasedConfig cfg = new FileBasedConfig(configPath, FS.DETECTED); cfg.Load(); return(cfg); }
public virtual void TestSystemEncoding() { FilePath file = CreateFile(Sharpen.Runtime.GetBytesForString(CONTENT1)); FileBasedConfig config = new FileBasedConfig(file, FS.DETECTED); config.Load(); NUnit.Framework.Assert.AreEqual(ALICE, config.GetString(USER, null, NAME)); config.SetString(USER, null, NAME, BOB); config.Save(); Assert.AssertArrayEquals(Sharpen.Runtime.GetBytesForString(CONTENT2), IOUtil.ReadFully (file)); }
public virtual void TestUTF8withoutBOM() { FilePath file = CreateFile(Sharpen.Runtime.GetBytesForString(CONTENT1, "UTF-8")); FileBasedConfig config = new FileBasedConfig(file, FS.DETECTED); config.Load(); NUnit.Framework.Assert.AreEqual(ALICE, config.GetString(USER, null, NAME)); config.SetString(USER, null, NAME, BOB); config.Save(); Assert.AssertArrayEquals(Sharpen.Runtime.GetBytesForString(CONTENT2), IOUtil.ReadFully (file)); }
/// <exception cref="System.IO.IOException"></exception> private void LoadRepoConfig() { try { repoConfig.Load(); } catch (ConfigInvalidException e1) { IOException e2 = new IOException(JGitText.Get().unknownRepositoryFormat); Sharpen.Extensions.InitCause(e2, e1); throw e2; } }
/// <exception cref="System.IO.IOException"></exception> private void LoadUserConfig() { try { userConfig.Load(); } catch (ConfigInvalidException e1) { IOException e2 = new IOException(MessageFormat.Format(JGitText.Get().userConfigFileInvalid , userConfig.GetFile().GetAbsolutePath(), e1)); Sharpen.Extensions.InitCause(e2, e1); throw e2; } }
public virtual void TestLeadingWhitespaces() { ByteArrayOutputStream bos1 = new ByteArrayOutputStream(); bos1.Write(Sharpen.Runtime.GetBytesForString(" \n\t")); bos1.Write(Sharpen.Runtime.GetBytesForString(CONTENT1)); FilePath file = CreateFile(bos1.ToByteArray()); FileBasedConfig config = new FileBasedConfig(file, FS.DETECTED); config.Load(); NUnit.Framework.Assert.AreEqual(ALICE, config.GetString(USER, null, NAME)); config.SetString(USER, null, NAME, BOB); config.Save(); ByteArrayOutputStream bos2 = new ByteArrayOutputStream(); bos2.Write(Sharpen.Runtime.GetBytesForString(" \n\t")); bos2.Write(Sharpen.Runtime.GetBytesForString(CONTENT2)); Assert.AssertArrayEquals(bos2.ToByteArray(), IOUtil.ReadFully(file)); }
public virtual void TestUTF8withBOM() { ByteArrayOutputStream bos1 = new ByteArrayOutputStream(); bos1.Write(unchecked ((int)(0xEF))); bos1.Write(unchecked ((int)(0xBB))); bos1.Write(unchecked ((int)(0xBF))); bos1.Write(Sharpen.Runtime.GetBytesForString(CONTENT1, "UTF-8")); FilePath file = CreateFile(bos1.ToByteArray()); FileBasedConfig config = new FileBasedConfig(file, FS.DETECTED); config.Load(); NUnit.Framework.Assert.AreEqual(ALICE, config.GetString(USER, null, NAME)); config.SetString(USER, null, NAME, BOB); config.Save(); ByteArrayOutputStream bos2 = new ByteArrayOutputStream(); bos2.Write(unchecked ((int)(0xEF))); bos2.Write(unchecked ((int)(0xBB))); bos2.Write(unchecked ((int)(0xBF))); bos2.Write(Sharpen.Runtime.GetBytesForString(CONTENT2, "UTF-8")); Assert.AssertArrayEquals(bos2.ToByteArray(), IOUtil.ReadFully(file)); }
/// <summary> /// グローバル設定ファイル読み込み /// </summary> public GrobalConfigEntity LoadGrobalConfig() { FilePath gitconfig = new FilePath(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".gitconfig"); if (!gitconfig.Exists()) { return null; } FileBasedConfig config = new FileBasedConfig(gitconfig, FS.Detect()); config.Load(); /* string text = config.ToText(); foreach (string section in config.GetSections()) { Console.Out.WriteLine("section = {0}", section); if (config.GetSubsections(section).Count > 0) { foreach (string subsection in config.GetSubsections(section)) { Console.Out.WriteLine(" subsection = {0}", subsection); foreach (string name in config.GetNames(section, subsection)) { Console.Out.WriteLine(" name = {0} / value = {1}", name, config.GetString(section, subsection, name)); } } } else { foreach (string name in config.GetNames(section)) { Console.Out.WriteLine(" name = {0} / value = {1}", name, config.GetString(section, null, name)); } } } */ GrobalConfigEntity result = new GrobalConfigEntity(); result.EMail = config.GetString("user", null, "email"); result.Name = config.GetString("user", null, "name"); if (result.EMail == null || result.Name == null) { return null; } return result; }
public virtual void Test006_ReadUglyConfig() { FilePath cfg = new FilePath(db.Directory, Constants.CONFIG); FileBasedConfig c = new FileBasedConfig(cfg, db.FileSystem); string configStr = " [core];comment\n\tfilemode = yes\n" + "[user]\n" + " email = A U Thor <*****@*****.**> # Just an example...\n" + " name = \"A Thor \\\\ \\\"\\t \"\n" + " defaultCheckInComment = a many line\\n\\\ncomment\\n\\\n" + " to test\n"; Write(cfg, configStr); c.Load(); NUnit.Framework.Assert.AreEqual("yes", c.GetString("core", null, "filemode")); NUnit.Framework.Assert.AreEqual("A U Thor <*****@*****.**>", c.GetString("user" , null, "email")); NUnit.Framework.Assert.AreEqual("A Thor \\ \"\t ", c.GetString("user", null, "name" )); NUnit.Framework.Assert.AreEqual("a many line\ncomment\n to test", c.GetString("user" , null, "defaultCheckInComment")); c.Save(); FileReader fr = new FileReader(cfg); char[] cbuf = new char[configStr.Length]; fr.Read(cbuf); fr.Close(); NUnit.Framework.Assert.AreEqual(configStr, new string(cbuf)); }
/// <exception cref="System.IO.IOException"></exception> /// <exception cref="NGit.Errors.ConfigInvalidException"></exception> private FileBasedConfig ConfigFor(FilePath gitDir) { FilePath configPath = new FilePath(gitDir, Constants.CONFIG); FileBasedConfig cfg = new FileBasedConfig(configPath, FS.DETECTED); cfg.Load(); return cfg; }
/// <exception cref="System.IO.IOException"></exception> /// <exception cref="NGit.Errors.ConfigInvalidException"></exception> private void LoadModulesConfig() { if (modulesConfig == null) { FilePath modulesFile = new FilePath(repository.WorkTree, Constants.DOT_GIT_MODULES ); FileBasedConfig config = new FileBasedConfig(modulesFile, repository.FileSystem); config.Load(); modulesConfig = config; } }
public virtual void AddSubmoduleWithExistingSubmoduleDefined() { string path1 = "sub1"; string url1 = "git://server/repo1.git"; string path2 = "sub2"; FileBasedConfig modulesConfig = new FileBasedConfig(new FilePath(db.WorkTree, Constants .DOT_GIT_MODULES), db.FileSystem); modulesConfig.SetString(ConfigConstants.CONFIG_SUBMODULE_SECTION, path1, ConfigConstants .CONFIG_KEY_PATH, path1); modulesConfig.SetString(ConfigConstants.CONFIG_SUBMODULE_SECTION, path1, ConfigConstants .CONFIG_KEY_URL, url1); modulesConfig.Save(); Git git = new Git(db); WriteTrashFile("file.txt", "content"); git.Add().AddFilepattern("file.txt").Call(); NUnit.Framework.Assert.IsNotNull(git.Commit().SetMessage("create file").Call()); SubmoduleAddCommand command = new SubmoduleAddCommand(db); command.SetPath(path2); string url2 = db.Directory.ToURI().ToString(); command.SetURI(url2); NUnit.Framework.Assert.IsNotNull(command.Call()); modulesConfig.Load(); NUnit.Framework.Assert.AreEqual(path1, modulesConfig.GetString(ConfigConstants.CONFIG_SUBMODULE_SECTION , path1, ConfigConstants.CONFIG_KEY_PATH)); NUnit.Framework.Assert.AreEqual(url1, modulesConfig.GetString(ConfigConstants.CONFIG_SUBMODULE_SECTION , path1, ConfigConstants.CONFIG_KEY_URL)); NUnit.Framework.Assert.AreEqual(path2, modulesConfig.GetString(ConfigConstants.CONFIG_SUBMODULE_SECTION , path2, ConfigConstants.CONFIG_KEY_PATH)); NUnit.Framework.Assert.AreEqual(url2, modulesConfig.GetString(ConfigConstants.CONFIG_SUBMODULE_SECTION , path2, ConfigConstants.CONFIG_KEY_URL)); }
public virtual void TestUTF8withBOM() { ByteArrayOutputStream bos1 = new ByteArrayOutputStream(); bos1.Write(unchecked((int)(0xEF))); bos1.Write(unchecked((int)(0xBB))); bos1.Write(unchecked((int)(0xBF))); bos1.Write(Sharpen.Runtime.GetBytesForString(CONTENT1, "UTF-8")); FilePath file = CreateFile(bos1.ToByteArray()); FileBasedConfig config = new FileBasedConfig(file, FS.DETECTED); config.Load(); NUnit.Framework.Assert.AreEqual(ALICE, config.GetString(USER, null, NAME)); config.SetString(USER, null, NAME, BOB); config.Save(); ByteArrayOutputStream bos2 = new ByteArrayOutputStream(); bos2.Write(unchecked((int)(0xEF))); bos2.Write(unchecked((int)(0xBB))); bos2.Write(unchecked((int)(0xBF))); bos2.Write(Sharpen.Runtime.GetBytesForString(CONTENT2, "UTF-8")); Assert.AssertArrayEquals(bos2.ToByteArray(), IOUtil.ReadFully(file)); }
/// <summary> /// Load the config for this walk from /// <code>.gitmodules</code> /// . /// <p> /// Uses the root tree if /// <see cref="SetRootTree(NGit.Treewalk.AbstractTreeIterator)">SetRootTree(NGit.Treewalk.AbstractTreeIterator) /// </see> /// was /// previously called, otherwise uses the working tree. /// <p> /// If no submodule config is found, loads an empty config. /// </summary> /// <returns>this generator</returns> /// <exception cref="System.IO.IOException">if an error occurred, or if the repository is bare /// </exception> /// <exception cref="NGit.Errors.ConfigInvalidException">NGit.Errors.ConfigInvalidException /// </exception> public virtual NGit.Submodule.SubmoduleWalk LoadModulesConfig() { if (rootTree == null) { FilePath modulesFile = new FilePath(repository.WorkTree, Constants.DOT_GIT_MODULES ); FileBasedConfig config = new FileBasedConfig(modulesFile, repository.FileSystem); config.Load(); modulesConfig = config; } else { TreeWalk configWalk = new TreeWalk(repository); try { configWalk.AddTree(rootTree); // The root tree may be part of the submodule walk, so we need to revert // it after this walk. int idx; for (idx = 0; !rootTree.First; idx++) { rootTree.Back(1); } try { configWalk.Recursive = false; PathFilter filter = PathFilter.Create(Constants.DOT_GIT_MODULES); configWalk.Filter = filter; while (configWalk.Next()) { if (filter.IsDone(configWalk)) { modulesConfig = new BlobBasedConfig(null, repository, configWalk.GetObjectId(0)); return this; } } modulesConfig = new Config(); } finally { if (idx > 0) { rootTree.Next(idx); } } } finally { configWalk.Release(); } } return this; }