ITEMIS_INSVN|ITEMIS_GITSVN, 0, ITEMIS_FOLDERINSVN|ITEMIS_GITSVN, 0, 0, 0, 0, 0 },\r
\r
{ ShellMenuGitSVNRebase, MENUSVNREBASE, IDI_REBASE, IDS_MENUSVNREBASE, IDS_MENUSVNREBASE_DESC,\r
- ITEMIS_INSVN|ITEMIS_ONLYONE|ITEMIS_GITSVN, 0, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE|ITEMIS_GITSVN, 0, 0, 0, 0, 0},\r
+ ITEMIS_INSVN|ITEMIS_GITSVN, 0, ITEMIS_FOLDERINSVN|ITEMIS_GITSVN, 0, 0, 0, 0, 0},\r
\r
{ ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},\r
\r
ITEMIS_INSVN|ITEMIS_ONLYONE, 0, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE, 0, 0, 0, 0, 0},\r
\r
{ ShellMenuRebase, MENUREBASE, IDI_REBASE, IDS_MENUREBASE, IDS_MENUREBASE,\r
- ITEMIS_INSVN|ITEMIS_ONLYONE, 0, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE, 0, 0, 0, 0, 0},\r
+ ITEMIS_INSVN, 0, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0},\r
\r
// { ShellMenuRevisionGraph, MENUREVISIONGRAPH, IDI_REVISIONGRAPH, IDS_MENUREVISIONGRAPH, IDS_MENUDESCREVISIONGRAPH,\r
// ITEMIS_INSVN|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINSVN|ITEMIS_ONLYONE, ITEMIS_ADDED, 0, 0, 0, 0},\r
{ ShellMenuStashSave, MENUSTASHSAVE, IDI_COMMIT, IDS_MENUSTASHSAVE, IDS_MENUSTASHSAVE,\r
ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 },\r
{ ShellMenuStashApply, MENUSTASHAPPLY, IDI_RELOCATE, IDS_MENUSTASHAPPLY, IDS_MENUSTASHAPPLY,\r
- ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 },\r
+ ITEMIS_INSVN|ITEMIS_STASH, 0, ITEMIS_FOLDERINSVN|ITEMIS_STASH, 0, 0, 0, 0, 0 },\r
+ { ShellMenuStashPop, MENUSTASHPOP, IDI_RELOCATE, IDS_MENUSTASHPOP, IDS_MENUSTASHPOP,\r
+ ITEMIS_INSVN|ITEMIS_STASH, 0, ITEMIS_FOLDERINSVN|ITEMIS_STASH, 0, 0, 0, 0, 0 },\r
{ ShellMenuStashList, MENUSTASHAPPLY, IDI_LOG, IDS_MENUSTASHLIST, IDS_MENUSTASHLIST,\r
ITEMIS_INSVN|ITEMIS_EXTENDED, 0, ITEMIS_FOLDERINSVN|ITEMIS_EXTENDED, 0, 0, 0, 0, 0 },\r
\r
// ITEMIS_INSVN, 0, ITEMIS_FOLDERINSVN, 0, 0, 0, 0, 0 },\r
\r
{ ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},\r
-// { ShellMenuClipPaste, MENUCLIPPASTE, IDI_CLIPPASTE, IDS_MENUCLIPPASTE, IDS_MENUDESCCLIPPASTE,\r
-// ITEMIS_INSVN|ITEMIS_FOLDER|ITEMIS_PATHINCLIPBOARD, 0, 0, 0, 0, 0, 0, 0 },\r
+ { ShellMenuClipPaste, MENUCLIPPASTE, IDI_CLIPPASTE, IDS_MENUCLIPPASTE, IDS_MENUDESCCLIPPASTE,\r
+ ITEMIS_INSVN|ITEMIS_FOLDER|ITEMIS_PATHINCLIPBOARD, 0, 0, 0, 0, 0, 0, 0 },\r
\r
{ ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},\r
\r
\r
// TODO: should we really assume any sub-directory to be versioned\r
// or only if it contains versioned files\r
- if ( askedpath.IsDirectory() )\r
- {\r
- if (askedpath.HasAdminDir())\r
- itemStates |= ITEMIS_INSVN;\r
- if (askedpath.HasSubmodules())\r
- {\r
- itemStates |= ITEMIS_SUBMODULE;\r
- }\r
- }\r
- if ((status != git_wc_status_unversioned)&&(status != git_wc_status_ignored)&&(status != git_wc_status_none))\r
- itemStates |= ITEMIS_INSVN;\r
+ itemStates |= askedpath.GetAdminDirMask();\r
+ \r
+ if ((status == git_wc_status_unversioned) || (status == git_wc_status_ignored) || (status == git_wc_status_none))\r
+ itemStates &= ~ITEMIS_INSVN;\r
+\r
if (status == git_wc_status_ignored)\r
itemStates |= ITEMIS_IGNORED;\r
if (status == git_wc_status_normal)\r
}\r
}\r
\r
- // TODO: should we really assume any sub-directory to be versioned\r
- // or only if it contains versioned files\r
- if ( strpath.IsDirectory() )\r
- {\r
- if (strpath.HasAdminDir())\r
- itemStates |= ITEMIS_INSVN;\r
- if (strpath.HasSubmodules())\r
- {\r
- itemStates |= ITEMIS_SUBMODULE;\r
- }\r
- }\r
- if ((status != git_wc_status_unversioned)&&(status != git_wc_status_ignored)&&(status != git_wc_status_none))\r
- itemStates |= ITEMIS_INSVN;\r
+ itemStates |= strpath.GetAdminDirMask(); \r
+ \r
+ if ((status == git_wc_status_unversioned)||(status == git_wc_status_ignored)||(status == git_wc_status_none))\r
+ itemStates &= ~ITEMIS_INSVN;\r
if (status == git_wc_status_ignored)\r
{\r
itemStates |= ITEMIS_IGNORED;\r
// }\r
// }\r
}\r
+ \r
if (status == git_wc_status_normal)\r
itemStates |= ITEMIS_NORMAL;\r
if (status == git_wc_status_conflicted)\r
}\r
\r
//if ((status != git_wc_status_unversioned)&&(status != git_wc_status_ignored)&&(status != git_wc_status_none))\r
- if (askedpath.HasAdminDir())\r
- itemStatesFolder |= ITEMIS_INSVN;\r
+ itemStatesFolder |= askedpath.GetAdminDirMask(); \r
+ \r
if (status == git_wc_status_normal)\r
itemStatesFolder |= ITEMIS_NORMAL;\r
if (status == git_wc_status_conflicted)\r
status = fetchedstatus;\r
}\r
//if ((status != git_wc_status_unversioned)&&(status != git_wc_status_ignored)&&(status != git_wc_status_none))\r
- if (askedpath.HasAdminDir())\r
- {\r
- itemStatesFolder |= ITEMIS_FOLDERINSVN;\r
- }\r
- if (askedpath.HasSubmodules())\r
- {\r
- itemStatesFolder |= ITEMIS_SUBMODULE;\r
- }\r
- if (askedpath.HasGitSVNDir())\r
- {\r
- itemStatesFolder |= ITEMIS_GITSVN;\r
- }\r
+ itemStatesFolder |= askedpath.GetAdminDirMask();\r
+ \r
if (status == git_wc_status_ignored)\r
itemStatesFolder |= ITEMIS_IGNORED;\r
itemStatesFolder |= ITEMIS_FOLDER;\r
status = fetchedstatus;\r
}\r
//if ((status != git_wc_status_unversioned)&&(status != git_wc_status_ignored)&&(status != git_wc_status_none))\r
- if (askedpath.HasAdminDir())\r
- itemStates |= ITEMIS_FOLDERINSVN;\r
+ itemStates |= askedpath.GetAdminDirMask();\r
+ \r
if (status == git_wc_status_ignored)\r
itemStates |= ITEMIS_IGNORED;\r
itemStates |= ITEMIS_FOLDER;\r
itemStates |= ITEMIS_ADDED;\r
if (status == git_wc_status_deleted)\r
itemStates |= ITEMIS_DELETED;\r
+\r
}\r
}\r
\r
svnCmd += _T("\"");\r
break;\r
\r
+ case ShellMenuStashPop:\r
+ svnCmd += _T("stashpop /path:\"");\r
+ if (files_.size() > 0)\r
+ svnCmd += files_.front();\r
+ else\r
+ svnCmd += folder_;\r
+ svnCmd += _T("\"");\r
+ break;\r
+\r
+\r
case ShellMenuStashList:\r
svnCmd += _T("reflog /path:\"");\r
if (files_.size() > 0)\r