OSDN Git Service

Impliment commit command at log dialog when choose work copy
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / GitLogListAction.cpp
index 20596cc..9585438 100644 (file)
@@ -109,6 +109,16 @@ void CGitLogList::ContextMenuAction(int cmd,int FirstSelect, int LastSelect)
        bool bOpenWith = false;\r
        switch (cmd&0xFFFF)\r
                {\r
+                       case ID_COMMIT:\r
+                       {\r
+                               CTGitPathList pathlist;\r
+                               bool bSelectFilesForCommit = !!DWORD(CRegStdWORD(_T("Software\\TortoiseGit\\SelectFilesForCommit"), TRUE));\r
+                               CAppUtils::Commit(CString(),true,CString(),\r
+                                                                 pathlist,pathlist,bSelectFilesForCommit);\r
+                               this->Refresh();\r
+                                                                 \r
+                       }\r
+                       break;\r
                        case ID_GNUDIFF1:\r
                        {\r
                                CString tempfile=GetTempFile();\r
@@ -132,7 +142,7 @@ void CGitLogList::ContextMenuAction(int cmd,int FirstSelect, int LastSelect)
 \r
                        }\r
                        break;\r
-\r
+  \r
                case ID_COMPARETWO:\r
                        {\r
                                GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
@@ -457,12 +467,12 @@ void CGitLogList::ContextMenuAction(int cmd,int FirstSelect, int LastSelect)
                                        r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));\r
                                        if( this->m_IsOldFirst )\r
                                        {       \r
-                                               cmd += _T(" /startrev:")+r1->m_CommitHash;\r
+                                               cmd += _T(" /startrev:")+r1->m_CommitHash+_T("~1");\r
                                                cmd += _T(" /endrev:")+r2->m_CommitHash;\r
        \r
                                        }else\r
                                        {       \r
-                                               cmd += _T(" /startrev:")+r2->m_CommitHash;\r
+                                               cmd += _T(" /startrev:")+r2->m_CommitHash+_T("~1");\r
                                                cmd += _T(" /endrev:")+r1->m_CommitHash;        \r
                                        }                               \r
                                        \r
@@ -508,6 +518,15 @@ void CGitLogList::ContextMenuAction(int cmd,int FirstSelect, int LastSelect)
                                                cmd.Format(_T("git.exe tag -d %s"),shortname);\r
                                        }\r
 \r
+                                       if(this->GetShortName(ref,shortname,_T("refs/stash")))\r
+                                       {\r
+                                               if(CMessageBox::Show(NULL,_T("<ct=0x0000FF>Are you sure remove <b>ALL</b> stash?</ct>"),\r
+                                                                                          _T("TortoiseGit"),MB_YESNO)==IDYES)\r
+                                                       cmd.Format(_T("git.exe stash clear"));\r
+                                               else\r
+                                                       return;\r
+                                       }\r
+\r
                                        CString out;\r
                                        if(g_Git.Run(cmd,&out,CP_UTF8))\r
                                        {\r