@gitkraken/core-gitlens 0.5.113 → 0.5.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -1
- package/dist/git/cache.d.ts +4 -0
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +33 -0
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +10 -0
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/context.js.map +1 -1
- package/dist/git/errors.d.ts +6 -3
- package/dist/git/errors.d.ts.map +1 -1
- package/dist/git/errors.js +9 -1
- package/dist/git/errors.js.map +1 -1
- package/dist/git/features.d.ts +1 -1
- package/dist/git/features.d.ts.map +1 -1
- package/dist/git/features.js +38 -0
- package/dist/git/features.js.map +1 -1
- package/dist/git/gitHealth.d.ts +153 -0
- package/dist/git/gitHealth.d.ts.map +1 -0
- package/dist/git/gitHealth.js +353 -0
- package/dist/git/gitHealth.js.map +1 -0
- package/dist/git/models/search.d.ts +6 -3
- package/dist/git/models/search.d.ts.map +1 -1
- package/dist/git/models/search.js +5 -1
- package/dist/git/models/search.js.map +1 -1
- package/dist/git/parsers/diffParser.d.ts +8 -2
- package/dist/git/parsers/diffParser.d.ts.map +1 -1
- package/dist/git/parsers/diffParser.js +27 -4
- package/dist/git/parsers/diffParser.js.map +1 -1
- package/dist/git/providers/config.d.ts +36 -3
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/graph.d.ts +9 -0
- package/dist/git/providers/graph.d.ts.map +1 -1
- package/dist/git/providers/maintenance.d.ts +222 -0
- package/dist/git/providers/maintenance.d.ts.map +1 -0
- package/dist/git/providers/maintenance.js +20 -0
- package/dist/git/providers/maintenance.js.map +1 -0
- package/dist/git/providers/operations.d.ts +10 -0
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/providers/pausedOperations.d.ts +3 -0
- package/dist/git/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git/providers/provider.d.ts +2 -0
- package/dist/git/providers/provider.d.ts.map +1 -1
- package/dist/git/providers/tags.d.ts +3 -0
- package/dist/git/providers/tags.d.ts.map +1 -1
- package/dist/git/repositoryService.d.ts +1 -0
- package/dist/git/repositoryService.d.ts.map +1 -1
- package/dist/git/repositoryService.js.map +1 -1
- package/dist/git/run.types.d.ts +8 -0
- package/dist/git/run.types.d.ts.map +1 -1
- package/dist/git/service.js +3 -0
- package/dist/git/service.js.map +1 -1
- package/dist/git/utils/search.utils.d.ts.map +1 -1
- package/dist/git/utils/search.utils.js +112 -5
- package/dist/git/utils/search.utils.js.map +1 -1
- package/dist/git/watching/watchService.d.ts +3 -0
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +8 -0
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git-cli/cliGitProvider.d.ts +11 -0
- package/dist/git-cli/cliGitProvider.d.ts.map +1 -1
- package/dist/git-cli/cliGitProvider.js +12 -0
- package/dist/git-cli/cliGitProvider.js.map +1 -1
- package/dist/git-cli/exec/git.d.ts +23 -1
- package/dist/git-cli/exec/git.d.ts.map +1 -1
- package/dist/git-cli/exec/git.js +83 -8
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/exec/gitQueue.d.ts +2 -0
- package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
- package/dist/git-cli/exec/gitQueue.js +19 -17
- package/dist/git-cli/exec/gitQueue.js.map +1 -1
- package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/logParser.js +4 -1
- package/dist/git-cli/parsers/logParser.js.map +1 -1
- package/dist/git-cli/providers/blame.d.ts.map +1 -1
- package/dist/git-cli/providers/blame.js +4 -7
- package/dist/git-cli/providers/blame.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +13 -3
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +34 -3
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +27 -0
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js +31 -6
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +8 -0
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +85 -6
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/maintenance.d.ts +306 -0
- package/dist/git-cli/providers/maintenance.d.ts.map +1 -0
- package/dist/git-cli/providers/maintenance.js +2129 -0
- package/dist/git-cli/providers/maintenance.js.map +1 -0
- package/dist/git-cli/providers/operations.d.ts +1 -0
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js +8 -0
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +1 -0
- package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git-cli/providers/pausedOperations.js +1 -1
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/tags.d.ts +3 -0
- package/dist/git-cli/providers/tags.d.ts.map +1 -1
- package/dist/git-cli/providers/tags.js +23 -1
- package/dist/git-cli/providers/tags.js.map +1 -1
- package/dist/plus/agents/agentCapabilities.d.ts +77 -0
- package/dist/plus/agents/agentCapabilities.d.ts.map +1 -0
- package/dist/plus/agents/agentCapabilities.js +197 -0
- package/dist/plus/agents/agentCapabilities.js.map +1 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +77 -13
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.js +263 -55
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
- package/dist/plus/agents/providers/{claudeCodeProvider.d.ts → gkAgentProvider.d.ts} +52 -19
- package/dist/plus/agents/providers/gkAgentProvider.d.ts.map +1 -0
- package/dist/plus/agents/providers/{claudeCodeProvider.js → gkAgentProvider.js} +935 -262
- package/dist/plus/agents/providers/gkAgentProvider.js.map +1 -0
- package/dist/plus/agents/types.d.ts +113 -35
- package/dist/plus/agents/types.d.ts.map +1 -1
- package/dist/plus/agents/types.js +7 -4
- package/dist/plus/agents/types.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
- package/dist/plus/ai/prompts.d.ts +4 -0
- package/dist/plus/ai/prompts.d.ts.map +1 -1
- package/dist/plus/ai/prompts.js +59 -4
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +44 -1
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +355 -62
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.d.ts +13 -0
- package/dist/plus/git-github/api/issueSearchQuery.d.ts.map +1 -1
- package/dist/plus/git-github/api/issueSearchQuery.js +41 -0
- package/dist/plus/git-github/api/issueSearchQuery.js.map +1 -1
- package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/blame.js +2 -1
- package/dist/plus/git-github/providers/github/blame.js.map +1 -1
- package/dist/plus/integrations/collectionMetadata.d.ts +2 -0
- package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -1
- package/dist/plus/integrations/collectionMetadata.js +17 -1
- package/dist/plus/integrations/collectionMetadata.js.map +1 -1
- package/dist/plus/integrations/context.d.ts +4 -1
- package/dist/plus/integrations/context.d.ts.map +1 -1
- package/dist/plus/integrations/index.d.ts +1 -0
- package/dist/plus/integrations/index.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +20 -1
- package/dist/plus/integrations/integrationService.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.js +12 -4
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/manager.d.ts +48 -0
- package/dist/plus/integrations/manager.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +53 -26
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +123 -47
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +10 -1
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js +52 -19
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/issueCache.d.ts +16 -0
- package/dist/plus/integrations/models/issueCache.d.ts.map +1 -0
- package/dist/plus/integrations/models/issueCache.js +9 -0
- package/dist/plus/integrations/models/issueCache.js.map +1 -0
- package/dist/plus/integrations/models/issueReads.d.ts +13 -0
- package/dist/plus/integrations/models/issueReads.d.ts.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.d.ts +11 -13
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/issuesIntegration.js +15 -1
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.d.ts +3 -5
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azureDevOps.js +9 -8
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.d.ts +3 -5
- package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket-server.js +2 -2
- package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.d.ts +3 -5
- package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket.js +2 -1
- package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
- package/dist/plus/integrations/providers/github.d.ts +12 -5
- package/dist/plus/integrations/providers/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github.js +10 -3
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts +3 -5
- package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab.js +2 -2
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/jira.d.ts +3 -7
- package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
- package/dist/plus/integrations/providers/jira.js +35 -22
- package/dist/plus/integrations/providers/jira.js.map +1 -1
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +7 -0
- package/dist/plus/integrations/providers/jiraIssueByKey.d.ts.map +1 -0
- package/dist/plus/integrations/providers/jiraIssueByKey.js +102 -0
- package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -0
- package/dist/plus/integrations/providers/linear.d.ts +3 -7
- package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
- package/dist/plus/integrations/providers/linear.js +23 -22
- package/dist/plus/integrations/providers/linear.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +3 -1
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js +10 -4
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/providers/providerErrors.d.ts +7 -0
- package/dist/plus/integrations/providers/providerErrors.d.ts.map +1 -0
- package/dist/plus/integrations/providers/providerErrors.js +91 -0
- package/dist/plus/integrations/providers/providerErrors.js.map +1 -0
- package/dist/plus/integrations/providers/providersApi.d.ts +3 -2
- package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
- package/dist/plus/integrations/providers/providersApi.js +18 -52
- package/dist/plus/integrations/providers/providersApi.js.map +1 -1
- package/dist/plus/integrations/providers/trello.d.ts +2 -7
- package/dist/plus/integrations/providers/trello.d.ts.map +1 -1
- package/dist/plus/integrations/providers/trello.js +3 -1
- package/dist/plus/integrations/providers/trello.js.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts +2 -0
- package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -1
- package/dist/plus/integrations/providers/utils/providerPaging.js +12 -7
- package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts +47 -10
- package/dist/plus/integrations/reads/broaden.d.ts.map +1 -1
- package/dist/plus/integrations/reads/broaden.js +144 -33
- package/dist/plus/integrations/reads/broaden.js.map +1 -1
- package/dist/plus/integrations/reads/filters.d.ts +18 -0
- package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
- package/dist/plus/integrations/reads/filters.js +37 -1
- package/dist/plus/integrations/reads/filters.js.map +1 -1
- package/dist/plus/integrations/reads/issueBatch.d.ts +51 -0
- package/dist/plus/integrations/reads/issueBatch.d.ts.map +1 -0
- package/dist/plus/integrations/reads/issueBatch.js +91 -0
- package/dist/plus/integrations/reads/issueBatch.js.map +1 -0
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.js +23 -17
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
- package/dist/plus/integrations/reads/sweeps.d.ts.map +1 -1
- package/dist/plus/integrations/reads/sweeps.js +5 -3
- package/dist/plus/integrations/reads/sweeps.js.map +1 -1
- package/dist/plus/integrations/reads/trackerIssue.d.ts +21 -0
- package/dist/plus/integrations/reads/trackerIssue.d.ts.map +1 -0
- package/dist/plus/integrations/reads/trackerIssue.js +51 -0
- package/dist/plus/integrations/reads/trackerIssue.js.map +1 -0
- package/dist/plus/integrations/reads/warnings.d.ts +2 -15
- package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
- package/dist/plus/integrations/reads/warnings.js +19 -1
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/dist/plus/integrations/results.d.ts +4 -20
- package/dist/plus/integrations/results.d.ts.map +1 -1
- package/dist/plus/integrations/results.js.map +1 -1
- package/dist/utils/promise.d.ts +2 -0
- package/dist/utils/promise.d.ts.map +1 -1
- package/dist/utils/promise.js +11 -0
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/promiseCache.d.ts +19 -0
- package/dist/utils/promiseCache.d.ts.map +1 -1
- package/dist/utils/promiseCache.js +30 -0
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/resourceUsage.d.ts +5 -0
- package/dist/utils/resourceUsage.d.ts.map +1 -0
- package/dist/utils/resourceUsage.js +2 -0
- package/dist/utils/resourceUsage.js.map +1 -0
- package/dist/utils/string.d.ts +12 -0
- package/dist/utils/string.d.ts.map +1 -1
- package/dist/utils/string.js +36 -1
- package/dist/utils/string.js.map +1 -1
- package/docs/integrations.md +48 -33
- package/docs/kepler-read-api-parity.md +25 -4
- package/package.json +12 -4
- package/src/git/cache.ts +36 -0
- package/src/git/context.ts +11 -0
- package/src/git/errors.ts +13 -1
- package/src/git/features.ts +51 -0
- package/src/git/gitHealth.ts +522 -0
- package/src/git/models/search.ts +19 -4
- package/src/git/parsers/diffParser.ts +27 -4
- package/src/git/providers/config.ts +42 -1
- package/src/git/providers/graph.ts +12 -0
- package/src/git/providers/maintenance.ts +224 -0
- package/src/git/providers/operations.ts +10 -0
- package/src/git/providers/pausedOperations.ts +3 -0
- package/src/git/providers/provider.ts +2 -0
- package/src/git/providers/tags.ts +1 -0
- package/src/git/repositoryService.ts +1 -0
- package/src/git/run.types.ts +8 -0
- package/src/git/service.ts +3 -0
- package/src/git/utils/search.utils.ts +129 -5
- package/src/git/watching/watchService.ts +10 -0
- package/src/git-cli/cliGitProvider.ts +25 -0
- package/src/git-cli/exec/git.ts +120 -6
- package/src/git-cli/exec/gitQueue.ts +19 -17
- package/src/git-cli/parsers/logParser.ts +4 -1
- package/src/git-cli/providers/blame.ts +3 -8
- package/src/git-cli/providers/branches.ts +28 -8
- package/src/git-cli/providers/commits.ts +34 -2
- package/src/git-cli/providers/config.ts +38 -6
- package/src/git-cli/providers/graph.ts +107 -7
- package/src/git-cli/providers/maintenance.ts +2599 -0
- package/src/git-cli/providers/operations.ts +11 -0
- package/src/git-cli/providers/pausedOperations.ts +7 -2
- package/src/git-cli/providers/tags.ts +36 -1
- package/src/plus/agents/agentCapabilities.ts +286 -0
- package/src/plus/agents/providers/claudeCodeTranscript.ts +313 -58
- package/src/plus/agents/providers/{claudeCodeProvider.ts → gkAgentProvider.ts} +1123 -277
- package/src/plus/agents/types.ts +137 -40
- package/src/plus/ai/models/promptTemplates.ts +1 -1
- package/src/plus/ai/prompts.ts +62 -4
- package/src/plus/git-github/api/github.ts +404 -82
- package/src/plus/git-github/api/issueSearchQuery.ts +49 -1
- package/src/plus/git-github/providers/github/blame.ts +2 -1
- package/src/plus/integrations/collectionMetadata.ts +23 -1
- package/src/plus/integrations/context.ts +1 -1
- package/src/plus/integrations/index.ts +1 -0
- package/src/plus/integrations/integrationService.ts +29 -4
- package/src/plus/integrations/manager.ts +48 -0
- package/src/plus/integrations/models/gitHostIntegration.ts +165 -129
- package/src/plus/integrations/models/integration.ts +57 -22
- package/src/plus/integrations/models/issueCache.ts +29 -0
- package/src/plus/integrations/models/issueReads.ts +15 -0
- package/src/plus/integrations/models/issuesIntegration.ts +38 -8
- package/src/plus/integrations/providers/azureDevOps.ts +16 -13
- package/src/plus/integrations/providers/bitbucket-server.ts +4 -6
- package/src/plus/integrations/providers/bitbucket.ts +3 -4
- package/src/plus/integrations/providers/github.ts +23 -7
- package/src/plus/integrations/providers/gitlab.ts +4 -6
- package/src/plus/integrations/providers/jira.ts +52 -26
- package/src/plus/integrations/providers/jiraIssueByKey.ts +155 -0
- package/src/plus/integrations/providers/linear.ts +38 -25
- package/src/plus/integrations/providers/models.ts +17 -5
- package/src/plus/integrations/providers/providerErrors.ts +115 -0
- package/src/plus/integrations/providers/providersApi.ts +26 -68
- package/src/plus/integrations/providers/trello.ts +5 -4
- package/src/plus/integrations/providers/utils/providerPaging.ts +14 -7
- package/src/plus/integrations/reads/broaden.ts +282 -70
- package/src/plus/integrations/reads/filters.ts +39 -1
- package/src/plus/integrations/reads/issueBatch.ts +197 -0
- package/src/plus/integrations/reads/issueTracker.ts +26 -24
- package/src/plus/integrations/reads/sweeps.ts +19 -12
- package/src/plus/integrations/reads/trackerIssue.ts +105 -0
- package/src/plus/integrations/reads/warnings.ts +23 -17
- package/src/plus/integrations/results.ts +4 -20
- package/src/utils/promise.ts +15 -0
- package/src/utils/promiseCache.ts +43 -0
- package/src/utils/resourceUsage.ts +5 -0
- package/src/utils/string.ts +38 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +0 -1
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +0 -1
|
@@ -57,7 +57,7 @@ import { getScopedLogger } from '../../utils/logger.scoped.js';
|
|
|
57
57
|
import { getSettledValue } from '../../utils/promise.js';
|
|
58
58
|
import type { CliGitProviderInternal } from '../cliGitProvider.js';
|
|
59
59
|
import type { Git } from '../exec/git.js';
|
|
60
|
-
import { gitConfigsLog } from '../exec/git.js';
|
|
60
|
+
import { classifySearchError, gitConfigsLog } from '../exec/git.js';
|
|
61
61
|
import {
|
|
62
62
|
getGraphParser,
|
|
63
63
|
getShaAndDatesLogParser,
|
|
@@ -307,7 +307,24 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
307
307
|
return session;
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
-
@debug(
|
|
310
|
+
@debug({
|
|
311
|
+
// The seed params (`incrementalSeed`, `reachabilitySeed`, `rowsStatsSeed`) hold cached rows/stats
|
|
312
|
+
// for potentially thousands of commits — logging them via the default formatting would dump
|
|
313
|
+
// megabytes per call, so only log their presence (and key summary fields).
|
|
314
|
+
args: (repoPath, rev, options) => ({
|
|
315
|
+
repoPath: repoPath,
|
|
316
|
+
rev: rev,
|
|
317
|
+
limit: options?.limit,
|
|
318
|
+
stats: options?.include?.stats,
|
|
319
|
+
incrementalSeed: options?.incrementalSeed && {
|
|
320
|
+
rows: options.incrementalSeed.rows.length,
|
|
321
|
+
tips: options.incrementalSeed.tips.size,
|
|
322
|
+
ordering: options.incrementalSeed.ordering,
|
|
323
|
+
},
|
|
324
|
+
reachabilitySeed: options?.reachabilitySeed != null,
|
|
325
|
+
rowsStatsSeed: options?.rowsStatsSeed != null,
|
|
326
|
+
}),
|
|
327
|
+
})
|
|
311
328
|
async getGraph(
|
|
312
329
|
repoPath: string,
|
|
313
330
|
rev: string | undefined,
|
|
@@ -1591,6 +1608,7 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1591
1608
|
options.onIncrementalResult?.({ path: 'fallback', reason: 'error' });
|
|
1592
1609
|
}
|
|
1593
1610
|
if (fast != null) {
|
|
1611
|
+
void this.provider.maintenance?.request(repoPath, 'commit-graph');
|
|
1594
1612
|
return fast;
|
|
1595
1613
|
}
|
|
1596
1614
|
|
|
@@ -1620,6 +1638,11 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1620
1638
|
graph = await getCommitsForGraphCore.call(this, defaultLimit, selectSha, undefined, cancellation);
|
|
1621
1639
|
}
|
|
1622
1640
|
|
|
1641
|
+
// After the first load, hint the maintenance service to backfill the commit-graph file (background)
|
|
1642
|
+
// so the NEXT open's ordered walk starts emitting rows immediately instead of sorting the whole
|
|
1643
|
+
// history first. Fire-and-forget — the service's demand throttle decides whether it actually runs.
|
|
1644
|
+
void this.provider.maintenance?.request(repoPath, 'commit-graph');
|
|
1645
|
+
|
|
1623
1646
|
return graph;
|
|
1624
1647
|
}
|
|
1625
1648
|
|
|
@@ -1661,6 +1684,55 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1661
1684
|
return yield* this.searchGraphCore(repoPath, cursor.search, cursor, existingResults, options, cancellation);
|
|
1662
1685
|
}
|
|
1663
1686
|
|
|
1687
|
+
/**
|
|
1688
|
+
* Cheap commit count for `search`, no result materialization — used to probe a candidate relaxed
|
|
1689
|
+
* query before offering it. Never throws: any failure (including a sha-only `commit:` query, which
|
|
1690
|
+
* can't be meaningfully "relaxed") returns 0, since this is a probe, not a search.
|
|
1691
|
+
*/
|
|
1692
|
+
async countSearchResults(
|
|
1693
|
+
repoPath: string,
|
|
1694
|
+
search: SearchQuery,
|
|
1695
|
+
options?: { maxCount?: number },
|
|
1696
|
+
cancellation?: AbortSignal,
|
|
1697
|
+
): Promise<number> {
|
|
1698
|
+
try {
|
|
1699
|
+
search = { matchAll: false, matchCase: false, matchRegex: true, matchWholeWord: false, ...search };
|
|
1700
|
+
|
|
1701
|
+
const currentUser = search.query.includes('@me')
|
|
1702
|
+
? await this.provider.config.getCurrentUser(repoPath)
|
|
1703
|
+
: undefined;
|
|
1704
|
+
|
|
1705
|
+
const { args: searchArgs, files, shas, filters } = parseSearchQueryGitCommand(search, currentUser);
|
|
1706
|
+
// An exact sha lookup can't be relaxed by dropping filter groups — nothing to count.
|
|
1707
|
+
if (shas?.size) return 0;
|
|
1708
|
+
|
|
1709
|
+
// `--merges` matches stash commits too (they have 2-3 parents). `rev-list` gets no stdin, so the
|
|
1710
|
+
// only stash that can leak in here is refs/stash's tip via `--all` -- exclude it up front
|
|
1711
|
+
if (filters.type === 'merge') {
|
|
1712
|
+
const allIndex = searchArgs.indexOf('--all');
|
|
1713
|
+
if (allIndex !== -1) {
|
|
1714
|
+
searchArgs.splice(allIndex, 0, '--exclude=refs/stash');
|
|
1715
|
+
}
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
const maxCount = options?.maxCount ?? 1000;
|
|
1719
|
+
const result = await this.git.run(
|
|
1720
|
+
{ cwd: repoPath, configs: gitConfigsLog, cancellation: cancellation, errors: 'ignore' },
|
|
1721
|
+
'rev-list',
|
|
1722
|
+
'--count',
|
|
1723
|
+
`--max-count=${maxCount}`,
|
|
1724
|
+
...searchArgs,
|
|
1725
|
+
'--',
|
|
1726
|
+
...files,
|
|
1727
|
+
);
|
|
1728
|
+
|
|
1729
|
+
const count = Number.parseInt(result.stdout.trim(), 10);
|
|
1730
|
+
return Number.isFinite(count) ? count : 0;
|
|
1731
|
+
} catch {
|
|
1732
|
+
return 0;
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1664
1736
|
private async *searchGraphCore(
|
|
1665
1737
|
repoPath: string,
|
|
1666
1738
|
search: SearchQuery,
|
|
@@ -1680,6 +1752,11 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1680
1752
|
const { args: searchArgs, files, shas, filters } = parseSearchQueryGitCommand(search, currentUser);
|
|
1681
1753
|
|
|
1682
1754
|
const tipsOnly = filters.type === 'tip';
|
|
1755
|
+
// Stash commits have 2-3 parents, so `--merges` matches them; excluded from results below.
|
|
1756
|
+
// Derived from the args git actually runs rather than `filters.type`, since a multi-value
|
|
1757
|
+
// `type:` query (e.g. `type:merge type:tip`) leaves `--merges` in the args while
|
|
1758
|
+
// `filters.type` reflects only the last value parsed
|
|
1759
|
+
const mergesOnly = searchArgs.includes('--merges');
|
|
1683
1760
|
const parser = filters.files
|
|
1684
1761
|
? getShaAndDatesWithFilesLogParser(tipsOnly)
|
|
1685
1762
|
: getShaAndDatesLogParser(tipsOnly);
|
|
@@ -1733,9 +1810,25 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1733
1810
|
} else if (!filters.refs) {
|
|
1734
1811
|
// Don't include stashes when using ref: filter, as they would add unrelated commits
|
|
1735
1812
|
// There *HAS* to be a better way to get git log to return stashes, but this is the best we've found
|
|
1736
|
-
|
|
1813
|
+
const converted = convertStashesToStdin(
|
|
1737
1814
|
await this.provider.stash?.getStash(repoPath, { includeFiles: false }, cancellation),
|
|
1738
|
-
)
|
|
1815
|
+
);
|
|
1816
|
+
stashes = converted.stashes;
|
|
1817
|
+
remappedIds = converted.remappedIds;
|
|
1818
|
+
// `--all` already surfaces refs/stash's tip on its own, so when merges-only there's no need
|
|
1819
|
+
// to walk the rest of the stash stack via stdin -- the results filter below still excludes
|
|
1820
|
+
// any stash sha that slips through via refs/stash
|
|
1821
|
+
stdin = mergesOnly ? undefined : converted.stdin;
|
|
1822
|
+
} else if (mergesOnly) {
|
|
1823
|
+
// `ref:` skips walking stashes into the results (they're unrelated to the ref), but a
|
|
1824
|
+
// stash's tip can still leak in via `--merges` if the ref reaches refs/stash -- fetch
|
|
1825
|
+
// stashes here purely so the results filter below can exclude them, without widening
|
|
1826
|
+
// the walk via stdin
|
|
1827
|
+
const converted = convertStashesToStdin(
|
|
1828
|
+
await this.provider.stash?.getStash(repoPath, { includeFiles: false }, cancellation),
|
|
1829
|
+
);
|
|
1830
|
+
stashes = converted.stashes;
|
|
1831
|
+
remappedIds = converted.remappedIds;
|
|
1739
1832
|
} else {
|
|
1740
1833
|
remappedIds = new Map();
|
|
1741
1834
|
}
|
|
@@ -1819,7 +1912,12 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1819
1912
|
}
|
|
1820
1913
|
|
|
1821
1914
|
sha = remappedIds.get(r.sha) ?? r.sha;
|
|
1822
|
-
if (
|
|
1915
|
+
if (
|
|
1916
|
+
results.has(sha) ||
|
|
1917
|
+
(stashesOnly && !stashes?.has(sha)) ||
|
|
1918
|
+
(mergesOnly && stashes?.has(sha)) ||
|
|
1919
|
+
(tipsOnly && !r.tips)
|
|
1920
|
+
) {
|
|
1823
1921
|
continue;
|
|
1824
1922
|
}
|
|
1825
1923
|
|
|
@@ -1933,12 +2031,14 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
|
|
|
1933
2031
|
};
|
|
1934
2032
|
}
|
|
1935
2033
|
|
|
1936
|
-
|
|
2034
|
+
const classified = classifySearchError(ex);
|
|
2035
|
+
throw new GitSearchError(ex, classified?.reason, classified?.detail);
|
|
1937
2036
|
}
|
|
1938
2037
|
} catch (ex) {
|
|
1939
2038
|
if (ex instanceof GitSearchError) throw ex;
|
|
1940
2039
|
|
|
1941
|
-
|
|
2040
|
+
const classified = classifySearchError(ex);
|
|
2041
|
+
throw new GitSearchError(ex, classified?.reason, classified?.detail);
|
|
1942
2042
|
}
|
|
1943
2043
|
}
|
|
1944
2044
|
}
|