public static Submodule CreateSubmodue(Repository repository, SubmoduleData submoduleData) { Verify.Argument.IsNotNull(repository, "repository"); Verify.Argument.IsNotNull(submoduleData, "submoduleData"); return(new Submodule(repository, submoduleData.Name, submoduleData.Path, submoduleData.Url)); }
public static void UpdateSubmodule(Submodule submodule, SubmoduleData submoduleData) { Verify.Argument.IsNotNull(submodule, "submodule"); Verify.Argument.IsNotNull(submoduleData, "submoduleData"); submodule.UpdateInfo(submoduleData.Path, submoduleData.Url); }
public void Refresh() { var submodules = new Dictionary <string, SubmoduleData>(); var cfg = Path.Combine(Repository.WorkingDirectory, GitConstants.SubmodulesConfigFile); bool skipUpdate = false; if (File.Exists(cfg)) { ConfigurationFile cfgFile = null; try { cfgFile = new ConfigurationFile(Repository, GitConstants.SubmodulesConfigFile, true); } catch (Exception exc) when(!exc.IsCritical()) { skipUpdate = true; } if (cfgFile != null) { foreach (var param in cfgFile) { if (param.Name.StartsWith("submodule.")) { int p = param.Name.LastIndexOf('.', param.Name.Length - 1, param.Name.Length - "submodule.".Length); if (p != -1 && p != param.Name.Length - 1) { var p3 = param.Name.Substring(p + 1); bool valueIsPath = false; bool valueIsUrl = false; switch (p3) { case "path": valueIsPath = true; break; case "url": valueIsUrl = true; break; default: continue; } var name = param.Name.Substring("submodule.".Length, p - "submodule.".Length); SubmoduleData info; if (!submodules.TryGetValue(name, out info)) { info = new SubmoduleData(name); submodules.Add(name, info); } if (valueIsPath) { info.Path = param.Value; } if (valueIsUrl) { info.Url = param.Value; } } } } } } if (!skipUpdate) { lock (SyncRoot) { CacheUpdater.UpdateObjectDictionary <Submodule, SubmoduleData>( ObjectStorage, null, null, submodules, submoduleData => ObjectFactories.CreateSubmodue(Repository, submoduleData), ObjectFactories.UpdateSubmodule, InvokeObjectAdded, InvokeObjectRemoved, true); } } }
public static Submodule CreateSubmodue(Repository repository, SubmoduleData submoduleData) { Verify.Argument.IsNotNull(repository, "repository"); Verify.Argument.IsNotNull(submoduleData, "submoduleData"); return new Submodule(repository, submoduleData.Name, submoduleData.Path, submoduleData.Url); }