GitFolder(Repository r, ProtoGitFolder data) : base(data, r, data.FullPhysicalPath, data.FolderPath) { _headFolder = new HeadFolder(this); _branchesFolder = new BranchesFolder(this, "branches", isRemote: false); _remoteBranchesFolder = new RemotesFolder(this); _thisDir = new RootDir(this, SubPath.LastPart); ServiceContainer = new SimpleServiceContainer(FileSystem.ServiceContainer); ServiceContainer.Add(this); PluginManager = new GitPluginManager(data.PluginRegistry, ServiceContainer, data.CommandRegister, data.World.DevelopBranchName); data.CommandRegister.Register(this); }
public PluginCollection(GitPluginManager manager, string branchName) { _manager = manager; BranchName = branchName; if (branchName == null) { ServiceContainer = manager.ServiceContainer; } else { if (branchName == manager._defaultBranchName) { ServiceContainer = new SimpleServiceContainer(manager._plugins); } else { var baseProvider = manager._branches.FindOrCreateWithoutInitialization(manager._defaultBranchName); ServiceContainer = new SimpleServiceContainer(baseProvider); } } _mappings = new Dictionary <Type, object>(); }
public Branches(GitPluginManager manager) { _manager = manager; _branchPlugins = new Dictionary <string, PluginCollection <IGitBranchPlugin> >(); }