OSDN Git Service

Build TortoiseBlame Success.
[tortoisegit/TortoiseGitJp.git] / src / Git / Git.cpp
index 7a4eede..87c5d89 100644 (file)
@@ -77,7 +77,20 @@ void CGit::StringAppend(CString *str,char *p)
        str->Append(A2W(p));\r
 \r
 }      \r
+BOOL CGit::IsInitRepos()\r
+{\r
+       CString cmdout;\r
+       cmdout.Empty();\r
+       if(g_Git.Run(_T("git.exe rev-parse --revs-only HEAD"),&cmdout))\r
+       {\r
+       //      CMessageBox::Show(NULL,cmdout,_T("TortoiseGit"),MB_OK);\r
+               return TRUE;\r
+       }\r
+       if(cmdout.IsEmpty())\r
+               return TRUE;\r
 \r
+       return FALSE;\r
+}\r
 int CGit::Run(CString cmd, CString* output)\r
 {\r
        PROCESS_INFORMATION pi;\r
@@ -124,13 +137,22 @@ CString CGit::GetUserEmail(void)
 \r
 CString CGit::GetCurrentBranch(void)\r
 {\r
-       CString branch;\r
-       Run(_T("git.exe branch"),&branch);\r
-       if(branch.GetLength()>0)\r
-       {\r
-               branch.Replace(_T('*'),_T(' '));\r
-               branch.TrimLeft();\r
-               return branch;\r
+       CString output;\r
+       //Run(_T("git.exe branch"),&branch);\r
+\r
+       int ret=g_Git.Run(_T("git.exe branch"),&output);\r
+       if(!ret)\r
+       {               \r
+               int pos=0;\r
+               CString one;\r
+               while( pos>=0 )\r
+               {\r
+                       //i++;\r
+                       one=output.Tokenize(_T("\n"),pos);\r
+                       //list.push_back(one.Right(one.GetLength()-2));\r
+                       if(one[0] == _T('*'))\r
+                               return one.Right(one.GetLength()-2);\r
+               }\r
        }\r
        return CString("");\r
 }\r
@@ -159,7 +181,7 @@ int CGit::BuildOutputFormat(CString &format,bool IsFull)
                log.Format(_T("#<%c>%%b%%n"),LOG_REV_COMMIT_BODY);\r
                format += log;\r
        }\r
-       log.Format(_T("#<%c>%%H%%n"),LOG_REV_COMMIT_HASH);\r
+       log.Format(_T("#<%c>%%m%%H%%n"),LOG_REV_COMMIT_HASH);\r
        format += log;\r
        log.Format(_T("#<%c>%%P%%n"),LOG_REV_COMMIT_PARENT);\r
        format += log;\r
@@ -200,7 +222,7 @@ int CGit::GetShortLog(CString &logOut,CTGitPath * path, int count)
                n=100;\r
        else\r
                n=count;\r
-       cmd.Format(_T("git.exe log --topo-order -n%d --pretty=format:\""),n);\r
+       cmd.Format(_T("git.exe log --left-right --boundary --topo-order -n%d --pretty=format:\""),n);\r
        BuildOutputFormat(log,false);\r
        cmd += log+_T("\"");\r
        if (path)\r
@@ -386,7 +408,7 @@ int CGit::GetMapHashToFriendName(MAP_HASH_NAME &map)
 {\r
        int ret;\r
        CString cmd,output;\r
-       cmd=_T("git show-ref");\r
+       cmd=_T("git show-ref -d");\r
        ret=g_Git.Run(cmd,&output);\r
        if(!ret)\r
        {\r