OSDN Git Service

Add remote branch and current branch at proptery page
authorFrank Li <lznuaa@gmail.com>
Mon, 19 Oct 2009 05:46:18 +0000 (13:46 +0800)
committerFrank Li <lznuaa@gmail.com>
Mon, 19 Oct 2009 05:46:18 +0000 (13:46 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/Git.cpp
src/TortoiseShell/SVNPropertyPage.cpp

index ec7b852..c264be7 100644 (file)
@@ -331,7 +331,7 @@ CString CGit::GetCurrentBranch(void)
        CString output;\r
        //Run(_T("git.exe branch"),&branch);\r
 \r
-       int ret=g_Git.Run(_T("git.exe branch"),&output,CP_UTF8);\r
+       int ret=g_Git.Run(_T("git.exe branch --no-color"),&output,CP_UTF8);\r
        if(!ret)\r
        {               \r
                int pos=0;\r
@@ -708,7 +708,7 @@ int CGit::GetBranchList(STRING_VECTOR &list,int *current,BRANCH_TYPE type)
 {\r
        int ret;\r
        CString cmd,output;\r
-       cmd=_T("git.exe branch");\r
+       cmd=_T("git.exe branch --no-color");\r
 \r
        if(type==(BRANCH_LOCAL|BRANCH_REMOTE))\r
                cmd+=_T(" -a");\r
index 874cbfb..f59322f 100644 (file)
@@ -231,10 +231,37 @@ void CGitPropertyPage::InitWorkfileView()
 \r
        CString branch;\r
        CString headhash;\r
+       CString remotebranch;\r
+\r
+       g_Git.Run(_T("tgit symbolic-ref HEAD"),&branch,CP_ACP);\r
+       CString cmd,log;\r
+\r
+       if(!branch.IsEmpty())\r
+       {\r
+               if( branch.Find(_T("refs/heads/"),0) >=0 )\r
+               {\r
+                       CString remote;\r
+                       branch=branch.Mid(11);\r
+                       int start=0;\r
+                       branch=branch.Tokenize(_T("\n"),start);\r
+                       start=0;\r
+                       branch=branch.Tokenize(_T("\r"),start);\r
+                       cmd.Format(_T("tgit config branch.%s.merge"),branch);\r
+                       g_Git.Run(cmd,&remotebranch,CP_ACP);\r
+                       cmd.Format(_T("tgit config branch.%s.remote"),branch);\r
+                       g_Git.Run(cmd,&remote,CP_ACP);\r
+                       if((!remote.IsEmpty()) && (!remotebranch.IsEmpty()))\r
+                       {\r
+                               remotebranch=remotebranch.Mid(11);\r
+                               remotebranch=remote+_T("/")+remotebranch;\r
+                       }\r
+               }\r
+       }\r
+\r
 \r
        BYTE_VECTOR logout;\r
 \r
-       CString cmd,log;\r
+       \r
        cmd=_T("tgit log -z --topo-order -n1 --parents --pretty=format:\"");\r
        \r
        g_Git.BuildOutputFormat(log,true);\r
@@ -251,6 +278,9 @@ void CGitPropertyPage::InitWorkfileView()
        SetDlgItemText(m_hwnd,IDC_CONFIG_AUTOCRLF,autocrlf);\r
        SetDlgItemText(m_hwnd,IDC_CONFIG_SAFECRLF,safecrlf);\r
 \r
+       SetDlgItemText(m_hwnd,IDC_SHELL_CURRENT_BRANCH,branch);\r
+       SetDlgItemText(m_hwnd,IDC_SHELL_REMOTE_BRANCH,remotebranch);\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