sxyazi/yazi · error

Getting revision failed: {}

Error message

Getting revision failed: {}

What it means

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.

Source

Thrown at yazi-cli/src/package/git.rs:40

		Self::materialize(path).await
	}

	pub(super) async fn pull(path: &Path) -> Result<()> {
		Self::fetch(path).await?;
		Self::checkout(path, "origin/HEAD").await?;
		Ok(())
	}

	pub(super) async fn revision(path: &Path) -> Result<String> {
		let output = Command::new("git")
			.args(["rev-parse", "--short", "HEAD"])
			.current_dir(path)
			.output()
			.await
			.context("Failed to get current revision")?;

		if !output.status.success() {
			bail!("Getting revision failed: {}", output.status);
		}

		Ok(strip_trailing_newline(
			String::from_utf8(output.stdout).context("Failed to parse revision")?,
		))
	}

	async fn materialize(path: &Path) -> Result<()> {
		let path = fs::canonicalize(path).await.context("Failed to resolve Git repository")?;
		let output = Command::new("git")
			.args(["ls-files", "--stage", "-z"])
			.current_dir(&path)
			.output()
			.await
			.context("Failed to list Git files")?;
		if !output.status.success() {
			bail!("Listing Git files failed: {}", output.status);
		}

View on GitHub (pinned to 5f901b886b)

Solutions

  1. Confirm the path is an actual git repository with a valid HEAD.
  2. Run `git rev-parse --short HEAD` in that directory manually to see git's own error.
  3. Re-clone the package if the checkout is corrupted.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at yazi-cli/src/package/git.rs:40 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sxyazi/yazi@5f901b886b (2026-09-02). Data as JSON: /api/errors/691133547cbebc0c. Report an issue: GitHub.