private void resetSubmoduleChanges_Click(object sender, EventArgs e)
{
var unStagedFiles = (List<GitItemStatus>)Unstaged.SelectedItems;
if (unStagedFiles.Count == 0)
return;
// Show a form asking the user if they want to reset the changes.
FormResetChanges.ResultType resetType = FormResetChanges.ShowResetDialog(this, true, true);
if (resetType == FormResetChanges.ResultType.CANCEL)
return;
foreach (var item in unStagedFiles.Where(it => it.IsSubmodule))
{
GitModule module = new GitModule(Module.WorkingDir + item.Name + Settings.PathSeparator.ToString());
// Reset all changes.
module.ResetHard("");
// Also delete new files, if requested.
if (resetType == FormResetChanges.ResultType.RESET_AND_DELETE)
{
var unstagedFiles = module.GetUnstagedFiles();
foreach (var file in unstagedFiles.Where(file => file.IsNew))
{
try
{
File.Delete(module.WorkingDir + file.Name);
}
catch (System.IO.IOException) { }
catch (System.UnauthorizedAccessException) { }
}
}
}
Initialize();
}