From b961646c95b859f841039465f8290682d28defa0 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Sat, 1 Apr 2017 02:08:12 -0400 Subject: [PATCH] Adds support for single files --- README.md | 2 -- src/extension.ts | 14 ++++---------- src/git/git.ts | 14 ++++++++++---- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 6635d4e..33767a7 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Provides Git CodeLens information (most recent commit, # of authors), on-demand - Provides a Git **blame history explorer** (peek style ui) to visualize the blame history of a file or block - Provides many configuration settings to allow the **customization** of almost all features -> NOTE: GitLens only works with opened folders (not single files). - > Add `"gitlens.insiders": true` to your settings to join the insiders channel and get access to upcoming features. ## Feature Previews diff --git a/src/extension.ts b/src/extension.ts index 3eb176c..4f0e3c2 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -33,14 +33,7 @@ export async function activate(context: ExtensionContext) { const gitlens = extensions.getExtension(ExtensionId); const gitlensVersion = gitlens.packageJSON.version; - // Workspace not using a folder. No access to git repo. - if (!workspace.rootPath) { - Logger.warn(`GitLens(v${gitlensVersion}) inactive: no rootPath`); - - return; - } - - const rootPath = workspace.rootPath.replace(/\\/g, '/'); + const rootPath = workspace.rootPath && workspace.rootPath.replace(/\\/g, '/'); Logger.log(`GitLens(v${gitlensVersion}) active: ${rootPath}`); const config = workspace.getConfiguration('').get('gitlens'); @@ -48,9 +41,8 @@ export async function activate(context: ExtensionContext) { configureCssCharacters(config.blame); - let repoPath: string; try { - repoPath = await Git.getRepoPath(rootPath, gitPath); + await Git.getGitPath(gitPath); } catch (ex) { Logger.error(ex, 'Extension.activate'); @@ -61,6 +53,8 @@ export async function activate(context: ExtensionContext) { return; } + const repoPath = await Git.getRepoPath(rootPath); + const gitVersion = Git.gitInfo().version; Logger.log(`Git version: ${gitVersion}`); diff --git a/src/git/git.ts b/src/git/git.ts index 9193a00..6247097 100644 --- a/src/git/git.ts +++ b/src/git/git.ts @@ -47,13 +47,19 @@ export class Git { return git; } - static async getRepoPath(cwd: string, gitPath?: string) { + static async getGitPath(gitPath?: string) { git = await findGitPath(gitPath); Logger.log(`Git found: ${git.version} @ ${git.path === 'git' ? 'PATH' : git.path}`); + return git; + } + + static async getRepoPath(cwd: string) { + if (!cwd) return ''; + + const data = await gitCommand(cwd, 'rev-parse', '--show-toplevel'); + if (!data) return ''; - let data = await gitCommand(cwd, 'rev-parse', '--show-toplevel'); - data = data.replace(/\r?\n|\r/g, '').replace(/\\/g, '/'); - return data; + return data.replace(/\r?\n|\r/g, '').replace(/\\/g, '/'); } static async getVersionedFile(repoPath: string, fileName: string, branchOrSha: string) {