From: Frank Li Date: Wed, 11 Mar 2009 14:30:07 +0000 (+0800) Subject: Add Stash Save\apply and Submodule Add and Update command. X-Git-Url: http://git.sourceforge.jp/view?p=tortoisegit%2FTortoiseGitJp.git;a=commitdiff_plain;h=568f9cdc62424087e3fdd69d66639860f648645f Add Stash Save\apply and Submodule Add and Update command. Signed-off-by: Frank Li --- diff --git a/src/TortoiseShell/ContextMenu.cpp b/src/TortoiseShell/ContextMenu.cpp index 7f99798..f2d02d4 100644 --- a/src/TortoiseShell/ContextMenu.cpp +++ b/src/TortoiseShell/ContextMenu.cpp @@ -47,8 +47,9 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = // { ShellMenuCheckout, MENUCHECKOUT, IDI_CHECKOUT, IDS_MENUCHECKOUT, IDS_MENUDESCCHECKOUT, // ITEMIS_FOLDER, ITEMIS_INSVN|ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0, 0 }, -// { ShellMenuUpdate, MENUUPDATE, IDI_UPDATE, IDS_MENUUPDATE, IDS_MENUDESCUPDATE, -// ITEMIS_INSVN, ITEMIS_ADDED, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, +// { ShellMenuUpdate, MENUSUBUPDATE, IDI_UPDATE, IDS_MENUUPDATE, IDS_MENUDESCUPDATE, +// ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, + { ShellMenuCommit, MENUCOMMIT, IDI_COMMIT, IDS_MENUCOMMIT, IDS_MENUDESCCOMMIT, ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, @@ -79,6 +80,11 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = // { ShellMenuRevisionGraph, MENUREVISIONGRAPH, IDI_REVISIONGRAPH, IDS_MENUREVISIONGRAPH, IDS_MENUDESCREVISIONGRAPH, // ITEMIS_INSVN|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE, ITEMIS_ADDED, 0, 0, 0, 0}, + { ShellMenuStashSave, MENUSTASHSAVE, IDI_COMMIT, IDS_MENUSTASHSAVE, IDS_MENUSTASHSAVE, + ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, + { ShellMenuStashApply, MENUSTASHAPPLY, IDI_RELOCATE, IDS_MENUSTASHAPPLY, IDS_MENUSTASHAPPLY, + ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, + { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0}, { ShellMenuConflictEditor, MENUCONFLICTEDITOR, IDI_CONFLICT, IDS_MENUCONFLICT, IDS_MENUDESCCONFLICT, @@ -87,8 +93,6 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = { ShellMenuResolve, MENURESOLVE, IDI_RESOLVE, IDS_MENURESOLVE, IDS_MENUDESCRESOLVE, ITEMIS_INSVN|ITEMIS_CONFLICTED, 0, ITEMIS_INSVN|ITEMIS_FOLDER, 0, ITEMIS_FOLDERINSVN, 0, 0, 0 }, -// { ShellMenuUpdateExt, MENUUPDATEEXT, IDI_UPDATE, IDS_MENUUPDATEEXT, IDS_MENUDESCUPDATEEXT, -// ITEMIS_INSVN, ITEMIS_ADDED, ITEMIS_FOLDERINSVN, ITEMIS_ADDED, 0, 0, 0, 0 }, { ShellMenuRename, MENURENAME, IDI_RENAME, IDS_MENURENAME, IDS_MENUDESCRENAME, ITEMIS_INSVN|ITEMIS_ONLYONE|ITEMIS_INVERSIONEDFOLDER, 0, 0, 0, 0, 0, 0, 0 }, @@ -130,8 +134,8 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = { ShellMenuMerge, MENUMERGE, IDI_MERGE, IDS_MENUMERGE, IDS_MENUDESCMERGE, ITEMIS_INSVN|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE, 0, 0, 0, 0, 0 }, - { ShellMenuMergeAll, MENUMERGEALL, IDI_MERGE, IDS_MENUMERGEALL, IDS_MENUDESCMERGEALL, - ITEMIS_INSVN|ITEMIS_ONLYONE|ITEMIS_EXTENDED, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE|ITEMIS_EXTENDED, 0, 0, 0, 0, 0 }, +// { ShellMenuMergeAll, MENUMERGEALL, IDI_MERGE, IDS_MENUMERGEALL, IDS_MENUDESCMERGEALL, +// ITEMIS_INSVN|ITEMIS_ONLYONE|ITEMIS_EXTENDED, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE|ITEMIS_EXTENDED, 0, 0, 0, 0, 0 }, { ShellMenuBranch, MENUCOPY, IDI_COPY, IDS_MENUBRANCH, IDS_MENUDESCCOPY, ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, @@ -171,6 +175,15 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0}, + { ShellMenuSubAdd, MENUSUBADD, IDI_ADD, IDS_MENUSUBADD, IDS_MENUSUBADD, + ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, + + { ShellMenuUpdateExt, MENUUPDATEEXT, IDI_UPDATE, IDS_MENUUPDATEEXT, IDS_MENUDESCUPDATEEXT, + ITEMIS_INSVN, ITEMIS_ADDED, ITEMIS_FOLDERINSVN, ITEMIS_ADDED, 0, 0, 0, 0 }, + + + { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0}, + // { ShellMenuCherryPick, MENUCHERRYPICK, IDI_CREATEPATCH, IDS_MENUCHERRYPICK, IDS_MENUDESCCREATEPATCH, // ITEMIS_INSVN, ITEMIS_NORMAL, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, @@ -182,13 +195,13 @@ CShellExt::MenuInfo CShellExt::menuInfo[] = { ShellMenuCreatePatch, MENUCREATEPATCH, IDI_CREATEPATCH, IDS_MENUCREATEPATCH, IDS_MENUDESCCREATEPATCH, - ITEMIS_INSVN, ITEMIS_NORMAL, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, + ITEMIS_INSVN|ITEMIS_EXTENDED, ITEMIS_NORMAL, ITEMIS_FOLDERINSVN|ITEMIS_EXTENDED, 0, 0, 0, 0, 0 }, { ShellMenuApplyPatch, MENUAPPLYPATCH, IDI_PATCH, IDS_MENUAPPLYPATCH, IDS_MENUDESCAPPLYPATCH, - ITEMIS_INSVN|ITEMIS_FOLDER|ITEMIS_FOLDERINSVN, ITEMIS_ADDED, ITEMIS_ONLYONE|ITEMIS_PATCHFILE, 0, ITEMIS_FOLDERINSVN, ITEMIS_ADDED, 0, 0 }, + ITEMIS_INSVN|ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_EXTENDED, ITEMIS_ADDED, ITEMIS_ONLYONE|ITEMIS_PATCHFILE|ITEMIS_EXTENDED, 0, ITEMIS_FOLDERINSVN|ITEMIS_EXTENDED, ITEMIS_ADDED, 0, 0 }, - { ShellMenuProperties, MENUPROPERTIES, IDI_PROPERTIES, IDS_MENUPROPERTIES, IDS_MENUDESCPROPERTIES, - ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, +// { ShellMenuProperties, MENUPROPERTIES, IDI_PROPERTIES, IDS_MENUPROPERTIES, IDS_MENUDESCPROPERTIES, +// ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 }, { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0}, // { ShellMenuClipPaste, MENUCLIPPASTE, IDI_CLIPPASTE, IDS_MENUCLIPPASTE, IDS_MENUDESCCLIPPASTE, @@ -1465,7 +1478,7 @@ STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) break; case ShellMenuUpdateExt: tempfile = WriteFileListToTempFile(); - svnCmd += _T("update /pathfile:\""); + svnCmd += _T("subupdate /pathfile:\""); svnCmd += tempfile; svnCmd += _T("\""); svnCmd += _T(" /deletepathfile"); @@ -1787,6 +1800,34 @@ STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) svnCmd += folder_; svnCmd += _T("\""); break; + + case ShellMenuStashSave: + svnCmd += _T("stashsave /path:\""); + if (files_.size() > 0) + svnCmd += files_.front(); + else + svnCmd += folder_; + svnCmd += _T("\""); + break; + + case ShellMenuStashApply: + svnCmd += _T("stashapply /path:\""); + if (files_.size() > 0) + svnCmd += files_.front(); + else + svnCmd += folder_; + svnCmd += _T("\""); + break; + + case ShellMenuSubAdd: + svnCmd += _T("subadd /path:\""); + if (files_.size() > 0) + svnCmd += files_.front(); + else + svnCmd += folder_; + svnCmd += _T("\""); + break; + case ShellMenuBlame: svnCmd += _T("blame /path:\""); if (files_.size() > 0) diff --git a/src/TortoiseShell/Globals.h b/src/TortoiseShell/Globals.h index 409ec32..936437c 100644 --- a/src/TortoiseShell/Globals.h +++ b/src/TortoiseShell/Globals.h @@ -19,7 +19,7 @@ #pragma once //#define MENUCHECKOUT 0x0000000000000001 -//#define MENUUPDATE 0x0000000000000002 +//#define MENUUPDATE 0x0000000000000002 #define MENUCOMMIT 0x0000000000000004 #define MENUADD 0x0000000000000008 #define MENUREVERT 0x0000000000000010 @@ -33,7 +33,7 @@ #define MENUMERGE 0x0000000000001000 #define MENUREMOVE 0x0000000000002000 #define MENURENAME 0x0000000000004000 -//#define MENUUPDATEEXT 0x0000000000008000 +#define MENUUPDATEEXT 0x0000000000008000 #define MENUDIFF 0x0000000000010000 #define MENULOG 0x0000000000020000 #define MENUCONFLICTEDITOR 0x0000000000040000 @@ -62,7 +62,10 @@ #define MENUCHERRYPICK 0x0000020000000000 #define MENUFETCH 0x0000040000000000 #define MENUREBASE 0x0000080000000000 - +#define MENUSTASHSAVE 0x0000100000000000 +#define MENUSTASHAPPLY 0x0000200000000000 +#define MENUSUBADD 0x0000400000000000 +//#define MENUSUBSYNC 0x0000800000000000 #define MENUSETTINGS 0x2000000000000000 #define MENUHELP 0x4000000000000000 diff --git a/src/TortoiseShell/ShellExt.h b/src/TortoiseShell/ShellExt.h index 906589a..7c34d32 100644 --- a/src/TortoiseShell/ShellExt.h +++ b/src/TortoiseShell/ShellExt.h @@ -157,6 +157,10 @@ protected: ShellMenuCherryPick, ShellMenuFetch, ShellMenuRebase, + ShellMenuStashSave, + ShellMenuStashApply, + ShellMenuSubAdd, + ShellMenuSubSync, ShellMenuLastEntry // used to mark the menu array end }; diff --git a/src/TortoiseShell/resource.h b/src/TortoiseShell/resource.h index 8fe42d9..98bfb5a 100644 --- a/src/TortoiseShell/resource.h +++ b/src/TortoiseShell/resource.h @@ -184,6 +184,11 @@ #define IDS_MENUCHERRYPICK 310 #define IDS_MENUFETCH 311 #define IDS_MENUREBASE 312 +#define IDS_MENUSTASHSAVE 313 +#define IDS_MENUSTASHAPPLY 314 +#define IDS_MENUSUBADD 315 +#define IDS_MENUSUBSYNC 316 + #define IDC_REVISION 1001 #define IDC_LOCKED 1002 #define IDC_REPOURL 1003 diff --git a/src/TortoiseShell/resourceshell.rc b/src/TortoiseShell/resourceshell.rc index 73cd472..b753efa 100644 --- a/src/TortoiseShell/resourceshell.rc +++ b/src/TortoiseShell/resourceshell.rc @@ -205,7 +205,7 @@ END STRINGTABLE BEGIN IDS_MENUCHECKOUT "Switch/Chec&kout..." - IDS_MENUUPDATE "&Update" + IDS_MENUUPDATE "Submodule &Update" IDS_MENUCOMMIT "&Commit..." IDS_MENUCREATEREPOS "Create repositor&y here" IDS_MENUADD "&Add..." @@ -218,7 +218,7 @@ STRINGTABLE BEGIN IDS_MENUSWITCH "S&witch..." IDS_MENUMERGE "&Merge..." - IDS_MENUBRANCH "Create Branch" + IDS_MENUBRANCH "Create Branch..." IDS_MENUIMPORT "&Import..." IDS_MENUEXPORT "E&xport..." IDS_MENUSETTINGS "&Settings" @@ -256,12 +256,16 @@ END STRINGTABLE BEGIN - IDS_MENUTAG "Create Tag" - IDS_MENUFORMATPATCH "Create Patch Serial" - IDS_MENUIMPORTPATCH "Apply Patch Serial" - IDS_MENUCHERRYPICK "Cherry Pick" + IDS_MENUTAG "Create Tag..." + IDS_MENUFORMATPATCH "Create Patch Serial..." + IDS_MENUIMPORTPATCH "Apply Patch Serial..." + IDS_MENUCHERRYPICK "Cherry Pick..." IDS_MENUFETCH "Fetch..." IDS_MENUREBASE "*Rebase..." + IDS_MENUSTASHSAVE "Stash Save" + IDS_MENUSTASHAPPLY "Stash Apply" + IDS_MENUSUBADD "Submodule Add" + IDS_MENUSUBSYNC "Submodule Sync" END STRINGTABLE @@ -276,7 +280,7 @@ BEGIN IDS_MENUDESCRENAME "Renames files / folders inside version control" IDS_MENUREMOVE "&Delete" IDS_MENUDESCREMOVE "Deletes files / folders from version control" - IDS_MENUUPDATEEXT "&Update to revision..." + IDS_MENUUPDATEEXT "Submodule &Update" IDS_MENUDESCUPDATEEXT "Updates the working copy to a specific revision" IDS_COLTITLESTATUS "Git Status" IDS_COLDESCSTATUS "Status of item in Git" @@ -339,8 +343,8 @@ BEGIN IDS_DROPEXPORTMENU "Git Export versioned items here" IDS_DROPEXPORTEXTENDEDMENU "Git Export all items here" IDS_MENUIGNOREMULTIPLEMASK "Ignore items by &extension" - IDS_MENUPULL "Pull" - IDS_MENUPUSH "Push" + IDS_MENUPULL "Pull..." + IDS_MENUPUSH "Push..." IDS_MENUCLONE "Clone..." END