From 699ea43c9adb4850f08864ac043392977c6fed3b Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sat, 3 Nov 2012 18:12:37 +0100 Subject: [PATCH] Do not show conflict resolved dialog from TMerge (fixes issue #1492) Signed-off-by: Sven Strickroth --- src/TortoiseMerge/MainFrm.cpp | 2 +- src/TortoiseProc/Commands/ResolveCommand.cpp | 41 ++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/TortoiseMerge/MainFrm.cpp b/src/TortoiseMerge/MainFrm.cpp index 85fbbbe03..acc035d6d 100644 --- a/src/TortoiseMerge/MainFrm.cpp +++ b/src/TortoiseMerge/MainFrm.cpp @@ -1873,7 +1873,7 @@ BOOL CMainFrame::MarkAsResolved() CString cmd = _T("/command:resolve /path:\""); cmd += m_Data.m_mergedFile.GetFilename(); - cmd += _T("\" /closeonend:1 /noquestion /skipcheck"); + cmd += _T("\" /closeonend:1 /noquestion /skipcheck /silent"); if (!CAppUtils::RunTortoiseProc(cmd)) return FALSE; diff --git a/src/TortoiseProc/Commands/ResolveCommand.cpp b/src/TortoiseProc/Commands/ResolveCommand.cpp index a146006fb..d64847781 100644 --- a/src/TortoiseProc/Commands/ResolveCommand.cpp +++ b/src/TortoiseProc/Commands/ResolveCommand.cpp @@ -1,5 +1,6 @@ // TortoiseGit - a Windows shell extension for easy version control +// Copyright (C) 2012 - TortoiseGit // Copyright (C) 2007-2008 - TortoiseSVN // This program is free software; you can redistribute it and/or @@ -18,7 +19,8 @@ // #include "StdAfx.h" #include "ResolveCommand.h" - +#include "AppUtils.h" +#include "MessageBox.h" #include "ResolveDlg.h" #include "GITProgressDlg.h" @@ -33,17 +35,34 @@ bool ResolveCommand::Execute() { if (dlg.m_pathList.GetCount()) { + if (parser.HasKey(L"silent")) + { + for (int i = 0; i < dlg.m_pathList.GetCount(); i++) + { + CString cmd, out; + cmd.Format(_T("git.exe add -f -- \"%s\""), dlg.m_pathList[i].GetGitPathString()); + if (g_Git.Run(cmd, &out, CP_UTF8)) + { + CMessageBox::Show(NULL, out, _T("TortoiseGit"), MB_OK | MB_ICONERROR); + return false; + } - CGitProgressDlg progDlg(CWnd::FromHandle(hWndExplorer)); - theApp.m_pMainWnd = &progDlg; - progDlg.SetCommand(CGitProgressDlg::GitProgress_Resolve); - if (parser.HasVal(_T("closeonend"))) - progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); - progDlg.SetOptions(parser.HasKey(_T("skipcheck")) ? ProgOptSkipConflictCheck : ProgOptNone); - progDlg.SetPathList(dlg.m_pathList); - progDlg.DoModal(); - return !progDlg.DidErrorsOccur(); - + CAppUtils::RemoveTempMergeFile((CTGitPath &)dlg.m_pathList[i]); + } + return true; + } + else + { + CGitProgressDlg progDlg(CWnd::FromHandle(hWndExplorer)); + theApp.m_pMainWnd = &progDlg; + progDlg.SetCommand(CGitProgressDlg::GitProgress_Resolve); + if (parser.HasVal(_T("closeonend"))) + progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); + progDlg.SetOptions(parser.HasKey(_T("skipcheck")) ? ProgOptSkipConflictCheck : ProgOptNone); + progDlg.SetPathList(dlg.m_pathList); + progDlg.DoModal(); + return !progDlg.DidErrorsOccur(); + } } } return false; -- 2.11.4.GIT