OSDN Git Service

Create Branch Tag at loglist okay
authorFrank Li <lznuaa@gmail.com>
Sun, 28 Dec 2008 09:49:35 +0000 (17:49 +0800)
committerFrank Li <lznuaa@gmail.com>
Sun, 28 Dec 2008 09:49:35 +0000 (17:49 +0800)
12 files changed:
src/TortoiseProc/AppUtils.cpp
src/TortoiseProc/AppUtils.h
src/TortoiseProc/Commands/BranchCommand.cpp
src/TortoiseProc/Commands/ExportCommand.cpp
src/TortoiseProc/Commands/TagCommand.cpp
src/TortoiseProc/CreateBranchTagDlg.cpp
src/TortoiseProc/ExportDlg.cpp
src/TortoiseProc/GitLogList.cpp
src/TortoiseProc/GitLogList.h
src/TortoiseProc/TortoiseProc.vcproj
src/TortoiseShell/resourceshell.rc
src/TortoiseUDiff/TortoiseUDiff.vcproj

index 15765b2..362a7af 100644 (file)
 //#include "RepositoryBrowser.h"\r
 //#include "BrowseFolder.h"\r
 #include "UnicodeUtils.h"\r
+#include "ExportDlg.h"\r
+#include "ProgressDlg.h"\r
+#include "GitAdminDir.h"\r
+#include "ProgressDlg.h"\r
+#include "BrowseFolder.h"\r
+#include "DirFileEnum.h"\r
+#include "MessageBox.h"\r
+#include "GitStatus.h"\r
+#include "CreateBranchTagDlg.h"\r
 \r
 CAppUtils::CAppUtils(void)\r
 {\r
@@ -1065,4 +1074,76 @@ bool CAppUtils::StartShowCompare(HWND hWnd, const CTGitPath& url1, const GitRev&
        return CAppUtils::LaunchApplication(sCmd, NULL, false);\r
 #endif\r
        return true;\r
+}\r
+\r
+bool CAppUtils::Export(CString *BashHash)\r
+{\r
+       bool bRet = false;\r
+\r
+               // ask from where the export has to be done\r
+       CExportDlg dlg;\r
+       if(BashHash)\r
+               dlg.m_Revision=*BashHash;\r
+\r
+       if (dlg.DoModal() == IDOK)\r
+       {\r
+               CString cmd;\r
+               cmd.Format(_T("git.exe archive --format=zip %s"),\r
+                                       dlg.m_VersionName);\r
+\r
+               g_Git.RunLogFile(cmd,dlg.m_strExportDirectory);\r
+               //CProgressDlg pro;\r
+               //pro.m_GitCmd=cmd;\r
+               //pro.DoModal();\r
+               return TRUE;\r
+       }\r
+       return bRet;\r
+}\r
+\r
+bool CAppUtils::CreateBranchTag(bool IsTag,CString *CommitHash)\r
+{\r
+       CCreateBranchTagDlg dlg;\r
+       dlg.m_bIsTag=IsTag;\r
+       if(CommitHash)\r
+               dlg.m_Base = *CommitHash;\r
+\r
+       if(dlg.DoModal()==IDOK)\r
+       {\r
+               CString cmd;\r
+               CString force;\r
+               CString track;\r
+               if(dlg.m_bTrack)\r
+                       track=_T("--track");\r
+\r
+               if(dlg.m_bForce)\r
+                       force=_T("-f");\r
+\r
+               if(IsTag)\r
+               {\r
+                       cmd.Format(_T("git.exe tag %s %s %s %s"),\r
+                               track,\r
+                               force,\r
+                               dlg.m_BranchTagName,\r
+                               dlg.m_Base\r
+                               );\r
+\r
+       \r
+               }else\r
+               {\r
+                       cmd.Format(_T("git.exe branch %s %s %s %s"),\r
+                               track,\r
+                               force,\r
+                               dlg.m_BranchTagName,\r
+                               dlg.m_Base\r
+                               );\r
+               }\r
+               CString out;\r
+               if(g_Git.Run(cmd,&out))\r
+               {\r
+                       CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
+               }\r
+               return TRUE;\r
+               \r
+       }\r
+       return FALSE;\r
 }
\ No newline at end of file
index 030e8fc..90b3f9b 100644 (file)
@@ -159,6 +159,10 @@ public:
                                                                const GitRev& peg = GitRev(), const GitRev& headpeg = GitRev(),\r
                                                                bool bAlternateDiff = false, bool ignoreancestry = false,\r
                                                                bool blame = false);\r
+       \r
+       static bool Export(CString *BashHash=NULL);\r
+       static bool CreateBranchTag(bool IsTag=TRUE,CString *CommitHash=NULL);\r
+\r
 private:\r
        static CString PickDiffTool(const CTGitPath& file1, const CTGitPath& file2);\r
        static bool GetMimeType(const CTGitPath& file, CString& mimetype);\r
index 9c8bd58..4abf978 100644 (file)
 #include "DirFileEnum.h"\r
 #include "ShellUpdater.h"\r
 #include "CreateBranchTagDlg.h"\r
+#include "AppUtils.h"\r
 \r
 bool BranchCommand::Execute()\r
 {\r
-       CCreateBranchTagDlg dlg;\r
-       dlg.m_bIsTag=FALSE;\r
-       \r
-       if(dlg.DoModal()==IDOK)\r
-       {\r
-               CString cmd;\r
-               CString force;\r
-               CString track;\r
-               if(dlg.m_bTrack)\r
-                       track=_T("--track");\r
-\r
-               if(dlg.m_bForce)\r
-                       force=_T("-f");\r
-\r
-               cmd.Format(_T("git.exe branch %s %s %s %s"),\r
-                       track,\r
-                       force,\r
-                       dlg.m_BranchTagName,\r
-                       dlg.m_Base\r
-                       );\r
-               CString out;\r
-               if(g_Git.Run(cmd,&out))\r
-               {\r
-                       CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
-               }\r
-               return TRUE;\r
-               \r
-       }\r
-       return FALSE;\r
+       return CAppUtils::CreateBranchTag(FALSE);\r
 }\r
index 7128e98..8d32dee 100644 (file)
 #include "StdAfx.h"\r
 #include "ExportCommand.h"\r
 \r
-#include "ExportDlg.h"\r
-#include "ProgressDlg.h"\r
-#include "GitAdminDir.h"\r
-#include "ProgressDlg.h"\r
-#include "BrowseFolder.h"\r
-#include "DirFileEnum.h"\r
-#include "MessageBox.h"\r
-#include "GitStatus.h"\r
+#include "AppUtils.h"\r
 \r
 bool ExportCommand::Execute()\r
 {\r
-       bool bRet = false;\r
-\r
-               // ask from where the export has to be done\r
-       CExportDlg dlg;\r
-       \r
-       if (dlg.DoModal() == IDOK)\r
-       {\r
-               CString cmd;\r
-               cmd.Format(_T("git.exe archive --format=zip --verbose %s >\"%s\""),\r
-                                       dlg.m_VersionName,\r
-                                       dlg.m_strExportDirectory);\r
-               CProgressDlg pro;\r
-               pro.m_GitCmd=cmd;\r
-               pro.DoModal();\r
-               return TRUE;\r
-       }\r
-       return bRet;\r
+       return CAppUtils::Export();\r
 }\r
index c577b38..3c2e20d 100644 (file)
 #include "Git.h"\r
 #include "DirFileEnum.h"\r
 #include "ShellUpdater.h"\r
+#include "AppUtils.h"\r
 \r
 bool TagCommand::Execute()\r
 {\r
-       CCreateBranchTagDlg dlg;\r
-       dlg.m_bIsTag=TRUE;\r
-       \r
-       if(dlg.DoModal()==IDOK)\r
-       {\r
-               CString cmd;\r
-               CString force;\r
-               CString track;\r
-               if(dlg.m_bTrack)\r
-                       track=_T("--track");\r
-\r
-               if(dlg.m_bForce)\r
-                       force=_T("-f");\r
-\r
-               cmd.Format(_T("git.exe tag %s %s %s %s"),\r
-                       track,\r
-                       force,\r
-                       dlg.m_BranchTagName,\r
-                       dlg.m_Base\r
-                       );\r
-               CString out;\r
-               if(g_Git.Run(cmd,&out))\r
-               {\r
-                       CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
-               }\r
-               return TRUE;\r
-               \r
-       }\r
-       return FALSE;\r
+       return CAppUtils::CreateBranchTag(TRUE);\r
 }\r
index 353fbd2..fe3b87b 100644 (file)
@@ -55,8 +55,16 @@ BOOL CCreateBranchTagDlg::OnInitDialog()
        AddAnchor(IDOK,BOTTOM_RIGHT);\r
        AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
 \r
+       if(m_Base.IsEmpty())\r
+       {\r
+               this->SetDefaultChoose(IDC_RADIO_HEAD);\r
+       \r
+       }else\r
+       {\r
+               this->SetDefaultChoose(IDC_RADIO_VERSION);\r
+               this->GetDlgItem(IDC_COMBOBOXEX_VERSION)->SetWindowTextW(m_Base);\r
+       }\r
 \r
-       this->SetDefaultChoose(IDC_RADIO_HEAD);\r
        Init();\r
 \r
        this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
index d0e4fa5..5adb368 100644 (file)
@@ -81,7 +81,15 @@ BOOL CExportDlg::OnInitDialog()
 \r
        CHOOSE_VERSION_ADDANCHOR;\r
        Init();\r
-       SetDefaultChoose(IDC_RADIO_HEAD);\r
+       if(this->m_Revision.IsEmpty())\r
+       {\r
+               SetDefaultChoose(IDC_RADIO_HEAD);\r
+       }\r
+       else\r
+       {\r
+               SetDefaultChoose(IDC_RADIO_VERSION);\r
+               this->GetDlgItem(IDC_COMBOBOXEX_VERSION)->SetWindowTextW(m_Revision);\r
+       }\r
 \r
        m_tooltips.Create(this);\r
        m_tooltips.AddTool(IDC_CHECKOUTDIRECTORY, IDS_CHECKOUT_TT_DIR);\r
index b96d666..e54dc13 100644 (file)
@@ -960,7 +960,7 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
                                }
                                popup.AppendMenuIcon(ID_GNUDIFF1, IDS_LOG_POPUP_GNUDIFF_CH, IDI_DIFF);
                                popup.AppendMenuIcon(ID_COMPAREWITHPREVIOUS, IDS_LOG_POPUP_COMPAREWITHPREVIOUS, IDI_DIFF);
-                               popup.AppendMenuIcon(ID_BLAMEWITHPREVIOUS, IDS_LOG_POPUP_BLAMEWITHPREVIOUS, IDI_BLAME);
+                               //popup.AppendMenuIcon(ID_BLAMEWITHPREVIOUS, IDS_LOG_POPUP_BLAMEWITHPREVIOUS, IDI_BLAME);
                                popup.AppendMenu(MF_SEPARATOR, NULL);
                        }
 
@@ -978,18 +978,20 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
 //                             popup.AppendMenu(MF_SEPARATOR, NULL);
 //                     }
 
-//                     popup.AppendMenuIcon(ID_REPOBROWSE, IDS_LOG_BROWSEREPO, IDI_REPOBROWSE);
-//                     popup.AppendMenuIcon(ID_COPY, IDS_LOG_POPUP_COPY);
-//                     if (m_hasWC)
-//                             popup.AppendMenuIcon(ID_UPDATE, IDS_LOG_POPUP_UPDATE, IDI_UPDATE);
-                       if (m_hasWC)
-                               popup.AppendMenuIcon(ID_REVERTTOREV, IDS_LOG_POPUP_REVERTTOREV, IDI_REVERT);
-                       if (m_hasWC)
-                               popup.AppendMenuIcon(ID_REVERTREV, IDS_LOG_POPUP_REVERTREV, IDI_REVERT);
-//                     if (m_hasWC)
-//                             popup.AppendMenuIcon(ID_MERGEREV, IDS_LOG_POPUP_MERGEREV, IDI_MERGE);
-                       popup.AppendMenuIcon(ID_CHECKOUT, IDS_MENUCHECKOUT, IDI_CHECKOUT);
-                       popup.AppendMenuIcon(ID_EXPORT, IDS_MENUEXPORT, IDI_EXPORT);
+                       //if (m_hasWC)
+                       //      popup.AppendMenuIcon(ID_REVERTTOREV, IDS_LOG_POPUP_REVERTTOREV, IDI_REVERT);
+                       //if (m_hasWC)
+                       //      popup.AppendMenuIcon(ID_REVERTREV, IDS_LOG_POPUP_REVERTREV, IDI_REVERT);
+                       //if (m_hasWC)
+                       //      popup.AppendMenuIcon(ID_MERGEREV, IDS_LOG_POPUP_MERGEREV, IDI_MERGE);
+                       
+                       popup.AppendMenuIcon(ID_SWITCHTOREV, _T("Switch/Checkout to this") , IDI_SWITCH);
+                       popup.AppendMenuIcon(ID_CREATE_BRANCH, _T("Create Branch at this version") , IDI_COPY);
+                       popup.AppendMenuIcon(ID_CREATE_TAG, _T("Create Tag at this version"), IDI_COPY);
+                       popup.AppendMenuIcon(ID_CHERRY_PICK, _T("Cherry Pick this version"), IDI_EXPORT);
+                       popup.AppendMenuIcon(ID_EXPORT, _T("Export this version"), IDI_EXPORT);
+                       
+
                        popup.AppendMenu(MF_SEPARATOR, NULL);
                }
                else if (GetSelectedCount() >= 2)
@@ -1001,13 +1003,13 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
                        }
                        if (GetSelectedCount() == 2)
                        {
-                               popup.AppendMenuIcon(ID_BLAMETWO, IDS_LOG_POPUP_BLAMEREVS, IDI_BLAME);
+                               //popup.AppendMenuIcon(ID_BLAMETWO, IDS_LOG_POPUP_BLAMEREVS, IDI_BLAME);
                                popup.AppendMenuIcon(ID_GNUDIFF2, IDS_LOG_POPUP_GNUDIFF, IDI_DIFF);
                                bAddSeparator = true;
                        }
                        if (m_hasWC)
                        {
-                               popup.AppendMenuIcon(ID_REVERTREV, IDS_LOG_POPUP_REVERTREVS, IDI_REVERT);
+                               //popup.AppendMenuIcon(ID_REVERTREV, IDS_LOG_POPUP_REVERTREVS, IDI_REVERT);
 //                             if (m_hasWC)
 //                                     popup.AppendMenuIcon(ID_MERGEREV, IDS_LOG_POPUP_MERGEREVS, IDI_MERGE);
                                bAddSeparator = true;
@@ -1027,6 +1029,12 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
 //                     popup.AppendMenu(MF_SEPARATOR, NULL);
 //             }
 #endif
+
+               
+               if (GetSelectedCount() == 1)
+               {
+                       popup.AppendMenuIcon(ID_COPYHASH, _T("Copy Commit Hash"));
+               }
                if (GetSelectedCount() != 0)
                {
                        popup.AppendMenuIcon(ID_COPYCLIPBOARD, IDS_LOG_POPUP_COPYTOCLIPBOARD);
@@ -1075,7 +1083,36 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
                                
                        }
                        break;
+               
+               case ID_COPYCLIPBOARD:
+                       {
+                               CopySelectionToClipBoard();
+                       }
+                       break;
+               case ID_COPYHASH:
+                       {
+                               CopySelectionToClipBoard(TRUE);
+                       }
+                       break;
+               case ID_EXPORT:
+                       CAppUtils::Export(&pSelLogEntry->m_CommitHash);
+                       break;
+               case ID_CREATE_BRANCH:
+                       CAppUtils::CreateBranchTag(FALSE,&pSelLogEntry->m_CommitHash);
+                       m_HashMap.clear();
+                       g_Git.GetMapHashToFriendName(m_HashMap);
+                       Invalidate();                   
+                       break;
+               case ID_CREATE_TAG:
+                       CAppUtils::CreateBranchTag(TRUE,&pSelLogEntry->m_CommitHash);
+                       m_HashMap.clear();
+                       g_Git.GetMapHashToFriendName(m_HashMap);
+                       Invalidate();
+                       break;
 
+               default:
+                       CMessageBox::Show(NULL,_T("Have not implemented"),_T("TortoiseGit"),MB_OK);
+                       break;
 #if 0
                case ID_GNUDIFF1:
                        {
@@ -1488,11 +1525,7 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
                                dlg.DoModal();
                        }
                        break;
-               case ID_COPYCLIPBOARD:
-                       {
-                               CopySelectionToClipBoard();
-                       }
-                       break;
+               
                case ID_EXPORT:
                        {
                                CString sCmd;
@@ -1535,8 +1568,7 @@ void CGitLogList::OnContextMenu(CWnd* pWnd, CPoint point)
                        }
                        break;
 #endif
-               default:
-                       break;
+               
                } // switch (cmd)
                theApp.DoWaitCursor(-1);
 //             EnableOKButton();
@@ -1572,9 +1604,9 @@ bool CGitLogList::IsSelectionContinuous()
        return bContinuous;
 }
 
-void CGitLogList::CopySelectionToClipBoard()
+void CGitLogList::CopySelectionToClipBoard(bool HashOnly)
 {
-#if 0
+
        CString sClipdata;
        POSITION pos = GetFirstSelectedItemPosition();
        if (pos != NULL)
@@ -1591,36 +1623,36 @@ void CGitLogList::CopySelectionToClipBoard()
                {
                        CString sLogCopyText;
                        CString sPaths;
-                       PLOGENTRYDATA pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(GetNextSelectedItem(pos)));
-                       LogChangedPathArray * cpatharray = pLogEntry->pArChangedPaths;
-                       for (INT_PTR cpPathIndex = 0; cpPathIndex<cpatharray->GetCount(); ++cpPathIndex)
+                       GitRev * pLogEntry = reinterpret_cast<GitRev *>(m_arShownList.GetAt(GetNextSelectedItem(pos)));
+
+                       if(!HashOnly)
                        {
-                               LogChangedPath * cpath = cpatharray->GetAt(cpPathIndex);
-                               sPaths += cpath->GetAction() + _T(" : ") + cpath->sPath;
-                               if (cpath->sCopyFromPath.IsEmpty())
-                                       sPaths += _T("\r\n");
-                               else
+                               //pLogEntry->m_Files
+                               //LogChangedPathArray * cpatharray = pLogEntry->pArChangedPaths;
+                       
+                               for (int cpPathIndex = 0; cpPathIndex<pLogEntry->m_Files.GetCount(); ++cpPathIndex)
                                {
-                                       CString sCopyFrom;
-                                       sCopyFrom.Format(_T(" (%s: %s, %s, %ld)\r\n"), CString(MAKEINTRESOURCE(IDS_LOG_COPYFROM)), 
-                                               (LPCTSTR)cpath->sCopyFromPath, 
-                                               (LPCTSTR)CString(MAKEINTRESOURCE(IDS_LOG_REVISION)), 
-                                               (LPCTSTR)cpath->lCopyFromRev);
-                                       sPaths += sCopyFrom;
+                                       sPaths += ((CTGitPath&)pLogEntry->m_Files[cpPathIndex]).GetActionName() + _T(" : ") + pLogEntry->m_Files[cpPathIndex].GetGitPathString();
+                                       sPaths += _T("\r\n");
                                }
+                               sPaths.Trim();
+                               sLogCopyText.Format(_T("%s: %s\r\n%s: %s\r\n%s: %s\r\n%s:\r\n%s\r\n----\r\n%s\r\n\r\n"),
+                                       (LPCTSTR)sRev, pLogEntry->m_CommitHash,
+                                       (LPCTSTR)sAuthor, (LPCTSTR)pLogEntry->m_AuthorName,
+                                       (LPCTSTR)sDate, (LPCTSTR)pLogEntry->m_AuthorDate.Format(_T("%Y-%m-%d %H:%M")),
+                                       (LPCTSTR)sMessage, pLogEntry->m_Subject+_T("\r\n")+pLogEntry->m_Body,
+                                       (LPCTSTR)sPaths);
+                               sClipdata +=  sLogCopyText;
+                       }else
+                       {
+                               sClipdata += pLogEntry->m_CommitHash;
+                               break;
                        }
-                       sPaths.Trim();
-                       sLogCopyText.Format(_T("%s: %d\r\n%s: %s\r\n%s: %s\r\n%s:\r\n%s\r\n----\r\n%s\r\n\r\n"),
-                               (LPCTSTR)sRev, pLogEntry->Rev,
-                               (LPCTSTR)sAuthor, (LPCTSTR)pLogEntry->sAuthor,
-                               (LPCTSTR)sDate, (LPCTSTR)pLogEntry->sDate,
-                               (LPCTSTR)sMessage, (LPCTSTR)pLogEntry->sMessage,
-                               (LPCTSTR)sPaths);
-                       sClipdata +=  sLogCopyText;
+
                }
                CStringUtils::WriteAsciiStringToClipboard(sClipdata, GetSafeHwnd());
        }
-#endif
+
 }
 
 void CGitLogList::DiffSelectedRevWithPrevious()
index 637b1e7..6b8fcf2 100644 (file)
@@ -97,6 +97,7 @@ public:
        ID_DIFF,\r
        ID_OPENWITH,\r
        ID_COPYCLIPBOARD,\r
+       ID_COPYHASH,\r
        ID_CHECKOUT,\r
        ID_REVERTTOREV,\r
        ID_BLAMECOMPARE,\r
@@ -108,11 +109,15 @@ public:
        ID_COMPAREWITHPREVIOUS,\r
        ID_BLAMEWITHPREVIOUS,\r
        ID_GETMERGELOGS,\r
-       ID_REVPROPS\r
+       ID_REVPROPS,\r
+       ID_CHERRY_PICK,\r
+       ID_CREATE_BRANCH,\r
+       ID_CREATE_TAG,\r
+       ID_SWITCHTOREV\r
        };\r
        void InsertGitColumn();\r
        void ResizeAllListCtrlCols();\r
-       void CopySelectionToClipBoard();\r
+       void CopySelectionToClipBoard(bool hashonly=FALSE);\r
        void DiffSelectedRevWithPrevious();\r
        bool IsSelectionContinuous();\r
        int  FillGitLog();\r
index 4aa809c..856d489 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\explorer.ico"\r
+                               RelativePath="..\Resources\explorer.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\explorer.ico"\r
+                               RelativePath=".\explorer.ico"\r
                                >\r
                        </File>\r
                        <File\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\newfolder.ico"\r
+                               RelativePath="..\Resources\newfolder.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\newfolder.ico"\r
+                               RelativePath=".\newfolder.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\open.ico"\r
+                               RelativePath="..\Resources\open.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\open.ico"\r
+                               RelativePath=".\open.ico"\r
                                >\r
                        </File>\r
                        <File\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\save.ico"\r
+                               RelativePath="..\Resources\save.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\save.ico"\r
+                               RelativePath=".\save.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\saveas.ico"\r
+                               RelativePath="..\Resources\saveas.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\saveas.ico"\r
+                               RelativePath=".\saveas.ico"\r
                                >\r
                        </File>\r
                        <File\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\up.ico"\r
+                               RelativePath="..\Resources\up.ico"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\Resources\up.ico"\r
+                               RelativePath=".\up.ico"\r
                                >\r
                        </File>\r
                        <File\r
index 1491214..9e2db9c 100644 (file)
@@ -197,7 +197,7 @@ END
 \r
 STRINGTABLE \r
 BEGIN\r
-    IDS_MENUCHECKOUT        "Chec&kout..."\r
+    IDS_MENUCHECKOUT        "Switch/Chec&kout..."\r
     IDS_MENUUPDATE          "&Update"\r
     IDS_MENUCOMMIT          "&Commit..."\r
     IDS_MENUCREATEREPOS     "Create repositor&y here"\r
@@ -205,15 +205,23 @@ BEGIN
     IDS_MENUREVERT          "Re&vert..."\r
     IDS_MENUCLEANUP         "&Clean up"\r
     IDS_MENURESOLVE         "Res&olved..."\r
+       IDS_MENUSWITCH_HERE             "Switch/Checkout to here"\r
+       IDS_MENUSWITCH                  "Switch/Checkout"\r
+       IDS_MENUCHERRYPICK_HERE "Cherry Pick This Version"                      \r
+       IDS_MENUCHERRYPICK              "Cherry Pick"\r
 END\r
 \r
 STRINGTABLE \r
 BEGIN\r
     IDS_MENUSWITCH          "S&witch..."\r
     IDS_MENUMERGE           "&Merge..."\r
-    IDS_MENUBRANCH          "Branch/&tag..."\r
+    IDS_MENUBRANCH          "Create Branch"\r
+       IDS_MENUBRANCH_HERE             "Create Branch at here"\r
+       IDS_MENUTAG                             "Create Tag"\r
+       IDS_MENUTAG_HERE                "Create Tag at here"\r
     IDS_MENUIMPORT          "&Import..."\r
     IDS_MENUEXPORT          "E&xport..."\r
+       IDS_MENUEXPORT_HERE             "Export at here"\r
     IDS_MENUSETTINGS        "&Settings"\r
     IDS_MENUABOUT           "A&bout"\r
     IDS_MENUSUBMENU         "&TortoiseGit"\r
index 186aea2..f5e930b 100644 (file)
@@ -21,8 +21,8 @@
        <Configurations>\r
                <Configuration\r
                        Name="Debug|Win32"\r
-                       OutputDirectory="..\bin\Debug\bin"\r
-                       IntermediateDirectory="..\obj\TortoiseUDiff\Debug"\r
+                       OutputDirectory="..\..\bin\Debug\bin"\r
+                       IntermediateDirectory="..\..\obj\TortoiseUDiff\Debug"\r
                        ConfigurationType="1"\r
                        CharacterSet="1"\r
                        >\r