From e3aeea4d683f565a1704ed6614854c5fd7210561 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sun, 24 Mar 2013 21:09:11 +0100 Subject: [PATCH] Smoothly migrate msysgit\cmd-paths to bin-paths on upgrade Signed-off-by: Sven Strickroth --- src/TortoiseProc/TortoiseProc.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/TortoiseProc/TortoiseProc.cpp b/src/TortoiseProc/TortoiseProc.cpp index e87d4ddf2..cfc2843c8 100644 --- a/src/TortoiseProc/TortoiseProc.cpp +++ b/src/TortoiseProc/TortoiseProc.cpp @@ -42,6 +42,7 @@ #include "gitindex.h" #include "Libraries.h" #include "TaskbarUUID.h" +#include "GitConfig.h" #define STRUCT_IOVEC_DEFINED @@ -558,6 +559,21 @@ void CTortoiseProcApp::CheckUpgrade() { if (CRegStdDWORD(_T("Software\\TortoiseGit\\LogTopoOrder"), TRUE) == FALSE) CRegStdDWORD(_T("Software\\TortoiseGit\\LogOrderBy")) = 0; + + // smoothly migrate broken msysgit path settings + CString oldmsysGitSetting = CRegString(REG_MSYSGIT_PATH); + oldmsysGitSetting.TrimRight(_T("\\")); + CString right = oldmsysGitSetting.Right(4); + if (oldmsysGitSetting.GetLength() > 4 && oldmsysGitSetting.Right(4) == _T("\\cmd")) + { + CString newPath = oldmsysGitSetting.Mid(0, oldmsysGitSetting.GetLength() - 3) + _T("bin"); + if (PathFileExists(newPath + _T("\\git.exe"))) + { + CRegString(REG_MSYSGIT_PATH) = newPath; + g_Git.m_bInitialized = FALSE; + g_Git.CheckMsysGitDir(); + } + } } if (lVersion <= 0x01040000) -- 2.11.4.GIT