public static string GetSelectedPatch(this FileViewer diffViewer, string firstRevision, string secondRevision, GitItemStatus file) { if (!file.IsTracked) { var fullPath = Path.Combine(diffViewer.Module.WorkingDir, file.Name); if (Directory.Exists(fullPath) && GitModule.IsValidGitWorkingDir(fullPath)) { // git-status does not detect details for untracked and git-diff --no-index will not give info return(LocalizationHelpers.GetSubmoduleText(diffViewer.Module, file.Name.TrimEnd('/'), "")); } } if (file.IsSubmodule && file.SubmoduleStatus != null) { return(LocalizationHelpers.ProcessSubmoduleStatus(diffViewer.Module, file.SubmoduleStatus.Result)); } PatchApply.Patch patch = GetItemPatch(diffViewer.Module, file, firstRevision, secondRevision, diffViewer.GetExtraDiffArguments(), diffViewer.Encoding); if (patch == null) { return(string.Empty); } if (file.IsSubmodule) { return(LocalizationHelpers.ProcessSubmodulePatch(diffViewer.Module, file.Name, patch)); } return(patch.Text); }
public static GitSubmoduleStatus GetCurrentSubmoduleChanges(GitModule module, string fileName, string oldFileName, bool staged) { PatchApply.Patch patch = module.GetCurrentChanges(fileName, oldFileName, staged, "", module.FilesEncoding); string text = patch != null ? patch.Text : ""; return(GetSubmoduleStatus(text, module, fileName)); }
public void TestAppendText() { PatchApply.Patch patch = new PatchApply.Patch(); patch.AppendText("text1"); patch.AppendText("text2"); Assert.AreEqual("text1text2", patch.Text); }
public void TestAppendText() { PatchApply.Patch patch = new PatchApply.Patch(); patch.AppendText("text1"); patch.AppendText("text2"); Assert.AreEqual("text1text2", patch.Text); }
public void TestAppendTextLine() { PatchApply.Patch patch = new PatchApply.Patch(); patch.AppendTextLine("text1"); patch.AppendTextLine("text2"); patch.AppendTextLine("text3"); var expected = "text1\ntext2\ntext3\n"; Assert.AreEqual(expected, patch.Text); }
public void TestAppendTextLine() { PatchApply.Patch patch = new PatchApply.Patch(); patch.AppendTextLine("text1"); patch.AppendTextLine("text2"); patch.AppendTextLine("text3"); var expected = "text1\ntext2\ntext3\n"; Assert.AreEqual(expected, patch.Text); }
public static string GetSelectedPatch(this FileViewer diffViewer, string firstRevision, string secondRevision, GitItemStatus file) { if (firstRevision == null) { return(null); } //to simplify if-ology if (GitRevision.IsArtificial(secondRevision) && firstRevision != GitRevision.UnstagedGuid) { string temp = firstRevision; firstRevision = secondRevision; secondRevision = temp; } if (IsItemUntracked(file, firstRevision, secondRevision)) { var fullPath = Path.Combine(diffViewer.Module.WorkingDir, file.Name); if (Directory.Exists(fullPath) && GitModule.IsValidGitWorkingDir(fullPath)) { return(LocalizationHelpers.GetSubmoduleText(diffViewer.Module, file.Name.TrimEnd('/'), "")); } return(FileReader.ReadFileContent(fullPath, diffViewer.Encoding)); } if (file.IsSubmodule && file.SubmoduleStatus != null) { return(LocalizationHelpers.ProcessSubmoduleStatus(diffViewer.Module, file.SubmoduleStatus.Result)); } PatchApply.Patch patch = GetItemPatch(diffViewer.Module, file, firstRevision, secondRevision, diffViewer.GetExtraDiffArguments(), diffViewer.Encoding); if (patch == null) { return(string.Empty); } if (file.IsSubmodule) { return(LocalizationHelpers.ProcessSubmodulePatch(diffViewer.Module, file.Name, patch)); } return(patch.Text); }
public static string ProcessSubmodulePatch(GitModule module, string fileName, PatchApply.Patch patch) { string text = patch != null ? patch.Text : null; var status = GitCommandHelpers.GetSubmoduleStatus(text, module, fileName); if (status == null) { return(""); } return(ProcessSubmoduleStatus(module, status)); }
public static string GetSelectedPatch(this FileViewer diffViewer, RevisionGrid grid, GitItemStatus file) { IList <GitRevision> revisions = grid.GetSelectedRevisions(); if (revisions.Count == 0) { return(null); } string firstRevision = revisions[0].Guid; var secondRevision = revisions.Count == 2 ? revisions[1].Guid : null; //to simplify if-ology if (GitRevision.IsArtificial(secondRevision) && firstRevision != GitRevision.UncommittedWorkingDirGuid) { firstRevision = secondRevision; secondRevision = revisions[0].Guid; } string extraDiffArgs = null; if (firstRevision == GitRevision.UncommittedWorkingDirGuid) //working dir changes { if (secondRevision == null || secondRevision == GitRevision.IndexGuid) { if (file.IsTracked) { return(ProcessDiffText(GitModule.Current.GetCurrentChanges(file.Name, file.OldName, false, diffViewer.GetExtraDiffArguments(), diffViewer.Encoding), file.IsSubmodule)); } return(FileReader.ReadFileContent(GitModule.CurrentWorkingDir + file.Name, diffViewer.Encoding)); } else { firstRevision = secondRevision; secondRevision = string.Empty; } } if (firstRevision == GitRevision.IndexGuid) //index { if (secondRevision == null) { return(ProcessDiffText(GitModule.Current.GetCurrentChanges(file.Name, file.OldName, true, diffViewer.GetExtraDiffArguments(), diffViewer.Encoding), file.IsSubmodule)); } //rev1 vs index firstRevision = secondRevision; secondRevision = string.Empty; extraDiffArgs = string.Join(" ", extraDiffArgs, "--cached"); } Debug.Assert(!GitRevision.IsArtificial(firstRevision), string.Join(" ", firstRevision, secondRevision)); if (secondRevision == null) { secondRevision = firstRevision + "^"; } PatchApply.Patch patch = GitModule.Current.GetSingleDiff(firstRevision, secondRevision, file.Name, file.OldName, string.Join(" ", diffViewer.GetExtraDiffArguments(), extraDiffArgs), diffViewer.Encoding); if (patch == null) { return(string.Empty); } return(ProcessDiffText(patch.Text, file.IsSubmodule)); }
public void TestPatchConstructor() { PatchApply.Patch patch = new PatchApply.Patch(); Assert.IsNotNull(patch); }
public void TestPatchConstructor() { PatchApply.Patch patch = new PatchApply.Patch(); Assert.IsNotNull(patch); }