public void DeleteRepository(string author, string basePath, string repositoryName, string comment, params LogPropertyInfo[] properties) { var baseUri = new Uri(basePath); var repositoryPath = baseUri.LocalPath; var branchName = repositoryName; var branchCollection = GitBranchCollection.Run(repositoryPath); if (branchCollection.Count <= 1) { throw new InvalidOperationException(); } if (branchCollection.CurrentBranch == branchName) { var nextBranchName = branchCollection.First(item => item != branchCollection.CurrentBranch); this.CheckoutBranch(repositoryPath, nextBranchName); } var deleteCommand = new GitCommand(repositoryPath, "branch") { new GitCommandItem('D'), branchName }; deleteCommand.Run(); this.UnsetID(repositoryPath, repositoryName); }
public string Migrate(string sourcePath) { var repositoryPath2 = PathUtility.GetTempPath(false); var repositoryUri = new Uri(sourcePath).ToString(); if (Environment.OSVersion.Platform == PlatformID.Win32NT) { repositoryUri = Regex.Replace(repositoryUri, "(file:///\\w):(.+)", "$1$2"); } var cloneCommand = new GitCommand(null, "svn clone") { (GitPath)repositoryUri, (GitPath)repositoryPath2, new GitCommandItem('T', "trunk"), new GitCommandItem('b', "branches"), new GitCommandItem('b', "tags") }; cloneCommand.OutputDataReceived += (s, e) => Console.WriteLine(e.Data); cloneCommand.Run(); var remoteBranches = GitBranchCollection.GetRemoteBranches(repositoryPath2); var branches = GitBranchCollection.Run(repositoryPath2); foreach (var item in remoteBranches) { if (item != "trunk" && branches.Contains(item) == false) { var checkoutCommand = new GitCommand(repositoryPath2, "checkout") { new GitCommandItem('b'), item, $"remotes/origin/{item}" }; checkoutCommand.Run(); } } var configCommand = new GitCommand(repositoryPath2, "config") { "receive.denyCurrentBranch", "ignore" }; configCommand.Run(); return(repositoryPath2); }