Exemplo n.º 1
0
        private void OkClick(object sender, EventArgs e)
        {
            try
            {
                if (RevisionGrid.GetRevisions().Count != 1)
                {
                    MessageBox.Show("Select 1 revision to checkout.", "Checkout");
                    return;
                }

                var command = "checkout \"" + RevisionGrid.GetRevisions()[0].Guid + "\"";
                if (Force.Checked)
                {
                    command += " --force";
                }

                new FormProcess(command).ShowDialog();

                Close();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }
Exemplo n.º 2
0
        private void RevisionGridSelectionChanged(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current            = Cursors.WaitCursor;
                DiffFiles.GitItemStatuses = null;
                var revisions = RevisionGrid.GetRevisions();

                if (revisions.Count == 1)
                {
                    DiffFiles.GitItemStatuses =
                        GitCommandHelpers.GetDiffFiles(
                            revisions[0].Guid,
                            revisions[0].ParentGuids[0]);
                }

                if (revisions.Count == 2)
                {
                    DiffFiles.GitItemStatuses =
                        GitCommandHelpers.GetDiffFiles(
                            revisions[0].Guid,
                            revisions[1].Guid);
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
            Cursor.Current = Cursors.Default;
        }
Exemplo n.º 3
0
        private void Ok_Click(object sender, EventArgs e)
        {
            try
            {
                if (RevisionGrid.GetRevisions().Count != 1)
                {
                    MessageBox.Show(_selectOneRevision.Text, _branchCaption.Text);
                    return;
                }

                new FormProcess(GitCommandHelpers.BranchCmd(BName.Text, RevisionGrid.GetRevisions()[0].Guid, CheckoutAfterCreate.Checked)).ShowDialog();

                Close();
            }
            catch
            {
            }
        }
Exemplo n.º 4
0
        private void CherryPick_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            if (RevisionGrid.GetRevisions().Count != 1)
            {
                MessageBox.Show("Select 1 revision to pick.", "Cherry pick");
                return;
            }
            bool   formClosed = false;
            string arguments  = "";
            bool   IsMerge    = GitCommandHelpers.IsMerge(RevisionGrid.GetRevisions()[0].Guid);

            if (IsMerge && !autoParent.Checked)
            {
                GitRevision[] ParentsRevisions = GitCommandHelpers.GetParents(RevisionGrid.GetRevisions()[0].Guid);
                var           choose           = new FormCherryPickMerge(ParentsRevisions);
                choose.ShowDialog();
                if (choose.OkClicked)
                {
                    arguments = "-m " + (choose.ParentsList.SelectedItems[0].Index + 1);
                }
                else
                {
                    formClosed = true;
                }
            }
            else if (IsMerge)
            {
                arguments = "-m 1";
            }

            if (!formClosed)
            {
                MessageBox.Show("Command executed " + Environment.NewLine + GitCommandHelpers.CherryPick(RevisionGrid.GetRevisions()[0].Guid, AutoCommit.Checked, arguments), "Cherry pick");

                MergeConflictHandler.HandleMergeConflicts();

                RevisionGrid.RefreshRevisions();

                Cursor.Current = Cursors.Default;
            }
        }
Exemplo n.º 5
0
        private void ViewSelectedFileDiff()
        {
            Cursor.Current = Cursors.WaitCursor;

            if (DiffFiles.SelectedItem == null)
            {
                return;
            }

            Patch selectedPatch;

            var revisions = RevisionGrid.GetRevisions();

            if (revisions.Count == 2)
            {
                selectedPatch =
                    GitCommandHelpers
                    .GetSingleDiff(
                        revisions[0].Guid,
                        revisions[1].Guid,
                        DiffFiles.SelectedItem.Name,
                        DiffFiles.SelectedItem.OldName,
                        diffViewer.GetExtraDiffArguments());
            }
            else
            {
                var revision = revisions[0];
                selectedPatch =
                    GitCommandHelpers
                    .GetSingleDiff(
                        revision.Guid,
                        revision.ParentGuids[0],
                        DiffFiles.SelectedItem.Name,
                        DiffFiles.SelectedItem.OldName,
                        diffViewer.GetExtraDiffArguments());
            }

            diffViewer.ViewPatch(selectedPatch != null ? selectedPatch.Text : "");
            Cursor.Current = Cursors.Default;
        }
Exemplo n.º 6
0
        private void FormatPatch_Click(object sender, EventArgs e)
        {
            if (SaveToDir.Checked && string.IsNullOrEmpty(OutputPath.Text))
            {
                MessageBox.Show("You need to enter an output path.");
                return;
            }

            if (!SaveToDir.Checked && string.IsNullOrEmpty(MailAddress.Text))
            {
                MessageBox.Show("You need to enter an email address.");
                return;
            }

            if (!SaveToDir.Checked && string.IsNullOrEmpty(MailSubject.Text))
            {
                MessageBox.Show("You need to enter a mail subject.");
                return;
            }

            if (!SaveToDir.Checked && string.IsNullOrEmpty(Settings.Smtp))
            {
                MessageBox.Show("You need to enter a valid smtp in the settings dialog.");
                return;
            }

            string savePatchesToDir = OutputPath.Text;

            if (!SaveToDir.Checked)
            {
                savePatchesToDir = Settings.WorkingDirGitDir() + "\\PatchesToMail";
                if (Directory.Exists(savePatchesToDir))
                {
                    foreach (string file in Directory.GetFiles(savePatchesToDir, "*.patch"))
                    {
                        File.Delete(file);
                    }
                }
                else
                {
                    Directory.CreateDirectory(savePatchesToDir);
                }
            }

            string rev1   = "";
            string rev2   = "";
            string result = "";

            if (RevisionGrid.GetRevisions().Count > 0)
            {
                if (RevisionGrid.GetRevisions().Count == 1)
                {
                    rev1   = RevisionGrid.GetRevisions()[0].ParentGuids[0];
                    rev2   = RevisionGrid.GetRevisions()[0].Guid;
                    result = GitCommandHelpers.FormatPatch(rev1, rev2, savePatchesToDir);
                }

                if (RevisionGrid.GetRevisions().Count == 2)
                {
                    rev1   = RevisionGrid.GetRevisions()[0].ParentGuids[0];
                    rev2   = RevisionGrid.GetRevisions()[1].Guid;
                    result = GitCommandHelpers.FormatPatch(rev1, rev2, savePatchesToDir);
                }

                if (RevisionGrid.GetRevisions().Count > 2)
                {
                    int n = 0;
                    foreach (GitRevision revision in RevisionGrid.GetRevisions())
                    {
                        n++;
                        rev1    = revision.ParentGuids[0];
                        rev2    = revision.Guid;
                        result += GitCommandHelpers.FormatPatch(rev1, rev2, savePatchesToDir, n);
                    }
                }
            }
            else
            if (string.IsNullOrEmpty(rev1) || string.IsNullOrEmpty(rev2))
            {
                MessageBox.Show("You need to select 2 revisions", "Patch error");
                return;
            }

            if (!SaveToDir.Checked)
            {
                if (SendMail(savePatchesToDir))
                {
                    result += "\n\nSend to: " + MailAddress.Text;
                }
                else
                {
                    result += "\n\nFailed to send mail.";
                }


                //Clean up
                if (Directory.Exists(savePatchesToDir))
                {
                    foreach (string file in Directory.GetFiles(savePatchesToDir, "*.patch"))
                    {
                        File.Delete(file);
                    }
                }
            }

            MessageBox.Show(result, "Patch result");
            Close();
        }