private void menuUndo_Click(object sender, RoutedEventArgs e) { GetSelectedFileFullName(fileName => { GitFileStatus status = tracker.GetFileStatus(fileName); if (status == GitFileStatus.Modified || status == GitFileStatus.Staged || status == GitFileStatus.Deleted || status == GitFileStatus.Removed) { if (MessageBox.Show("Are you sure you want to undo changes for " + Path.GetFileName(fileName) + " and restore a version from the last commit? ", "Undo Changes", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { tracker.CheckOutFile(fileName); } } }, false); // file must exists check flag is false }
public void CheckOutFileTest() { GitFileStatusTracker.Init(tempFolder); File.WriteAllLines(tempFile, lines); GitFileStatusTracker tracker = new GitFileStatusTracker(tempFolder); tracker.StageFile(tempFile); tracker.Commit("test"); File.WriteAllText(tempFile, "changed text"); tracker.CheckOutFile(tempFile); var newlines = File.ReadAllLines(tempFile); Assert.AreEqual(lines[0], newlines[0]); Assert.AreEqual(lines[1], newlines[1]); Assert.AreEqual(lines[2], newlines[2]); }
private void menuUndo_Click(object sender, RoutedEventArgs e) { const string deleteMsg = @" Note: Undo file changes will restore the file(s) from the last commit."; var filesToUndo = new List <string>(); GetSelectedFiles(fileName => filesToUndo.Add(fileName)); string title = (filesToUndo.Count == 1) ? "Undo File Changes" : "Undo Files Changes for " + filesToUndo.Count + " Files?"; string message = (filesToUndo.Count == 1) ? "Are you sure you want to undo changes to file: " + Path.GetFileName(filesToUndo.First()) + deleteMsg : String.Format("Are you sure you want to undo changes to {0} files", filesToUndo.Count) + deleteMsg; if (MessageBox.Show(message, title, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { foreach (var fileName in filesToUndo) { tracker.CheckOutFile(fileName); } } }