public void HistoryWalker_should_rename_and_edit() { var result = GitProcess.Execute("ls-files", false); Assert.That(result.Stdout.Contains("AliceB2.txt"), Is.True); Assert.That(File.ReadAllText(SanePath.Combine(RepoPath, "AliceB2.txt")), Is.EqualTo(_aliceBContent + "xxx")); }
public async Task <bool> ConfigEmail(string email, CancellationToken token = default) { var p = new GitProcess(_directory, "config", "user.email", $"\"{email}\""); await p.Execute(token); return(!HasError(p)); }
public async Task <bool> ConfigName(string name, CancellationToken token = default) { var p = new GitProcess(_directory, "config", "user.name", $"\"{name}\""); await p.Execute(token); return(!HasError(p)); }
public void Assert_commit_count() { var result = GitProcess.Execute("rev-list --all --count"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(1)); Assert.That(result.Stdout.Contains("3")); }
public async Task <bool> Push(CancellationToken token = default) { var p = new GitProcess(_directory, "push", $"\"{Repository}\""); await p.Execute(token); return(!HasError(p)); }
public void HistoryWalker_should_rename() { var result = GitProcess.Execute("ls-files", false); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(6)); Assert.That(result.Stdout.Contains("AliceA2.txt")); Assert.That(result.Stdout.Contains("AliceD1.txt")); }
/// <summary> /// /// </summary> /// <returns>True if there were not errors and something was pulled</returns> public async Task <bool> Pull(CancellationToken token = default) { var p = new GitProcess(_directory, "pull"); await p.Execute(token); return(!HasError(p) && !p.GetOutput().Contains("Already up to date")); }
public void HistoryWalker_should_exclude_files_matching_regex_patterns() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("rev-list --all --count"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(1)); Assert.That(result.Stdout.Contains("1")); Assert.That(File.ReadAllText(SanePath.Combine(RepoPath, "AliceA.txt")), Is.EqualTo("Alice A1")); }
public void HistoryWalker_should_rename_any_branch_but_master() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("for-each-ref --format='%(refname:short)' refs/heads"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(2)); Assert.That(result.Stdout.Contains("'master'")); Assert.That(result.Stdout.Contains("'new-branch'")); }
public void HistoryWalker_should_edit_files() { HistoryWalker.Walk(new EntryPoint(1)); File.WriteAllText(SanePath.Combine(RepoPath, "AliceA.txt"), "xxx"); GitProcess.Execute("checkout -- .", false); Assert.That(File.ReadAllText(SanePath.Combine(RepoPath, "AliceA.txt")), Is.EqualTo("Alice A2")); Assert.That(File.ReadAllText(SanePath.Combine(RepoPath, "AliceB.txt")), Is.EqualTo("Alice B2")); Assert.That(File.ReadAllText(SanePath.Combine(RepoPath, "AliceC.txt")), Is.EqualTo("Alice C2")); }
public void HistoryWalker_should_not_delete_files_that_belong_to_the_changeset() { var result = GitProcess.Execute("ls-files", false); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(5)); Assert.That(result.Stdout.Contains(".gitattributes")); Assert.That(result.Stdout.Contains(".gitignore")); Assert.That(result.Stdout.Contains("X/AliceB2.txt")); Assert.That(result.Stdout.Contains("X/BobA.txt")); Assert.That(result.Stdout.Contains("X/SubFolderA/AliceA.txt")); }
public void HistoryWalker_should_delete_files() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("ls-files", false); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(3)); Assert.That(result.Stdout.Contains(".gitattributes")); Assert.That(result.Stdout.Contains(".gitignore")); Assert.That(result.Stdout.Contains("AliceA.txt")); }
public void HistoryWalker_should_exclude_files_matching_regex_patterns() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("ls-files"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(3)); Assert.That(result.Stdout.Contains(".gitattributes")); Assert.That(result.Stdout.Contains(".gitignore")); Assert.That(result.Stdout.Contains("AliceA.txt")); }
public void HistoryWalker_should_add_files_from_multiple_mapped_branches_into_one() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("ls-files"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(4)); Assert.That(result.Stdout.Contains(".gitattributes")); Assert.That(result.Stdout.Contains(".gitignore")); Assert.That(result.Stdout.Contains("A/AliceA.txt")); Assert.That(result.Stdout.Contains("B/AliceB.txt")); }
public void HistoryWalker_should_delete_the_branch_if_the_changeset_only_contains_deletes() { HistoryWalker.Walk(new EntryPoint(1)); var result = GitProcess.Execute("ls-files"); Assert.That(result.Stderr.Count(), Is.EqualTo(0)); Assert.That(result.Stdout.Count(), Is.EqualTo(4)); Assert.That(result.Stdout.Contains(".gitattributes")); Assert.That(result.Stdout.Contains(".gitignore")); Assert.That(result.Stdout.Contains("BobA.txt")); Assert.That(result.Stdout.Contains("BobB.txt")); }
public void HistoryWalker_should_create_a_new_branch_from_the_parent_branch() { Env .Branch("master", "$/Mock/Main", RepoPath) .Branch("feature-branch-x", "$/Mock/FeatureX", RepoPath) .Branch("feature-branch-y", "$/Mock/FeatureY", RepoPath) .Changeset(OldUserAlice, UserAlice, "Add files") .Add("$/Mock/Main/AliceMaster.txt", "Alice Master") .Changeset(OldUserAlice, UserAlice, "Branch from master to X") .Hierarchy("$/Mock/Main/", "$/Mock/FeatureX/") .Add("$/Mock/FeatureX/AliceX.txt", "Alice X") .Changeset(OldUserAlice, UserAlice, "Branch from master to Y") .Hierarchy("$/Mock/Main/", "$/Mock/FeatureY/") .Add("$/Mock/FeatureY/AliceY.txt", "Alice Y") .End(); HistoryWalker.Walk(new EntryPoint(1)); var branches = GitProcess.Execute("for-each-ref --format='%(refname:short)' refs/heads"); Assert.That(branches.Stderr.Count(), Is.EqualTo(0)); Assert.That(branches.Stdout.Count(), Is.EqualTo(3)); Assert.That(branches.Stdout.Contains("'master'")); Assert.That(branches.Stdout.Contains("'feature-branch-x'")); Assert.That(branches.Stdout.Contains("'feature-branch-y'")); Assert.That(Git.CurrentBranch(), Is.EqualTo("feature-branch-y")); var commits = GitProcess.Execute("log --pretty=format:'%s'"); Assert.That(commits.Stderr.Count(), Is.EqualTo(0)); Assert.That(commits.Stdout.Count(), Is.EqualTo(2)); Assert.That(commits.Stdout.Contains("'[C3] Branch from master to Y'")); Assert.That(commits.Stdout.Contains("'[C1] Add files'")); }
/// <summary>Check latest gitter version on this chanel.</summary> /// <returns>Latest gitter version.</returns> public Version CheckVersion() { Version result = null; var cmd = new LsRemoteCommand( LsRemoteCommand.Heads(), LsRemoteCommand.Tags(), new CommandParameter(_url)); GitOutput output; try { output = GitProcess.Execute(new GitInput(cmd)); } catch { return(null); } if (output.ExitCode != 0) { return(null); } var parser = new GitParser(output.Output); string branchSHA1 = null; while (!parser.IsAtEndOfString) { var sha1 = parser.ReadString(40, 1); var refname = parser.ReadLine(); if (branchSHA1 == null) { if (refname == GitConstants.LocalBranchPrefix + _branch) { branchSHA1 = sha1; } } else { if (sha1 == branchSHA1 && refname.Length > GitConstants.TagPrefix.Length + 1 && refname.StartsWith(GitConstants.TagPrefix) && refname[GitConstants.TagPrefix.Length] == 'v') { var s = GitConstants.TagPrefix.Length + 1; var e = refname.Length - 1; while (s < refname.Length && !char.IsDigit(refname[s])) { ++s; } while (e > 0 && !char.IsDigit(refname[e])) { --e; } if (e > s && Version.TryParse(refname.Substring(s, e - s + 1), out result)) { break; } else { result = null; } } } } return(result); }