Tp.Git.VersionControlSystem.GitClient.GetClient C# (CSharp) Méthode

GetClient() private méthode

private GetClient ( ISourceControlConnectionSettingsSource settings ) : NGit.Api.Git
settings ISourceControlConnectionSettingsSource
Résultat NGit.Api.Git
		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;
		}