OSDN Git Service

Fixed issue #188: Add Git Properties tab into Windows File Properties
authorFrank Li <lznuaa@gmail.com>
Sun, 18 Oct 2009 06:59:04 +0000 (14:59 +0800)
committerFrank Li <lznuaa@gmail.com>
Sun, 18 Oct 2009 06:59:04 +0000 (14:59 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseShell/SVNPropertyPage.cpp
src/TortoiseShell/resource.h
src/TortoiseShell/resourceshell.rc

index 2f0817b..874cbfb 100644 (file)
@@ -219,6 +219,80 @@ void CGitPropertyPage::Time64ToTimeString(__time64_t time, TCHAR * buf, size_t b
 \r
 void CGitPropertyPage::InitWorkfileView()\r
 {\r
+       CString username;\r
+       //can't git.exe when create process\r
+       g_Git.Run(_T("tgit config user.name"),&username,CP_ACP);\r
+       CString useremail;\r
+       g_Git.Run(_T("tgit config user.email"),&useremail,CP_ACP);\r
+       CString autocrlf;\r
+       g_Git.Run(_T("tgit config core.autocrlf"),&autocrlf,CP_ACP);\r
+       CString safecrlf;\r
+       g_Git.Run(_T("tgit config core.safecrlf"),&safecrlf,CP_ACP);\r
+\r
+       CString branch;\r
+       CString headhash;\r
+\r
+       BYTE_VECTOR logout;\r
+\r
+       CString cmd,log;\r
+       cmd=_T("tgit log -z --topo-order -n1 --parents --pretty=format:\"");\r
+       \r
+       g_Git.BuildOutputFormat(log,true);\r
+\r
+       cmd += log;\r
+       cmd += CString(_T("\"  "));\r
+\r
+       g_Git.Run(cmd,&logout);\r
+       GitRev rev;\r
+       rev.ParserFromLog(logout);\r
+\r
+       SetDlgItemText(m_hwnd,IDC_CONFIG_USERNAME,username);\r
+       SetDlgItemText(m_hwnd,IDC_CONFIG_USEREMAIL,useremail);\r
+       SetDlgItemText(m_hwnd,IDC_CONFIG_AUTOCRLF,autocrlf);\r
+       SetDlgItemText(m_hwnd,IDC_CONFIG_SAFECRLF,safecrlf);\r
+\r
+       SetDlgItemText(m_hwnd,IDC_HEAD_HASH,rev.m_CommitHash);\r
+       SetDlgItemText(m_hwnd,IDC_HEAD_SUBJECT,rev.m_Subject);\r
+       SetDlgItemText(m_hwnd,IDC_HEAD_AUTHOR,rev.m_AuthorName);\r
+       SetDlgItemText(m_hwnd,IDC_HEAD_DATE,rev.m_AuthorDate.Format(_T("%Y-%m-%d %H:%M:%S")));\r
+\r
+       if (filenames.size() == 1)\r
+       {\r
+               CTGitPath path(filenames.front().c_str());\r
+               CTGitPath relatepath;\r
+               CString strpath=path.GetWinPathString();\r
+               CString ProjectTopDir;\r
+\r
+               if(!path.HasAdminDir(&ProjectTopDir))\r
+                       return;\r
+               \r
+               if(ProjectTopDir[ProjectTopDir.GetLength()-1] == _T('\\'))\r
+               {\r
+                       relatepath.SetFromWin( strpath.Right(strpath.GetLength()-ProjectTopDir.GetLength()));\r
+               }else\r
+               {\r
+                       relatepath.SetFromWin( strpath.Right(strpath.GetLength()-ProjectTopDir.GetLength()-1));\r
+               }\r
+\r
+               cmd+=_T("-- \"");\r
+               cmd+=relatepath.GetGitPathString();     \r
+               cmd+=_T("\"");\r
+\r
+               logout.clear();\r
+               g_Git.Run(cmd,&logout);\r
+               rev.Clear();\r
+               rev.ParserFromLog(logout);\r
+\r
+               SetDlgItemText(m_hwnd,IDC_LAST_HASH,rev.m_CommitHash);\r
+               SetDlgItemText(m_hwnd,IDC_LAST_SUBJECT,rev.m_Subject);\r
+               SetDlgItemText(m_hwnd,IDC_LAST_AUTHOR,rev.m_AuthorName);\r
+               SetDlgItemText(m_hwnd,IDC_LAST_DATE,rev.m_AuthorDate.Format(_T("%Y-%m-%d %H:%M:%S")));\r
+\r
+       }else\r
+       {\r
+\r
+       }\r
+\r
 #if 0\r
        GitStatus svn = GitStatus();\r
        TCHAR tbuf[MAX_STRING_LENGTH];\r
index f993179..7de4d2f 100644 (file)
 #define IDS_MENUDESCSYNC                340\r
 #define IDS_MENUSTASHPOP                341\r
 #define IDS_MENUSVNIGNORE               342\r
-#define IDS_MENUSVNIGNORE_DEST          343\r
 #define IDS_MENUSVNIGNORE_DESC          343\r
 #define IDC_REVISION                    1001\r
+#define IDC_HEAD_HASH                   1001\r
 #define IDC_LOCKED                      1002\r
+#define IDC_LAST_HASH                   1002\r
 #define IDC_REPOURL                     1003\r
+#define IDC_CURRENT_BRANCH              1003\r
 #define IDC_CREVISION                   1004\r
+#define IDC_HEAD_SUBJECT                1004\r
 #define IDC_CDATE                       1005\r
+#define IDC_LAST_SUBJECT                1005\r
 #define IDC_AUTHOR                      1006\r
 #define IDC_TEXTSTATUS                  1007\r
+#define IDC_HEAD_AUTHOR                 1007\r
 #define IDC_TEXTDATE                    1008\r
+#define IDC_LAST_AUTHOR                 1008\r
 #define IDC_PROPSTATUS                  1009\r
+#define IDC_HEAD_DATE                   1009\r
 #define IDC_PROPDATE                    1010\r
+#define IDC_LAST_DATE                   1010\r
 #define IDC_PROPLIST                    1011\r
 #define IDC_SWITCHED                    1011\r
 #define IDC_ADDBUTTON                   1012\r
 #define IDI_MENUSENDMAIL                5175\r
 #define IDC_LOCKOWNER                   11019\r
 #define IDC_LOCKDATE                    11020\r
+#define IDC_CONFIG_AUTOCRLF             11020\r
 #define IDC_EDITPROPERTIES              11021\r
 #define IDC_REPOURLUNESCAPED            11022\r
+#define IDC_REMOTE_BRANCH               11022\r
 #define IDC_ESCAPEDURLLABEL             11023\r
 #define IDC_REPOUUID                    11024\r
+#define IDC_CONFIG_SAFECRLF             11024\r
 #define IDC_CHANGELIST                  11025\r
+#define IDC_CONFIG_USERNAME             11025\r
 #define IDC_DEPTHEDIT                   11026\r
+#define IDC_CONFIG_USEREMAIL            11026\r
 #define IDC_CHECKSUM                    11027\r
 \r
 // Next default values for new objects\r
index a2ecbc8..99c3494 100644 (file)
@@ -111,42 +111,30 @@ STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_CAPTION
 CAPTION "Property Page"\r
 FONT 8, "MS Shell Dlg", 0, 0, 0x1\r
 BEGIN\r
-    LTEXT           "URL:",IDC_STATIC,4,5,26,8\r
-    EDITTEXT        IDC_REPOURL,30,5,213,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    LTEXT           "URL:",IDC_ESCAPEDURLLABEL,4,17,26,8\r
-    EDITTEXT        IDC_REPOURLUNESCAPED,29,17,214,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Revision / Author:",IDC_STATIC,4,31,76,8\r
-    EDITTEXT        IDC_REVISION,80,31,40,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    EDITTEXT        IDC_AUTHOR,120,31,94,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    LTEXT           "Last commit revision:",IDC_STATIC,4,43,76,8\r
-    EDITTEXT        IDC_CREVISION,80,43,40,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    EDITTEXT        IDC_CDATE,120,43,123,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    LTEXT           "Text Status:",IDC_STATIC,4,55,76,8\r
-    EDITTEXT        IDC_TEXTSTATUS,80,55,40,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    EDITTEXT        IDC_TEXTDATE,120,55,123,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    LTEXT           "Property Status:",IDC_STATIC,4,67,76,8\r
-    EDITTEXT        IDC_PROPSTATUS,80,67,40,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    EDITTEXT        IDC_PROPDATE,120,67,123,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
-    LTEXT           "Lock owner:",IDC_STATIC,4,79,76,8\r
-    EDITTEXT        IDC_LOCKOWNER,80,79,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Lock creation date:",IDC_STATIC,4,91,76,8\r
-    EDITTEXT        IDC_LOCKDATE,80,90,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Repository UUID:",IDC_STATIC,4,103,76,8\r
-    EDITTEXT        IDC_REPOUUID,80,102,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Changelist:",IDC_STATIC,4,115,76,8\r
-    EDITTEXT        IDC_CHANGELIST,80,114,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Depth:",IDC_STATIC,4,127,76,8\r
-    EDITTEXT        IDC_DEPTHEDIT,80,126,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "Checksum:",IDC_STATIC,4,139,76,8\r
-    EDITTEXT        IDC_CHECKSUM,80,138,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
-    LTEXT           "locked:",IDC_STATIC,4,151,76,8\r
-    LTEXT           "yes",IDC_LOCKED,80,150,163,8\r
-    LTEXT           "switched:",IDC_STATIC,4,163,76,8\r
-    LTEXT           "yes",IDC_SWITCHED,80,162,163,8\r
-    LTEXT           "copied:",IDC_STATIC,4,175,76,8\r
-    LTEXT           "yes",IDC_COPIED,80,174,163,8\r
-    PUSHBUTTON      "&Properties...",IDC_EDITPROPERTIES,4,191,107,14\r
-    PUSHBUTTON      "Show &log",IDC_SHOWLOG,120,191,123,14\r
+    LTEXT           "Current Branch:",IDC_STATIC,4,9,59,8\r
+    EDITTEXT        IDC_CURRENT_BRANCH,91,9,142,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    LTEXT           "Tracked Remote Branch:",IDC_ESCAPEDURLLABEL,4,21,85,8\r
+    EDITTEXT        IDC_REMOTE_BRANCH,91,21,139,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
+    LTEXT           "HEAD:",IDC_STATIC,4,35,76,8\r
+    EDITTEXT        IDC_HEAD_HASH,80,35,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_HEAD_SUBJECT,80,47,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_HEAD_AUTHOR,80,59,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_HEAD_DATE,79,71,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    LTEXT           "Auto Crlf:",IDC_STATIC,13,171,76,8\r
+    EDITTEXT        IDC_CONFIG_AUTOCRLF,71,171,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
+    LTEXT           "Safe Crlf:",IDC_STATIC,13,183,76,8\r
+    EDITTEXT        IDC_CONFIG_SAFECRLF,71,183,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
+    LTEXT           "User Name:",IDC_STATIC,13,195,76,8\r
+    EDITTEXT        IDC_CONFIG_USERNAME,71,195,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
+    LTEXT           "User Email:",IDC_STATIC,13,207,76,8\r
+    EDITTEXT        IDC_CONFIG_USEREMAIL,71,207,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
+    PUSHBUTTON      "Show &log",IDC_SHOWLOG,120,238,123,14\r
+    GROUPBOX        "Config",IDC_STATIC,4,159,239,66\r
+    LTEXT           "Last Modified:",IDC_STATIC,4,97,76,8\r
+    EDITTEXT        IDC_LAST_HASH,80,97,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_LAST_SUBJECT,80,108,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_LAST_AUTHOR,80,121,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
+    EDITTEXT        IDC_LAST_DATE,80,132,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_TRANSPARENT\r
 END\r
 \r
 \r