OSDN Git Service

Add "Sync" command at ContextMenu
authorFrank Li <lznuaa@gmail.com>
Sat, 25 Jul 2009 07:37:46 +0000 (15:37 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 25 Jul 2009 07:37:46 +0000 (15:37 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseShell/ContextMenu.cpp
src/TortoiseShell/Globals.h
src/TortoiseShell/ShellCache.h
src/TortoiseShell/ShellExt.h
src/TortoiseShell/resource.h
src/TortoiseShell/resourceshell.rc

index 9ae7b16..43746b5 100644 (file)
@@ -44,6 +44,10 @@ CShellExt::MenuInfo CShellExt::menuInfo[] =
        { ShellMenuPush,                                                MENUPUSH,                       IDI_PUSH,                               IDS_MENUPUSH,                   IDS_MENUPUSH,\r
        ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 },\r
 \r
+       { ShellMenuSync,                                                MENUSYNC,                       IDI_RELOCATE,                           IDS_MENUSYNC,                   IDS_MENUDESCSYNC,\r
+       ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 },\r
+\r
+\r
 //     { ShellMenuCheckout,                                    MENUCHECKOUT,           IDI_CHECKOUT,                   IDS_MENUCHECKOUT,                       IDS_MENUDESCCHECKOUT,\r
 //     ITEMIS_FOLDER, ITEMIS_INSVN|ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0, 0 },\r
 \r
@@ -1505,6 +1509,11 @@ STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
                        switch (id_it->second)\r
                        {\r
                                //#region case\r
+                       case ShellMenuSync:\r
+                               svnCmd += _T("sync /path:\"");\r
+                               svnCmd += folder_;\r
+                               svnCmd += _T("\"");\r
+                               break;\r
                        case ShellMenuCheckout:\r
                                svnCmd += _T("checkout /path:\"");\r
                                svnCmd += folder_;\r
index 34acb3b..5f92404 100644 (file)
@@ -19,7 +19,7 @@
 #pragma once\r
 \r
 //#define MENUCHECKOUT         0x0000000000000001\r
-//#define MENUUPDATE                   0x0000000000000002\r
+#define MENUSYNC                       0x0000000000000002\r
 #define MENUCOMMIT                     0x0000000000000004\r
 #define MENUADD                                0x0000000000000008\r
 #define MENUREVERT                     0x0000000000000010\r
index bfeb944..a565d98 100644 (file)
@@ -84,8 +84,8 @@ public:
                getlocktopticker = cachetypeticker;\r
                excludedasnormalticker = cachetypeticker;\r
                excontextticker = cachetypeticker;\r
-               menulayoutlow = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntries"),              MENUCREATEREPOS|MENUCLONE|MENUCOMMIT);\r
-               menulayouthigh = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntrieshigh"), (MENUCREATEREPOS|MENUCLONE|MENUCOMMIT)>>32);\r
+               menulayoutlow = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntries"),              MENUSYNC|MENUCREATEREPOS|MENUCLONE|MENUCOMMIT);\r
+               menulayouthigh = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntrieshigh"), (MENUSYNC|MENUCREATEREPOS|MENUCLONE|MENUCOMMIT)>>32);\r
                menumasklow_lm = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntriesMaskLow"), 0, FALSE, HKEY_LOCAL_MACHINE);\r
                menumaskhigh_lm = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntriesMaskHigh"), 0, FALSE, HKEY_LOCAL_MACHINE);\r
                menumasklow_cu = CRegStdWORD(_T("Software\\TortoiseGit\\ContextMenuEntriesMaskLow"), 0);\r
index b09863e..5d4fbee 100644 (file)
@@ -166,6 +166,7 @@ protected:
                ShellMenuSendMail,\r
                ShellMenuGitSVNRebase,\r
                ShellMenuGitSVNDCommit,\r
+               ShellMenuSync,\r
                ShellMenuLastEntry                      // used to mark the menu array end\r
        };\r
 \r
index 4918d56..a68f044 100644 (file)
 #define IDS_MENUSVNREBASE_DESC          336\r
 #define IDS_MENUSVNDCOMMIT              337\r
 #define IDS_MENUSVNDCOMMIT_DESC         338\r
+#define IDS_MENUSYNC                    339\r
+#define IDS_MENUDESCSYNC                340\r
 #define IDC_REVISION                    1001\r
 #define IDC_LOCKED                      1002\r
 #define IDC_REPOURL                     1003\r
index 00a0ed8..3498a40 100644 (file)
@@ -433,6 +433,8 @@ BEGIN
     IDS_MENUSVNREBASE_DESC  "Git SVN Rebase"\r
     IDS_MENUSVNDCOMMIT      "SVN DCommit"\r
     IDS_MENUSVNDCOMMIT_DESC "Git SVN DCommit"\r
+    IDS_MENUSYNC            "Git Sync..."\r
+    IDS_MENUDESCSYNC        "Sync remote Remote Repostory, include pull, push,email patch and so on"\r
 END\r
 \r
 #endif    // English (U.S.) resources\r