/// <summary> /// Create new repository for project /// </summary> /// <param name="project">VBProject</param> public void CreateNewRepo(VBProject project) { try { EnableFileSystemWatcher = false; using (var gitCommand = new CommandInit(project)) { gitCommand.Execute(); if (gitCommand.Status == CommandStatus.Success) { RepositorySettings repo = new RepositorySettings(); repo.Name = project.GetRepoName(); repo.LocalPath = gitCommand.Repository.Info.WorkingDirectory; if (!_config.Repositories.Exists(r => (r.Name == repo.Name && r.LocalPath == repo.LocalPath && r.RemotePath == repo.RemotePath))) { _config.Repositories.Add(repo); _configService.SaveConfiguration(_config); } AddVBProject(project); } } } finally { EnableFileSystemWatcher = true; } }
/// <summary> /// Returns repository settings for project /// </summary> /// <param name="project">VBProject</param> /// <returns></returns> public RepositorySettings GetVBProjectRepository(VBProject project) { var projectRepoPath = GetVBProjectRepoPath(project); return(_config.Repositories.Find(r => (r.Name == project.GetRepoName() && NormalizePath(r.LocalPath) == NormalizePath(projectRepoPath) && Directory.Exists(r.LocalPath)))); }
/// <summary> /// Returns folder contains repository path for project /// </summary> /// <param name="project">VBProject</param> /// <returns></returns> public static string GetVBProjectRepoPath(VBProject project) { var fileName = project.GetFileName(); if (File.Exists(fileName)) { var pathVBAGit = Path.Combine(Path.GetDirectoryName(fileName), VBAGitUI.VBAGitFolder); return(Path.Combine(pathVBAGit, project.GetRepoName())); } else { return(null); } }