Create() public static method

public static Create ( string repoUri ) : GitRepositoryFolder
repoUri string
return GitRepositoryFolder
        private NGit.Api.Git GetClient(ISourceControlConnectionSettingsSource settings)
        {
            var repositoryFolder = GetLocalRepository(settings);

            if (IsRepositoryUriChanged(repositoryFolder, settings))
            {
                repositoryFolder.Delete();
                repositoryFolder = GitRepositoryFolder.Create(settings.Uri);
                _folder.ReplaceWith(repositoryFolder);
            }

            NGit.Api.Git nativeGit;

            try
            {
                var credentialsProvider = new UsernamePasswordCredentialsProvider(settings.Login, settings.Password);
                if (repositoryFolder.Exists())
                {
                    string path = repositoryFolder.GetAbsolutePath();
                    nativeGit = NGit.Api.Git.Open(path);
                }
                else
                {
                    string path = repositoryFolder.GetAbsolutePath();
                    nativeGit = NGit.Api.Git.CloneRepository()
                                .SetURI(settings.Uri)
                                .SetNoCheckout(true)
                                .SetCredentialsProvider(credentialsProvider)
                                .SetDirectory(path).Call();
                }
            }
            catch (EOFException ex)
            {
                throw new InvalidOperationException("Unable to connect to repository. Run 'git fsck' in the repository to check for possible errors.", ex);
            }
            catch (ArgumentNullException exception)
            {
                throw new ArgumentException(
                          GitCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, exception);
            }

            return(nativeGit);
        }
        private GitRepositoryFolder GetLocalRepository(ISourceControlConnectionSettingsSource settings)
        {
            if (_folder.Empty())
            {
                var repositoryFolder = GitRepositoryFolder.Create(settings.Uri);
                _folder.ReplaceWith(repositoryFolder);
                return(repositoryFolder);
            }

            GitRepositoryFolder folder = _folder.Single();

            if (!folder.CheckFolder(_folder))
            {
                var repositoryFolder = GitRepositoryFolder.Create(settings.Uri);
                _folder.ReplaceWith(repositoryFolder);
                return(repositoryFolder);
            }

            return(folder);
        }