From bbbbc74053320cbb7ed8fe287a8c6883a7a5c94b Mon Sep 17 00:00:00 2001 From: Shun Tsukamoto Date: Sat, 21 Nov 2020 08:39:51 +0100 Subject: [PATCH] Fixed issue #3668: "Revert to revision" fails for added files Signed-off-by: Shun Tsukamoto Signed-off-by: Sven Strickroth --- src/Changelog.txt | 1 + src/TortoiseProc/FileDiffDlg.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Changelog.txt b/src/Changelog.txt index c04618fec..b6ac58418 100644 --- a/src/Changelog.txt +++ b/src/Changelog.txt @@ -17,6 +17,7 @@ Released: unreleased * TortoiseGitMerge: Make column index 1 based as most editors are 1-based instead of instead of 0 based * Fixed issue #3662: LogDlg: The "Compare change sets" command is not shown when two commits are adjacent on the list * Fixed issue #3664: revert dialog in dark mode shows file list black + * Fixed issue #3668: "Revert to revision" fails for added files = Release 2.11.0 = Released: 2020-10-10 diff --git a/src/TortoiseProc/FileDiffDlg.cpp b/src/TortoiseProc/FileDiffDlg.cpp index 0be1684ce..11b376c11 100644 --- a/src/TortoiseProc/FileDiffDlg.cpp +++ b/src/TortoiseProc/FileDiffDlg.cpp @@ -1333,7 +1333,15 @@ int CFileDiffDlg::RevertSelectedItemToVersion(CString rev) { CString cmd, out; auto fentry = m_arFilteredList[index]; - cmd.Format(L"git.exe checkout %s -- \"%s\"", static_cast(rev), static_cast(fentry->GetGitPathString())); + switch (fentry->m_Action) + { + case CTGitPath::LOGACTIONS_ADDED: + cmd.Format(L"git.exe rm --cached -- \"%s\"", static_cast(fentry->GetGitPathString())); + break; + default: + cmd.Format(L"git.exe checkout %s -- \"%s\"", static_cast(rev), static_cast(fentry->GetGitPathString())); + break; + } if (g_Git.Run(cmd, &out, CP_UTF8)) { if (CMessageBox::Show(GetSafeHwnd(), out, L"TortoiseGit", 2, IDI_WARNING, CString(MAKEINTRESOURCE(IDS_IGNOREBUTTON)), CString(MAKEINTRESOURCE(IDS_ABORTBUTTON))) == 2) -- 2.11.4.GIT