Ejemplo n.º 1
0
        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 + "\"");
                }
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }