Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Opening a submodule bump in the PR changes view fails: "Unable to read file ... that is actually a directory"

Offen
#8,981 0 Kommentare 1 Reaktion 2 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@alexr00 arbeitet bereits daran.

Seit 24.9.2026.

  • #8988 von @copilot-swe-agent — offen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

Description

When a PR bumps a git submodule (a 160000 gitlink tree entry), clicking that file in the PR's changed-files list fails to open, instead of showing a diff of the submodule commit pointer (old SHA → new SHA).

Error

The editor could not be opened due to an unexpected error. Please consult the log for more details.

From remoteexthost.log (Remote-SSH):

CodeExpectedError: cannot open vscode-remote://ssh-remote+<host>/<path>/<submodule-dir>. Detail: Unable to read file 'vscode-remote://ssh-remote+<host>/<path>/<submodule-dir>' (Error: Unable to read file 'vscode-remote://ssh-remote+<host>/<path>/<submodule-dir>' that is actually a directory)
    at THe.$tryOpenDocument (.../workbench.desktop.main.js:699:10890)

Root cause (from log inspection)

The extension calls vscode.open() on the submodule's literal filesystem path — the same as for a normal changed file — instead of constructing a diff/content-provider URI. Since a submodule tree entry has no blob content of its own (it's a directory containing a nested checkout), the remote file service stats it, finds a directory, and throws EISDIR.

Separately, in another context (opening the same kind of change from the PR description's "Changes" webview), the extension does construct a pr: scheme URI with baseCommit/headCommit/fileName, e.g.:

pr:/<path>?{"baseCommit":"<sha>","headCommit":"<sha>","isBase":false,"fileName":"<submodule-path>","prNumber":<n>,"status":3,"remoteName":"origin"}

but this fails too, with a different error:

CodeExpectedError: cannot open pr:/<path>?{...}. Detail: Could not show object.

So neither code path currently special-cases gitlink (160000) entries — one falls back to opening the raw directory, the other tries to fetch blob content for a commit pointer that has none.

Expected behavior

Clicking a submodule entry in the PR changes view should show a minimal diff of the submodule pointer, e.g.:

Subproject commit <old-sha>
Subproject commit <new-sha>

(similar to git diff output for a submodule, and to how github.com renders it in the PR's "Files changed" tab).

Environment

  • Extension: github.vscode-pull-request-github v0.167.2026092404
  • VS Code Remote - SSH
  • Linux remote host

Related issues

  • #1499 ("We couldn't find commit" when submodules exist) — same underlying gap, different surfaced error
  • #4688 (Add support for git submodules)
Vorherrschende Sprache
TypeScript
Sterne
2.6k
Forks
805
Ø Merge
1 T. 12 Std.
Gemergte PRs (30 T.)
39

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/vscode-pull-request-github

Alle Issues in microsoft/vscode-pull-request-github

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.