protected VersionControlSystem(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger) { _settings = settings; _errorResolver = errorResolver; _logger = logger; }
public IVersionControlSystem Get(ISourceControlConnectionSettingsSource settings) { var vcsArgs = new ExplicitArguments(); vcsArgs.Set(settings); return(ObjectFactory.GetInstance <IVersionControlSystem>(vcsArgs)); }
protected VersionControlSystem(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger) { _settings = settings; _errorResolver = errorResolver; _logger = logger; }
public GitVersionControlSystem(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor, IStorageRepository profile) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; _git = new GitClient(settings, profile.Get<GitRepositoryFolder>()); }
private TfsVersionControlSystem CreateTfs(ISourceControlConnectionSettingsSource settings) { return(new TfsVersionControlSystem( settings, ObjectFactory.GetInstance <ICheckConnectionErrorResolver>(), ObjectFactory.GetInstance <IActivityLogger>(), ObjectFactory.GetInstance <IDiffProcessor>())); }
protected VersionControlSystemProcessorBase(IRevisionIdComparer revisionComparer, IStorageRepository storage, ISourceControlConnectionSettingsSource settingsSource, IVersionControlSystem versionControlSystem, ILocalBus bus, IActivityLogger logger) { RevisionComparer = revisionComparer; Storage = storage; VersionControlSystem = versionControlSystem; Bus = bus; Logger = logger; StartRevision = revisionComparer.ConvertToRevisionId(settingsSource.StartRevision); }
public GitVersionControlSystem(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor, IStorageRepository profile, IRevisionIdComparer revisionComparer) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; _revisionComparer = revisionComparer; _git = new GitClient(settings, profile.Get <GitRepositoryFolder>()); }
private MercurialVersionControlSystem CreateMercurial(ISourceControlConnectionSettingsSource settings) { return(new MercurialVersionControlSystem( settings, ObjectFactory.GetInstance <ICheckConnectionErrorResolver>(), ObjectFactory.GetInstance <IActivityLogger>(), ObjectFactory.GetInstance <IDiffProcessor>(), ObjectFactory.GetInstance <IStorageRepository>())); }
public static TfsConnectionParameters GetTfsConnectionParameters(ISourceControlConnectionSettingsSource settings) { try { var parameters = new TfsConnectionParameters { Credential = CreateCredential(settings) }; var uri = new Uri(settings.Uri); string[] absolutePathSegments = uri.LocalPath.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); string possibleVirtualDirectory = absolutePathSegments[0]; string[] segements = settings.Uri.Split('/'); string[] serverPathSegments = segements.TakeWhile(x => !x.Equals(possibleVirtualDirectory, StringComparison.OrdinalIgnoreCase)).ToArray(); string serverPath = String.Join("/", serverPathSegments); if (CheckTfsServerPath(serverPath, parameters.Credential)) { parameters.TfsCollectionUri = new Uri(serverPath + "/" + possibleVirtualDirectory); if (absolutePathSegments.Length > 1) { parameters.TeamProjectName = absolutePathSegments[1]; } parameters.SegmentsCount = absolutePathSegments.Length; return(parameters); } serverPath += "/" + possibleVirtualDirectory; if (!CheckTfsServerPath(serverPath, parameters.Credential)) { throw new TeamFoundationServiceUnavailableException("Could not connect to server."); } string[] pathSegments = absolutePathSegments.SkipWhile(x => !x.Equals(absolutePathSegments[1], StringComparison.OrdinalIgnoreCase)).ToArray(); parameters.TfsCollectionUri = new Uri(serverPath + "/" + pathSegments[0]); if (pathSegments.Length > 1) { parameters.TeamProjectName = pathSegments[1]; } parameters.SegmentsCount = pathSegments.Length; return(parameters); } catch (TeamFoundationServiceUnavailableException) { throw; } catch { throw new Exception("Wrong URI format."); } }
public TfsVersionControlSystem( ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; _tfsClient = new TfsClient(settings); }
public MercurialVersionControlSystem( ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; _mercurial = new MercurialClient(settings); }
public MercurialVersionControlSystem( ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor, IStorageRepository profile) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; _mercurial = new MercurialClient(settings, profile.Get <MercurialRepositoryFolder>()); }
private static WorkItemStore GetWorkItemStore(ISourceControlConnectionSettingsSource settings) { TfsConnectionParameters parameters = TfsConnectionHelper.GetTfsConnectionParameters(settings); var teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); teamProjectCollection.EnsureAuthenticated(); var workItemStore = teamProjectCollection.GetService<WorkItemStore>(); return workItemStore; }
private static WorkItemStore GetWorkItemStore(ISourceControlConnectionSettingsSource settings) { TfsConnectionParameters parameters = TfsConnectionHelper.GetTfsConnectionParameters(settings); var teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); teamProjectCollection.EnsureAuthenticated(); var workItemStore = teamProjectCollection.GetService <WorkItemStore>(); return(workItemStore); }
public static TeamProject[] GetAvailableTeamProjects(ISourceControlConnectionSettingsSource settings) { var parameters = GetTfsConnectionParameters(settings); var collection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); var vcs = collection.GetService<VersionControlServer>(); if (string.IsNullOrEmpty(parameters.TeamProjectName)) return vcs.GetAllTeamProjects(false); TeamProject teamProject = vcs.GetTeamProject(parameters.TeamProjectName); return new[] { teamProject }; }
public static TfsConnectionParameters GetTfsConnectionParameters(ISourceControlConnectionSettingsSource settings) { try { var parameters = new TfsConnectionParameters {Credential = CreateCredential(settings)}; var uri = new Uri(settings.Uri); string[] absolutePathSegments = uri.LocalPath.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); string possibleVirtualDirectory = absolutePathSegments[0]; string[] segements = settings.Uri.Split('/'); string[] serverPathSegments = segements.TakeWhile(x => !x.Equals(possibleVirtualDirectory, StringComparison.OrdinalIgnoreCase)).ToArray(); string serverPath = String.Join("/", serverPathSegments); if (CheckTfsServerPath(serverPath, parameters.Credential)) { parameters.TfsCollectionUri = new Uri(serverPath + "/" + possibleVirtualDirectory); if (absolutePathSegments.Length > 1) parameters.TeamProjectName = absolutePathSegments[1]; parameters.SegmentsCount = absolutePathSegments.Length; return parameters; } serverPath += "/" + possibleVirtualDirectory; if (!CheckTfsServerPath(serverPath, parameters.Credential)) throw new TeamFoundationServiceUnavailableException("Could not connect to server."); string[] pathSegments = absolutePathSegments.SkipWhile(x => !x.Equals(absolutePathSegments[1], StringComparison.OrdinalIgnoreCase)).ToArray(); parameters.TfsCollectionUri = new Uri(serverPath + "/" + pathSegments[0]); if (pathSegments.Length > 1) parameters.TeamProjectName = pathSegments[1]; parameters.SegmentsCount = pathSegments.Length; return parameters; } catch (TeamFoundationServiceUnavailableException) { throw; } catch { throw new Exception("Wrong URI format."); } }
private Repository GetClient(ISourceControlConnectionSettingsSource settings) { var repositoryFolder = GetLocalRepository(settings); if (IsRepositoryUriChanged(repositoryFolder, settings)) { repositoryFolder.Delete(); repositoryFolder = MercurialRepositoryFolder.Create(settings.Uri); _folder.ReplaceWith(repositoryFolder); } Repository repository; try { if (repositoryFolder.Exists()) { string path = repositoryFolder.GetAbsolutePath(); repository = new Repository(path, new NonPersistentClientFactory()); repository.Pull(settings.Uri); } else { string path = repositoryFolder.GetAbsolutePath(); Directory.CreateDirectory(path); CloneCommand cloneCommand = new CloneCommand().WithUpdate(false); repository = new Repository(path, new NonPersistentClientFactory()); repository.Clone(settings.Uri, cloneCommand); } } catch (ArgumentNullException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, e); } catch (FileNotFoundException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, e); } catch (MercurialMissingException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.MERCURIAL_IS_NOT_INSTALLED_ERROR_MESSAGE, e); } return(repository); }
public static TeamProject[] GetAvailableTeamProjects(ISourceControlConnectionSettingsSource settings) { var parameters = GetTfsConnectionParameters(settings); var collection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); var vcs = collection.GetService <VersionControlServer>(); if (string.IsNullOrEmpty(parameters.TeamProjectName)) { return(vcs.GetAllTeamProjects(false)); } TeamProject teamProject = vcs.GetTeamProject(parameters.TeamProjectName); return(new[] { teamProject }); }
public static NetworkCredential CreateCredential(ISourceControlConnectionSettingsSource settings) { string domen = string.Empty; string login; if (settings.Login.IndexOf('\\') > 0) { domen = settings.Login.Substring(0, settings.Login.IndexOf('\\')); login = settings.Login.Substring(settings.Login.IndexOf('\\') + 1); } else { login = settings.Login; } NetworkCredential credential = string.IsNullOrEmpty(domen) ? new NetworkCredential(login, settings.Password) : new NetworkCredential(login, settings.Password, domen); return(credential); }
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); }
public static NetworkCredential CreateCredential(ISourceControlConnectionSettingsSource settings) { string domen = string.Empty; string login; if (settings.Login.IndexOf('\\') > 0) { domen = settings.Login.Substring(0, settings.Login.IndexOf('\\')); login = settings.Login.Substring(settings.Login.IndexOf('\\') + 1); } else { login = settings.Login; } NetworkCredential credential = string.IsNullOrEmpty(domen) ? new NetworkCredential(login, settings.Password) : new NetworkCredential(login, settings.Password, domen); return credential; }
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); }
public static TfsClientCredentials CreateCredential(ISourceControlConnectionSettingsSource settings) { var domen = string.Empty; string login; if (settings.Login.IndexOf('\\') > 0) { domen = settings.Login.Substring(0, settings.Login.IndexOf('\\')); login = settings.Login.Substring(settings.Login.IndexOf('\\') + 1); } else { login = settings.Login; } var credential = string.IsNullOrEmpty(domen) ? new TfsClientCredentials(new BasicAuthCredential(new NetworkCredential(login, settings.Password))) : new TfsClientCredentials(new WindowsCredential(new NetworkCredential(login, settings.Password, domen))); return(credential); }
private VersionControlServer GetVersionControl(ISourceControlConnectionSettingsSource settings) { VersionControlServer versionControl = null; TfsConnectionParameters parameters = TfsConnectionHelper.GetTfsConnectionParameters(settings); switch (parameters.SegmentsCount) { case UriTfsProjectCollection: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); versionControl = _teamProjectCollection.GetService <VersionControlServer>(); _teamProjects = versionControl.GetAllTeamProjects(false); break; } case UriTfsTeamProject: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); versionControl = _teamProjectCollection.GetService <VersionControlServer>(); _teamProjects = new TeamProject[] { versionControl.GetTeamProject(parameters.TeamProjectName) }; break; } default: throw new Exception("Wrong URI format."); } return(versionControl); }
private static bool IsRepositoryUriChanged(GitRepositoryFolder repositoryFolder, ISourceControlConnectionSettingsSource settings) { return((settings.Uri.ToLower() != repositoryFolder.RepoUri.ToLower()) && repositoryFolder.Exists()); }
public TfsWorkItemsStore(ISourceControlConnectionSettingsSource settings) { _workItemStore = new TfsWorkItemStoreClient(settings); }
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; }
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; }
public Subversion(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; Connect(); }
public static TfsClientCredentials CreateCredential(ISourceControlConnectionSettingsSource settings) { var domen = string.Empty; string login; if (settings.Login.IndexOf('\\') > 0) { domen = settings.Login.Substring(0, settings.Login.IndexOf('\\')); login = settings.Login.Substring(settings.Login.IndexOf('\\') + 1); } else { login = settings.Login; } var credential = string.IsNullOrEmpty(domen) ? new TfsClientCredentials(new BasicAuthCredential(new NetworkCredential(login, settings.Password))) : new TfsClientCredentials(new WindowsCredential(new NetworkCredential(login, settings.Password, domen))); return credential; }
public TfsWorkItemsStore(ISourceControlConnectionSettingsSource settings) { _workItemStore = new TfsWorkItemStoreClient(settings); }
public MercurialClient(ISourceControlConnectionSettingsSource settings, IStorage <MercurialRepositoryFolder> folder) { _settings = settings; _folder = folder; _repository = GetClient(settings); }
public TfsWorkItemStoreClient(ISourceControlConnectionSettingsSource settings) { _settings = settings as TfsCurrentProfileToConnectionSettingsAdapter; _workItemStore = GetWorkItemStore(_settings); }
private MercurialVersionControlSystem CreateMercurial(ISourceControlConnectionSettingsSource settings) { return new MercurialVersionControlSystem( settings, ObjectFactory.GetInstance<ICheckConnectionErrorResolver>(), ObjectFactory.GetInstance<IActivityLogger>(), ObjectFactory.GetInstance<IDiffProcessor>(), ObjectFactory.GetInstance<IStorageRepository>()); }
private VersionControlServer GetVersionControl(ISourceControlConnectionSettingsSource settings) { VersionControlServer versionControl; TfsConnectionParameters parameters = TfsConnectionHelper.GetTfsConnectionParameters(settings); switch (parameters.SegmentsCount) { case UriTfsProjectCollection: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); versionControl = _teamProjectCollection.GetService<VersionControlServer>(); _teamProjects = versionControl.GetAllTeamProjects(false); break; } case UriTfsTeamProject: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); try { versionControl = _teamProjectCollection.GetService<VersionControlServer>(); _teamProjects = new[] { versionControl.GetTeamProject(parameters.TeamProjectName) }; } catch (Microsoft.TeamFoundation.VersionControl.Client.VersionControlException) { var gitRepositoryService = _teamProjectCollection.GetService<GitRepositoryService>(); var gitRepositories = gitRepositoryService.QueryRepositories(parameters.TeamProjectName); var gitRepository = gitRepositories.Single(gr => gr.Name.Equals(parameters.TeamProjectName)); if (gitRepository != null) { throw new VersionControlException($"Git team project is not supported, use Git plugin with '{gitRepository.RemoteUrl}' instead."); } throw; } break; } default: throw new Exception("Wrong URI format."); } return versionControl; }
public RepositoryRescanInitiatedMessageHandler(IVersionControlSystem versionControlSystem, IRevisionIdComparer revisionComparer, ILocalBus bus, ISourceControlConnectionSettingsSource settingsSource, IStorageRepository storage, IActivityLogger logger) : base(revisionComparer, storage, settingsSource, versionControlSystem, bus, logger) { }
public TfsClient(ISourceControlConnectionSettingsSource settings) { _settings = settings; _versionControl = GetVersionControl(_settings); }
public TfsWorkItemStoreClient(ISourceControlConnectionSettingsSource settings) { _settings = settings as TfsCurrentProfileToConnectionSettingsAdapter; _workItemStore = GetWorkItemStore(_settings); }
public VersionControlSystemListener(IVersionControlSystem versionControlSystem, IRevisionIdComparer revisionComparer, ILocalBus bus, IStorageRepository storage, ISourceControlConnectionSettingsSource settingsSource, IActivityLogger logger) : base(revisionComparer, storage, settingsSource, versionControlSystem, bus, logger) { }
public MercurialClient(ISourceControlConnectionSettingsSource settings) { _settings = settings; _repository = GetClient(settings); }
private Repository GetClient(ISourceControlConnectionSettingsSource settings) { var repositoryFolder = GetLocalRepository(settings); if (IsRepositoryUriChanged(repositoryFolder, settings)) { repositoryFolder.Delete(); repositoryFolder = MercurialRepositoryFolder.Create(settings.Uri); _folder.ReplaceWith(repositoryFolder); } Repository repository; try { if (repositoryFolder.Exists()) { string path = repositoryFolder.GetAbsolutePath(); repository = new Repository(path, new NonPersistentClientFactory()); repository.Pull(settings.Uri); } else { string path = repositoryFolder.GetAbsolutePath(); Directory.CreateDirectory(path); CloneCommand cloneCommand = new CloneCommand().WithUpdate(false); repository = new Repository(path, new NonPersistentClientFactory()); repository.Clone(settings.Uri, cloneCommand); } } catch (ArgumentNullException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, e); } catch (FileNotFoundException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, e); } catch (MercurialMissingException e) { throw new ArgumentException( MercurialCheckConnectionErrorResolver.MERCURIAL_IS_NOT_INSTALLED_ERROR_MESSAGE, e); } return repository; }
private VersionControlServer GetVersionControl(ISourceControlConnectionSettingsSource settings) { VersionControlServer versionControl = null; TfsConnectionParameters parameters = TfsConnectionHelper.GetTfsConnectionParameters(settings); switch (parameters.SegmentsCount) { case UriTfsProjectCollection: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); versionControl = _teamProjectCollection.GetService<VersionControlServer>(); _teamProjects = versionControl.GetAllTeamProjects(false); break; } case UriTfsTeamProject: { _teamProjectCollection = new TfsTeamProjectCollection(parameters.TfsCollectionUri, parameters.Credential); _teamProjectCollection.EnsureAuthenticated(); versionControl = _teamProjectCollection.GetService<VersionControlServer>(); _teamProjects = new TeamProject[] { versionControl.GetTeamProject(parameters.TeamProjectName) }; break; } default: throw new Exception("Wrong URI format."); } return versionControl; }
public MercurialClient(ISourceControlConnectionSettingsSource settings, IStorage<MercurialRepositoryFolder> folder) { _settings = settings; _folder = folder; _repository = GetClient(settings); }
public Subversion(ISourceControlConnectionSettingsSource settings, ICheckConnectionErrorResolver errorResolver, IActivityLogger logger, IDiffProcessor diffProcessor) : base(settings, errorResolver, logger) { _diffProcessor = diffProcessor; Connect(); }
public IVersionControlSystem Get(ISourceControlConnectionSettingsSource settings) { var vcsArgs = new ExplicitArguments(); vcsArgs.Set(settings); return ObjectFactory.GetInstance<IVersionControlSystem>(vcsArgs); }
private static bool IsRepositoryUriChanged(GitRepositoryFolder repositoryFolder, ISourceControlConnectionSettingsSource settings) { return (settings.Uri.ToLower() != repositoryFolder.RepoUri.ToLower()) && repositoryFolder.Exists(); }
public GitClient(ISourceControlConnectionSettingsSource settings, IStorage <GitRepositoryFolder> folder) { _settings = settings; _folder = folder; _git = GetClient(_settings); }
public GitClient(ISourceControlConnectionSettingsSource settings, IStorage<GitRepositoryFolder> folder) { _settings = settings; _folder = folder; _git = GetClient(_settings); }
private MercurialRepositoryFolder GetLocalRepository(ISourceControlConnectionSettingsSource settings) { if (_folder.Empty()) { var repositoryFolder = MercurialRepositoryFolder.Create(settings.Uri); _folder.ReplaceWith(repositoryFolder); return repositoryFolder; } return _folder.Single(); }
private TfsVersionControlSystem CreateTfs(ISourceControlConnectionSettingsSource settings) { return new TfsVersionControlSystem( settings, ObjectFactory.GetInstance<ICheckConnectionErrorResolver>(), ObjectFactory.GetInstance<IActivityLogger>(), ObjectFactory.GetInstance<IDiffProcessor>()); }
public GitClient(ISourceControlConnectionSettingsSource settings) { _settings = settings; _git = GetClient(settings); }
private static NGit.Api.Git GetClient(ISourceControlConnectionSettingsSource settings) { var repositoryFolder = GetLocalRepository(settings); if (IsRepositoryUriChanged(repositoryFolder, settings)) { repositoryFolder.Delete(); repositoryFolder = GitRepositoryFolder.Create(settings.Uri); var repoFolderStorage = Repository.Get<GitRepositoryFolder>(); repoFolderStorage.ReplaceWith(repositoryFolder); } NGit.Api.Git nativeGit; try { var credentialsProvider = new UsernamePasswordCredentialsProvider(settings.Login, settings.Password); if (repositoryFolder.Exists()) { nativeGit = NGit.Api.Git.Open(repositoryFolder.Value); } else { nativeGit = NGit.Api.Git.CloneRepository() .SetURI(settings.Uri) .SetNoCheckout(true) .SetCredentialsProvider(credentialsProvider) .SetDirectory(repositoryFolder.Value).Call(); } } catch (ArgumentNullException exception) { throw new ArgumentException( GitCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, exception); } return nativeGit; }
public TfsClient(ISourceControlConnectionSettingsSource settings) { _versionControl = GetVersionControl(settings); }
protected VersionControlSystemProcessorBase(IRevisionIdComparer revisionComparer, IStorageRepository storage, ISourceControlConnectionSettingsSource settingsSource, IVersionControlSystem versionControlSystem, ILocalBus bus, IActivityLogger logger) { RevisionComparer = revisionComparer; Storage = storage; VersionControlSystem = versionControlSystem; Bus = bus; Logger = logger; StartRevision = revisionComparer.ConvertToRevisionId(settingsSource.StartRevision); }
private static GitRepositoryFolder GetLocalRepository(ISourceControlConnectionSettingsSource settings) { var repoFolderStorage = Repository.Get<GitRepositoryFolder>(); if (repoFolderStorage.Empty()) { var repositoryFolder = GitRepositoryFolder.Create(settings.Uri); repoFolderStorage.ReplaceWith(repositoryFolder); return repositoryFolder; } return repoFolderStorage.Single(); }