{"record":{"id":"0ba34ee59088d763","repo":"GitoxideLabs/gitoxide","slug":"only-human-output-is-currently-supported-0ba34e","errorCode":null,"errorMessage":"Only human output is currently supported","messagePattern":"Only human output is currently supported","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"info","filePath":"gitoxide-core/src/repository/revision/list.rs","lineNumber":44,"sourceCode":"        backends::svg::SVGWriter,\n        core::{base::Orientation, geometry::Point, style::StyleAttr},\n        std_shapes::shapes::{Arrow, Element, ShapeKind},\n    };\n\n    pub fn list(\n        mut repo: gix::Repository,\n        mut progress: impl Progress,\n        mut out: impl std::io::Write,\n        super::Context {\n            spec,\n            format,\n            text,\n            limit,\n            long_hashes,\n        }: super::Context,\n    ) -> anyhow::Result<()> {\n        if format != OutputFormat::Human {\n            bail!(\"Only human output is currently supported\");\n        }\n        repo.object_cache_size_if_unset(4 * 1024 * 1024);\n        repo.objects.refresh = RefreshMode::Never;\n\n        let spec = gix::path::os_str_into_bstr(&spec)?;\n        let id = repo\n            .rev_parse_single(spec)\n            .context(\"Only single revisions are currently supported\")?;\n        let commits = id\n            .object()?\n            .peel_to_kind(gix::object::Kind::Commit)\n            .context(\"Need committish as starting point\")?\n            .id()\n            .ancestors()\n            .sorting(Sorting::ByCommitTime(Default::default()))\n            .all()?;\n\n        let mut vg = match text {","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/GitoxideLabs/gitoxide/blob/e73179060badf27222d790981fac3f84c1830a7e/gitoxide-core/src/repository/revision/list.rs#L26-L62","documentation":"The `gix revision list` command only implements human-readable output; requesting any other `OutputFormat` (e.g. JSON) makes `list` bail before doing traversal work. Like the other format guards in gitoxide-core, this is a not-yet-implemented notice, not an operational failure.","triggerScenarios":"Calling `gix revision list --format json` (or any non-Human OutputFormat) — the check at the top of `list` in gitoxide-core/src/repository/revision/list.rs rejects it immediately.","commonSituations":"Users scripting against gitoxide CLI assume JSON is available because other commands advertise serde support, or older invocations pass a format flag this subcommand doesn't honor yet.","solutions":["Use the default human output for `gix revision list`","Do JSON parsing of commit traversal via the `gix` Rust library instead of the CLI","Check newer gitoxide releases for added JSON support for this subcommand","Post-process the human output if scripting is required"],"exampleFix":"// before\ngix revision list HEAD --format json\n// after\ngix revision list HEAD","handlingStrategy":"validation","validationCode":"if [ \"$fmt\" != \"human\" ]; then echo \"revision list supports only human output\" >&2; exit 2; fi\ngix revision list \"$spec\" --format \"$fmt\"","typeGuard":null,"tryCatchPattern":"if ! gix revision list \"$spec\" --format json 2>&1 | grep -q 'Only human output'; then :; else gix revision list \"$spec\"; fi","preventionTips":["Assume JSON output is opt-in per subcommand; check --help first","Prefer the gix Rust library for machine-readable traversal results","Keep a compatibility shim that translates human output if you must script it","Track upstream issues for JSON traversal output"],"tags":["cli","json","not-implemented","revision"],"backgroundTag":"unsupported-operation","analyzedSha":"e73179060badf27222d790981fac3f84c1830a7e","analyzedAt":"2026-09-08T11:26:50.865Z","contentChangedAt":"2026-09-08T11:26:50.865Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}