The reason is the IGitService (GitExeServer.cs) cached the env.RepositoryPath in ctor.   This is the only thing we need to delay.   Since I am adding more here like IEnvironment, IFileSystem (for mock reason), I decided to go with a generic single argument.