Detect git worktrees correctly

Git worktrees are represented as a file named .git, with contents that
look like:

    gitdir: E:/cli/.git/worktrees/cli2
This commit is contained in:
Ashley Hauck 2017-06-19 10:57:38 -07:00
parent e3d388e82d
commit ca848eddd3

View file

@ -37,9 +37,14 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
string directory = AppContext.BaseDirectory;
#endif
while (!Directory.Exists(Path.Combine(directory, ".git")) && directory != null)
while (directory != null)
{
directory = Directory.GetParent(directory).FullName;
var gitDirOrFile = Path.Combine(directory, ".git");
if (Directory.Exists(gitDirOrFile) || File.Exists(gitDirOrFile))
{
break;
}
directory = Directory.GetParent(directory)?.FullName;
}
if (directory == null)