{"record":{"id":"691133547cbebc0c","repo":"sxyazi/yazi","slug":"getting-revision-failed","errorCode":null,"errorMessage":"Getting revision failed: {}","messagePattern":"Getting revision failed: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"yazi-cli/src/package/git.rs","lineNumber":40,"sourceCode":"\t\tSelf::materialize(path).await\n\t}\n\n\tpub(super) async fn pull(path: &Path) -> Result<()> {\n\t\tSelf::fetch(path).await?;\n\t\tSelf::checkout(path, \"origin/HEAD\").await?;\n\t\tOk(())\n\t}\n\n\tpub(super) async fn revision(path: &Path) -> Result<String> {\n\t\tlet output = Command::new(\"git\")\n\t\t\t.args([\"rev-parse\", \"--short\", \"HEAD\"])\n\t\t\t.current_dir(path)\n\t\t\t.output()\n\t\t\t.await\n\t\t\t.context(\"Failed to get current revision\")?;\n\n\t\tif !output.status.success() {\n\t\t\tbail!(\"Getting revision failed: {}\", output.status);\n\t\t}\n\n\t\tOk(strip_trailing_newline(\n\t\t\tString::from_utf8(output.stdout).context(\"Failed to parse revision\")?,\n\t\t))\n\t}\n\n\tasync fn materialize(path: &Path) -> Result<()> {\n\t\tlet path = fs::canonicalize(path).await.context(\"Failed to resolve Git repository\")?;\n\t\tlet output = Command::new(\"git\")\n\t\t\t.args([\"ls-files\", \"--stage\", \"-z\"])\n\t\t\t.current_dir(&path)\n\t\t\t.output()\n\t\t\t.await\n\t\t\t.context(\"Failed to list Git files\")?;\n\t\tif !output.status.success() {\n\t\t\tbail!(\"Listing Git files failed: {}\", output.status);\n\t\t}","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/sxyazi/yazi/blob/5f901b886b14de1f17460b6e52e9de5d67f8aba9/yazi-cli/src/package/git.rs#L22-L58","documentation":"The `git rev-parse --short HEAD` subprocess run inside the package directory exited with a non-zero status. Spawning succeeded (a spawn failure produces the `Failed to get current revision` context error instead), so the fault is git itself rejecting the query — typically because the path is not a git repository or HEAD is unreadable.","triggerScenarios":"Thrown at yazi-cli/src/package/git.rs:40 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the path is an actual git repository with a valid HEAD.","Run `git rev-parse --short HEAD` in that directory manually to see git's own error.","Re-clone the package if the checkout is corrupted."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5f901b886b14de1f17460b6e52e9de5d67f8aba9","analyzedAt":"2026-09-02T18:38:25.566Z","contentChangedAt":"2026-09-02T18:38:25.566Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}