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); } }