예제 #1
0
        public Repository Clone()
        {
            Repository res = VersionControlSystem.CreateRepositoryInstance();

            res.CopyConfigurationFrom(this);
            return(res);
        }
        static void OnExtensionChanged(object s, ExtensionNodeEventArgs args)
        {
            VersionControlSystem vcs = (VersionControlSystem)args.ExtensionObject;

            if (args.Change == ExtensionChange.Add)
            {
                handlers.Add(vcs);
                try
                {
                    // Include the repository type in the serialization context, so repositories
                    // of this type can be deserialized from the configuration file.
                    Repository r = vcs.CreateRepositoryInstance();
                    r.AddRef();
                    dataContext.IncludeType(r.GetType());
                    r.Unref();
                }
                catch (Exception e)
                {
                    LoggingService.LogError("Error while adding version control system.", e);
                }
            }
            else
            {
                handlers.Remove(vcs);
            }
        }