private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) { var selectedRows = FileChanges.GetRevisions(); if (selectedRows.Count > 0) { string orgFileName = selectedRows[0].Name; if (string.IsNullOrEmpty(orgFileName)) { orgFileName = FileName; } string fileName = orgFileName.Replace(Settings.PathSeparatorWrong, Settings.PathSeparator); SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.FileName = Settings.WorkingDir + fileName; fileDialog.AddExtension = true; fileDialog.DefaultExt = GitCommandHelpers.GetFileExtension(fileDialog.FileName); fileDialog.Filter = "Current format (*." + GitCommandHelpers.GetFileExtension(fileDialog.FileName) + ")|*." + GitCommandHelpers.GetFileExtension(fileDialog.FileName) + "|All files (*.*)|*.*"; if (fileDialog.ShowDialog() == DialogResult.OK) { GitCommandHelpers.SaveBlobAs(fileDialog.FileName, selectedRows[0].Guid + ":\"" + orgFileName + "\""); } } }
private void FileChangesDoubleClick(object sender, EventArgs e) { if (FileChanges.GetRevisions().Count == 0) { GitUICommands.Instance.StartCompareRevisionsDialog(); return; } IGitItem revision = FileChanges.GetRevisions()[0]; var form = new FormDiffSmall(); form.SetRevision(revision.Guid); form.ShowDialog(); }
private void OpenWithDifftoolToolStripMenuItemClick(object sender, EventArgs e) { var selectedRows = FileChanges.GetRevisions(); string rev1; string rev2; switch (selectedRows.Count) { case 1: { rev1 = selectedRows[0].Guid; var parentGuids = selectedRows[0].ParentGuids; if (parentGuids != null && parentGuids.Length > 0) { rev2 = parentGuids[0]; } else { rev2 = rev1; } } break; case 0: return; default: rev1 = selectedRows[0].Guid; rev2 = selectedRows[1].Guid; break; } var output = GitCommandHelpers.OpenWithDifftool(FileName, rev1, rev2); if (!string.IsNullOrEmpty(output)) { MessageBox.Show(output); } }
private void UpdateSelectedFileViewers() { var selectedRows = FileChanges.GetRevisions(); if (selectedRows.Count == 0) { return; } IGitItem revision = selectedRows[0]; var fileName = revision.Name; if (string.IsNullOrEmpty(fileName)) { fileName = FileName; } Text = string.Format("File History ({0})", fileName); if (tabControl1.SelectedTab == Blame) { blameControl1.LoadBlame(revision.Guid, fileName, FileChanges); } if (tabControl1.SelectedTab == ViewTab) { var scrollpos = View.ScrollPos; View.ViewGitItemRevision(fileName, revision.Guid); View.ScrollPos = scrollpos; } switch (selectedRows.Count) { case 1: { IGitItem revision1 = selectedRows[0]; if (tabControl1.SelectedTab == DiffTab) { Diff.ViewPatch( () => { Patch diff = GitCommandHelpers.GetSingleDiff(revision1.Guid, revision1.Guid + "^", fileName, Diff.GetExtraDiffArguments()); if (diff == null) { return(string.Empty); } return(diff.Text); } ); } } break; case 2: { IGitItem revision1 = selectedRows[0]; IGitItem revision2 = selectedRows[1]; if (tabControl1.SelectedTab == DiffTab) { Diff.ViewPatch( () => GitCommandHelpers.GetSingleDiff(revision1.Guid, revision2.Guid, fileName, Diff.GetExtraDiffArguments()).Text); } } break; default: Diff.ViewPatch("You need to select 2 files to view diff."); break; } }