jdx/mise · error
listing snapshot files requires git
Error message
listing snapshot files requires git
What it means
Listing the files inside a checkpoint's content snapshot requires git (`repo.ls_tree`). If the checkpoint has a snapshot tree reference but the history store has no git repository backing it (`store.repo()` is None), mise cannot enumerate the tree and throws "listing snapshot files requires git".
Source
Thrown at src/cli/dotfiles/history/show.rs:148
}
for incomplete in &coverage.incomplete {
miseprintln!(" incomplete: {} ({})", incomplete.path, incomplete.reason);
}
if let Some(operation) = &c.operation
&& !operation.journal.is_empty()
{
miseprintln!("");
miseprintln!("Journal:");
for line in journal::render(&operation.journal) {
miseprintln!(" - {line}");
}
}
if self.files {
let Some(tree) = &c.tree.snapshot else {
bail!("checkpoint {} has no content snapshot", entry.id);
};
let Some(repo) = store.repo() else {
bail!("listing snapshot files requires git");
};
miseprintln!("");
miseprintln!("Files:");
for file in repo.ls_tree(tree)? {
let size = file.size.map(|size| size.to_string()).unwrap_or_default();
miseprintln!(
" {} {:>8} {}",
file.mode,
size,
crate::system::history::tracked::tree_path_to_display(&file.path)
);
}
}
Ok(())
}
}
pub(crate) fn policy(autosave: bool) -> String {View on GitHub (pinned to afd2eddd3a)
Solutions
- Install/use a mise build with git support (standard release binaries).
- Re-initialize or restore the history store's git repository.
- View the checkpoint journal without `--files` as a fallback for what changed.
Example fix
// before mise bootstrap dotfiles history show abc123 --files # requires git // after # reinstall mise with git support, then: mise bootstrap dotfiles history show abc123 --files
Defensive patterns
Strategy: fallback
Try / catch
# fall back to journal view when git tree listing is unavailable if ! mise bootstrap dotfiles history show "$id" --files 2>/dev/null; then mise bootstrap dotfiles history show "$id" fi
Prevention
- Use mise builds compiled with git support.
- Avoid stripping .git from the dotfiles history store during backups/syncs.
When it happens
Trigger: Running `mise bootstrap dotfiles history show <id> --files` where the checkpoint has `tree.snapshot` set but `store.repo()` returns None (mise built without git, or the store lacks git backing).
Common situations: A mise build without git support used on a store that does record snapshot refs; a history store whose git metadata was stripped or corrupted during sync/backup.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- comparing checkpoints requires git
- the annotated commit is not in the current history
- checkpoint {} has no content snapshot
- history is disabled (history.enabled = false)
- tracking declarations updated, but could not commit the chan
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/24a0efb7a936cb0d.
Report an issue: GitHub.