コード例 #1
0
ファイル: ObjectFactories.cs プロジェクト: oqewok/gitter
        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));
        }
コード例 #2
0
ファイル: ObjectFactories.cs プロジェクト: oqewok/gitter
        public static void UpdateSubmodule(Submodule submodule, SubmoduleData submoduleData)
        {
            Verify.Argument.IsNotNull(submodule, "submodule");
            Verify.Argument.IsNotNull(submoduleData, "submoduleData");

            submodule.UpdateInfo(submoduleData.Path, submoduleData.Url);
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
ファイル: ObjectFactories.cs プロジェクト: Kuzq/gitter
        public static void UpdateSubmodule(Submodule submodule, SubmoduleData submoduleData)
        {
            Verify.Argument.IsNotNull(submodule, "submodule");
            Verify.Argument.IsNotNull(submoduleData, "submoduleData");

            submodule.UpdateInfo(submoduleData.Path, submoduleData.Url);
        }
コード例 #5
0
ファイル: ObjectFactories.cs プロジェクト: Kuzq/gitter
        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);
        }