From c0e13635580acf40acb7ebc7e945563179bec510 Mon Sep 17 00:00:00 2001 From: Sup Yut Sum Date: Wed, 20 Mar 2013 22:05:31 +0800 Subject: [PATCH] Use libgit2 git_reference_is_valid_name() to validate branch name This covers more cases then our own checking Signed-off-by: Sup Yut Sum --- src/Git/Git.cpp | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/Git/Git.cpp b/src/Git/Git.cpp index fb662cbab..d5996f814 100644 --- a/src/Git/Git.cpp +++ b/src/Git/Git.cpp @@ -186,24 +186,8 @@ CGit::~CGit(void) bool CGit::IsBranchNameValid(CString branchname) { - if (branchname.IsEmpty()) - return false; - - for (int i = 0; i < branchname.GetLength(); ++i) - { - TCHAR c = branchname.GetAt(i); - if (c <= ' ' || c == '~' || c == '^' || c == ':' || c == '\\' || c == '?' || c == '[') - return false; - } - - if (branchname.Find(L".") == 0 || branchname.Find(L"/.") >= 0 || branchname.Find(L"..") >= 0 || branchname.Find(L"@{") >= 0 || branchname.ReverseFind('*') >= 0) - return false; - - CString reverseBranchname = branchname.MakeReverse(); - if (branchname.Find(L'.') == 0 || branchname.Find(L'/') == 0 || reverseBranchname.Find(L"kcol.") >= 0) - return false; - - return true; + CStringA branchA = CUnicodeUtils::GetUTF8(_T("refs/heads/") + branchname); + return !!git_reference_is_valid_name(branchA); } static char g_Buffer[4096]; -- 2.11.4.GIT