+CString CGit::GetSymbolicRef(const wchar_t* symbolicRefName, bool bStripRefsHeads)\r
+{\r
+ CString refName;\r
+ CString cmd;\r
+ cmd.Format(L"git symbolic-ref %s", symbolicRefName);\r
+ if(Run(cmd, &refName, CP_UTF8) != 0)\r
+ return CString();//Error\r
+ int iStart = 0;\r
+ refName = refName.Tokenize(L"\n", iStart);\r
+ if(bStripRefsHeads)\r
+ refName = StripRefName(refName);\r
+ return refName;\r
+}\r
+\r
+CString CGit::GetFullRefName(CString shortRefName)\r
+{\r
+ CString refName;\r
+ CString cmd;\r
+ cmd.Format(L"git rev-parse --symbolic-full-name %s", shortRefName);\r
+ if(Run(cmd, &refName, CP_UTF8) != 0)\r
+ return CString();//Error\r
+ int iStart = 0;\r
+ return refName.Tokenize(L"\n", iStart);\r
+}\r
+\r
+CString CGit::StripRefName(CString refName)\r
+{\r
+ if(wcsncmp(refName, L"refs/heads/", 11) == 0)\r
+ refName = refName.Mid(11);\r
+ else if(wcsncmp(refName, L"refs/", 5) == 0)\r
+ refName = refName.Mid(5);\r
+ return refName;\r
+}\r
+\r