You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
5.5 KiB
188 lines
5.5 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
|
|
namespace GitUI
|
|
{
|
|
public partial class MergePatch : Form
|
|
{
|
|
public MergePatch()
|
|
{
|
|
InitializeComponent();
|
|
EnableButtons();
|
|
}
|
|
|
|
public void SetPatchFile(string name)
|
|
{
|
|
PatchFile.Text = name;
|
|
}
|
|
|
|
private void EnableButtons()
|
|
{
|
|
if (GitCommands.GitCommands.InTheMiddleOfPatch())
|
|
{
|
|
Apply.Enabled = false;
|
|
AddFiles.Enabled = true;
|
|
Resolved.Enabled = !GitCommands.GitCommands.InTheMiddleOfConflictedMerge();
|
|
Mergetool.Enabled = GitCommands.GitCommands.InTheMiddleOfConflictedMerge();
|
|
Skip.Enabled = true;
|
|
Abort.Enabled = true;
|
|
|
|
PatchFile.Enabled = false;
|
|
PatchFile.ReadOnly = false;
|
|
BrowsePatch.Enabled = false;
|
|
PatchDir.Enabled = false;
|
|
PatchDir.ReadOnly = false;
|
|
BrowseDir.Enabled = false;
|
|
}
|
|
else
|
|
{
|
|
PatchFile.Enabled = PatchFileMode.Checked;
|
|
PatchFile.ReadOnly = !PatchFileMode.Checked;
|
|
BrowsePatch.Enabled = PatchFileMode.Checked;
|
|
PatchDir.Enabled = PatchDirMode.Checked;
|
|
PatchDir.ReadOnly = !PatchDirMode.Checked;
|
|
BrowseDir.Enabled = PatchDirMode.Checked;
|
|
|
|
Apply.Enabled = true;
|
|
AddFiles.Enabled = false;
|
|
Resolved.Enabled = false;
|
|
Mergetool.Enabled = false;
|
|
Skip.Enabled = false;
|
|
Abort.Enabled = false;
|
|
}
|
|
|
|
patchGrid1.Initialize();
|
|
|
|
SolveMergeconflicts.Visible = GitCommands.GitCommands.InTheMiddleOfConflictedMerge();
|
|
|
|
Resolved.Text = "Conflicts resolved";
|
|
Mergetool.Text = "Solve conflicts";
|
|
|
|
if (GitCommands.GitCommands.InTheMiddleOfConflictedMerge())
|
|
{
|
|
Mergetool.Text = ">Solve conflicts<";
|
|
}
|
|
else
|
|
if (GitCommands.GitCommands.InTheMiddleOfPatch())
|
|
{
|
|
Resolved.Text = ">Conflicts resolved<";
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void textBox1_TextChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private string SelectPatchFile(string initialDirectory)
|
|
{
|
|
OpenFileDialog dialog = new OpenFileDialog();
|
|
dialog.Filter =
|
|
"Patch file (*.Patch)|*.Patch";
|
|
dialog.InitialDirectory = initialDirectory;
|
|
dialog.Title = "Select patch file";
|
|
return (dialog.ShowDialog() == DialogResult.OK) ? dialog.FileName : PatchFile.Text;
|
|
}
|
|
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
PatchFile.Text = SelectPatchFile(@".");
|
|
}
|
|
|
|
private void Apply_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(PatchFile.Text) && string.IsNullOrEmpty(PatchDir.Text))
|
|
{
|
|
MessageBox.Show("Please select a patch to apply");
|
|
return;
|
|
}
|
|
|
|
if (PatchFileMode.Checked)
|
|
new FormProcess(GitCommands.GitCommands.PatchCmd(PatchFile.Text));
|
|
else
|
|
new FormProcess(GitCommands.GitCommands.PatchCmd(PatchDir.Text + "\\*.patch"));
|
|
|
|
EnableButtons();
|
|
|
|
if (!GitCommands.GitCommands.InTheMiddleOfConflictedMerge() && !GitCommands.GitCommands.InTheMiddleOfRebase() && !GitCommands.GitCommands.InTheMiddleOfPatch())
|
|
Close();
|
|
}
|
|
|
|
private void Mergetool_Click(object sender, EventArgs e)
|
|
{
|
|
new FormResolveConflicts().ShowDialog();
|
|
EnableButtons();
|
|
}
|
|
|
|
private void Skip_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
new FormProcess(GitCommands.GitCommands.SkipCmd());
|
|
EnableButtons();
|
|
}
|
|
|
|
private void button1_Click_1(object sender, EventArgs e)
|
|
{
|
|
new FormProcess(GitCommands.GitCommands.ResolvedCmd());
|
|
EnableButtons();
|
|
}
|
|
|
|
private void Abort_Click(object sender, EventArgs e)
|
|
{
|
|
new FormProcess(GitCommands.GitCommands.AbortCmd());
|
|
EnableButtons();
|
|
}
|
|
|
|
private void AddFiles_Click(object sender, EventArgs e)
|
|
{
|
|
FormAddFiles form = new FormAddFiles();
|
|
form.ShowDialog();
|
|
}
|
|
|
|
private void MergePatch_Load(object sender, EventArgs e)
|
|
{
|
|
this.Text = "Apply patch (" + GitCommands.Settings.WorkingDir + ")";
|
|
}
|
|
|
|
private void MergePatch_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
}
|
|
|
|
private void BrowseDir_Click(object sender, EventArgs e)
|
|
{
|
|
FolderBrowserDialog browseDialog = new FolderBrowserDialog();
|
|
|
|
if (browseDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
PatchDir.Text = browseDialog.SelectedPath;
|
|
}
|
|
|
|
}
|
|
|
|
private void PatchFileMode_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
EnableButtons();
|
|
}
|
|
|
|
private void PatchDirMode_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void SolveMergeconflicts_Click(object sender, EventArgs e)
|
|
{
|
|
Mergetool_Click(sender, e);
|
|
}
|
|
}
|
|
}
|