Git - add more logging to provideOriginalResource() (#246242)

This commit is contained in:
Ladislau Szomoru authored and GitHub committed 2025-04-10 14:20:04 -07:00
1 parent 6c7a430552
commit 41ecdd700c
2 files changed
+18 -4

No files matched your search

+1 -1
View File
@@ -117,7 +117,7 @@ async function createModel(context: ExtensionContext, logger: LogOutputChannel,
new GitBlameController(model),
new GitTimelineProvider(model, cc),
new GitEditSessionIdentityProvider(model),
new StagedResourceQuickDiffProvider(model),
new StagedResourceQuickDiffProvider(model, logger),
new TerminalShellExecutionManager(model, logger)
);
+17 -3
View File
@@ -1026,6 +1026,8 @@ export class Repository implements Disposable {
}
provideOriginalResource(uri: Uri): Uri | undefined {
this.logger.trace(`[Repository][provideOriginalResource] Resource: ${uri.toString()}`);
if (uri.scheme !== 'file') {
return;
}
@@ -1063,7 +1065,10 @@ export class Repository implements Disposable {
return undefined;
}
return toGitUri(uri, '', { replaceFileExtension: true });
const originalResource = toGitUri(uri, '', { replaceFileExtension: true });
this.logger.trace(`[Repository][provideOriginalResource] Original resource: ${originalResource.toString()}`);
return originalResource;
}
async getInputTemplate(): Promise<string> {
@@ -2802,23 +2807,32 @@ export class StagedResourceQuickDiffProvider implements QuickDiffProvider {
private _disposables: IDisposable[] = [];
constructor(private readonly _repositoryResolver: IRepositoryResolver) {
constructor(
private readonly _repositoryResolver: IRepositoryResolver,
private readonly logger: LogOutputChannel
) {
this._disposables.push(window.registerQuickDiffProvider({ scheme: 'file' }, this, l10n.t('Git local changes (working tree + index)')));
}
provideOriginalResource(uri: Uri): Uri | undefined {
this.logger.trace(`[StagedResourceQuickDiffProvider][provideOriginalResource] Resource: ${uri.toString()}`);
// Ignore resources outside a repository
const repository = this._repositoryResolver.getRepository(uri);
if (!repository) {
this.logger.trace(`[StagedResourceQuickDiffProvider][provideOriginalResource] Resource is not part of the repository: ${uri.toString()}`);
return undefined;
}
// Ignore resources that are not in the index group
if (!repository.indexGroup.resourceStates.some(r => pathEquals(r.resourceUri.fsPath, uri.fsPath))) {
this.logger.trace(`[StagedResourceQuickDiffProvider][provideOriginalResource] Resource is not part of a index group: ${uri.toString()}`);
return undefined;
}
return toGitUri(uri, 'HEAD', { replaceFileExtension: true });
const originalResource = toGitUri(uri, 'HEAD', { replaceFileExtension: true });
this.logger.trace(`[StagedResourceQuickDiffProvider][provideOriginalResource] Original resource: ${originalResource.toString()}`);
return originalResource;
}
dispose() {