OSDN Git Service

Fix issue 17 Switch should default branch to current branch
[tortoisegit/TortoiseGitJp.git] / src / Git / GitAdminDir.cpp
index 1f6ddcc..f05763b 100644 (file)
@@ -88,7 +88,6 @@ bool GitAdminDir::HasAdminDir(const CString& path) const
 \r
 bool GitAdminDir::HasAdminDir(const CString& path,CString *ProjectTopDir) const\r
 {\r
-       bool b=PathIsDirectory(path);\r
        return HasAdminDir(path, !!PathIsDirectory(path),ProjectTopDir);\r
 }\r
 \r
@@ -103,6 +102,26 @@ bool GitAdminDir::HasAdminDir(const CString& path, bool bDir,CString *ProjectTop
                sDirName = path.Left(path.ReverseFind('\\'));\r
        }\r
        \r
+       // a .git dir or anything inside it should be left out, only interested in working copy files -- Myagi\r
+       {\r
+       int n = 0;\r
+       for (;;)\r
+       {\r
+               n = sDirName.Find(_T("\\.git"), n);\r
+               if (n < 0)\r
+               {\r
+                       break;\r
+               }\r
+\r
+               // check for actual .git dir (and not .gitignore or something else), continue search if false match\r
+               n += 5;\r
+               if (sDirName[n] == _T('\\') || sDirName[n] == 0)\r
+               {\r
+                       return false;\r
+               }\r
+       }\r
+       }\r
+\r
        do\r
        {\r
                if(PathFileExists(sDirName + _T("\\.git")))\r