diff --git a/src/vs/workbench/contrib/scm/browser/activity.ts b/src/vs/workbench/contrib/scm/browser/activity.ts index 17781472621a6f17300dcd0ce98cd5d76666342b..6de2a1021748fc85e94af3cafa2a66f6d38eadc2 100644 --- a/src/vs/workbench/contrib/scm/browser/activity.ts +++ b/src/vs/workbench/contrib/scm/browser/activity.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { localize } from 'vs/nls'; -import { basename, relativePath } from 'vs/base/common/resources'; +import { basename } from 'vs/base/common/resources'; import { IDisposable, dispose, Disposable, DisposableStore, combinedDisposable, MutableDisposable } from 'vs/base/common/lifecycle'; import { Event } from 'vs/base/common/event'; import { VIEW_PANE_ID, ISCMService, ISCMRepository } from 'vs/workbench/contrib/scm/common/scm'; @@ -15,6 +15,7 @@ import { IStatusbarService, StatusbarAlignment as MainThreadStatusBarAlignment } import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { EditorResourceAccessor } from 'vs/workbench/common/editor'; +import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; function getCount(repository: ISCMRepository): number { if (typeof repository.provider.count === 'number') { @@ -39,7 +40,8 @@ export class SCMStatusController implements IWorkbenchContribution { @IContextKeyService readonly contextKeyService: IContextKeyService, @IActivityService private readonly activityService: IActivityService, @IEditorService private readonly editorService: IEditorService, - @IConfigurationService private readonly configurationService: IConfigurationService + @IConfigurationService private readonly configurationService: IConfigurationService, + @IUriIdentityService private readonly uriIdentityService: IUriIdentityService ) { this.focusedProviderContextKey = contextKeyService.createKey('scmProvider', undefined); this.scmService.onDidAddRepository(this.onDidAddRepository, this, this.disposables); @@ -73,7 +75,7 @@ export class SCMStatusController implements IWorkbenchContribution { continue; } - const path = relativePath(root, resource); + const path = this.uriIdentityService.extUri.relativePath(root, resource); if (path && !/^\.\./.test(path) && path.length < bestMatchLength) { bestRepository = repository; diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts index 0918ece61470073a5516011dd1c1df73004c2818..d89a50e6e06af62be9a07f77b13cce6b9bbe7f4d 100644 --- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts +++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts @@ -5,7 +5,7 @@ import 'vs/css!./media/scm'; import { Event, Emitter } from 'vs/base/common/event'; -import { basename, dirname, isEqual } from 'vs/base/common/resources'; +import { basename, dirname } from 'vs/base/common/resources'; import { IDisposable, Disposable, DisposableStore, combinedDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle'; import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPaneContainer'; import { append, $, Dimension } from 'vs/base/browser/dom'; @@ -76,6 +76,7 @@ import { AnchorAlignment } from 'vs/base/browser/ui/contextview/contextview'; import { RepositoryRenderer } from 'vs/workbench/contrib/scm/browser/scmRepositoryRenderer'; import { IPosition } from 'vs/editor/common/core/position'; import { ColorScheme } from 'vs/platform/theme/common/theme'; +import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; type TreeElement = ISCMRepository | ISCMInput | ISCMResourceGroup | IResourceNode | ISCMResource; @@ -772,7 +773,8 @@ class ViewModel { @IInstantiationService protected instantiationService: IInstantiationService, @IEditorService protected editorService: IEditorService, @IConfigurationService protected configurationService: IConfigurationService, - @ISCMViewService private scmViewService: ISCMViewService + @ISCMViewService private scmViewService: ISCMViewService, + @IUriIdentityService private uriIdentityService: IUriIdentityService ) { this.onDidChangeRepositoryCollapseState = Event.any( this._onDidChangeRepositoryCollapseState.event, @@ -972,8 +974,8 @@ class ViewModel { for (let j = item.groupItems.length - 1; j >= 0; j--) { const groupItem = item.groupItems[j]; const resource = this.mode === ViewModelMode.Tree - ? groupItem.tree.getNode(uri)?.element - : groupItem.resources.find(r => isEqual(r.sourceUri, uri)); + ? groupItem.tree.getNode(uri)?.element // TODO@Joao URI identity? + : groupItem.resources.find(r => this.uriIdentityService.extUri.isEqual(r.sourceUri, uri)); if (resource) { this.tree.reveal(resource);