OSDN Git Service

Add Resolve "Their" and Resolve "Mine" at conflict item.
[tortoisegit/TortoiseGitJp.git] / src / Git / GitStatusListCtrl.cpp
index 7861509..b28692c 100644 (file)
@@ -2291,8 +2291,8 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                }\r
                                if ((m_dwContextMenus & SVNSLC_POPRESOLVE)/*&&(entry->textstatus == git_wc_status_conflicted)*/)\r
                                {\r
                                }\r
                                if ((m_dwContextMenus & SVNSLC_POPRESOLVE)/*&&(entry->textstatus == git_wc_status_conflicted)*/)\r
                                {\r
-                                       //popup.AppendMenuIcon(IDSVNLC_RESOLVETHEIRS, IDS_SVNPROGRESS_MENUUSETHEIRS, IDI_RESOLVE);\r
-                                       //popup.AppendMenuIcon(IDSVNLC_RESOLVEMINE, IDS_SVNPROGRESS_MENUUSEMINE, IDI_RESOLVE);\r
+                                       popup.AppendMenuIcon(IDSVNLC_RESOLVETHEIRS, IDS_SVNPROGRESS_MENUUSETHEIRS, IDI_RESOLVE);\r
+                                       popup.AppendMenuIcon(IDSVNLC_RESOLVEMINE, IDS_SVNPROGRESS_MENUUSEMINE, IDI_RESOLVE);\r
                                }\r
                                if ((m_dwContextMenus & SVNSLC_POPCONFLICT)||(m_dwContextMenus & SVNSLC_POPRESOLVE))\r
                                        popup.AppendMenu(MF_SEPARATOR);\r
                                }\r
                                if ((m_dwContextMenus & SVNSLC_POPCONFLICT)||(m_dwContextMenus & SVNSLC_POPRESOLVE))\r
                                        popup.AppendMenu(MF_SEPARATOR);\r
@@ -2852,6 +2852,8 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                CAppUtils::ConflictEdit(*filepath);\r
                                break;\r
                        }\r
                                CAppUtils::ConflictEdit(*filepath);\r
                                break;\r
                        }\r
+                       case IDSVNLC_RESOLVETHEIRS: //follow up \r
+                       case IDSVNLC_RESOLVEMINE:   //follow up\r
                        case IDSVNLC_RESOLVECONFLICT:\r
                        {\r
                                if (CMessageBox::Show(m_hWnd, IDS_PROC_RESOLVE, IDS_APPNAME, MB_ICONQUESTION | MB_YESNO)==IDYES)\r
                        case IDSVNLC_RESOLVECONFLICT:\r
                        {\r
                                if (CMessageBox::Show(m_hWnd, IDS_PROC_RESOLVE, IDS_APPNAME, MB_ICONQUESTION | MB_YESNO)==IDYES)\r
@@ -2864,14 +2866,35 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                                CTGitPath * fentry =(CTGitPath*) this->GetItemData(index);\r
                                                if(fentry == NULL)\r
                                                        continue;\r
                                                CTGitPath * fentry =(CTGitPath*) this->GetItemData(index);\r
                                                if(fentry == NULL)\r
                                                        continue;\r
+                                               CString gitcmd,output;\r
+                                               output.Empty();\r
+                                               if ( cmd == IDSVNLC_RESOLVETHEIRS)\r
+                                               {\r
+                                                       gitcmd.Format(_T("git.exe cat-file blob \":3:%s\""),fentry->GetGitPathString());\r
+                                                       if(g_Git.RunLogFile(gitcmd,(CString&)fentry->GetWinPathString()))\r
+                                                       {\r
+                                                               CMessageBox::Show(m_hWnd, output, _T("TortoiseGit"), MB_ICONERROR);\r
+                                                               continue;\r
+                                                       }\r
+                                               }\r
+                                               output.Empty();\r
+                                               if ( cmd == IDSVNLC_RESOLVEMINE)\r
+                                               {\r
+                                                       gitcmd.Format(_T("git.exe cat-file blob \":2:%s\""),fentry->GetGitPathString());\r
+                                                       if(g_Git.RunLogFile(gitcmd,(CString&)fentry->GetWinPathString()))\r
+                                                       {\r
+                                                               CMessageBox::Show(m_hWnd, output, _T("TortoiseGit"), MB_ICONERROR);\r
+                                                               continue;\r
+                                                       }\r
 \r
 \r
+                                               }\r
+                                               output.Empty();\r
                                                if ( fentry->m_Action & CTGitPath::LOGACTIONS_UNMERGED)\r
                                                {\r
                                                if ( fentry->m_Action & CTGitPath::LOGACTIONS_UNMERGED)\r
                                                {\r
-                                                       CString cmd,output;\r
-                                                       cmd.Format(_T("git.exe add \"%s\""),fentry->GetGitPathString());\r
-                                                       if(g_Git.Run(cmd,&output,CP_ACP))\r
+                                                       gitcmd.Format(_T("git.exe add \"%s\""),fentry->GetGitPathString());\r
+                                                       if(g_Git.Run(gitcmd,&output,CP_ACP))\r
                                                        {\r
                                                        {\r
-                                                               CMessageBox::Show(m_hWnd, output, _T("TortoiseSVN"), MB_ICONERROR);\r
+                                                               CMessageBox::Show(m_hWnd, output, _T("TortoiseGit"), MB_ICONERROR);\r
                                                        }else\r
                                                        {\r
                                                                fentry->m_Action |= CTGitPath::LOGACTIONS_MODIFIED;\r
                                                        }else\r
                                                        {\r
                                                                fentry->m_Action |= CTGitPath::LOGACTIONS_MODIFIED;\r