{"record":{"id":"28ce901570ac5b01","repo":"GitoxideLabs/gitoxide","slug":"notice","errorCode":null,"errorMessage":"{notice}","messagePattern":"\\{notice\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"gix-tix/src/command/travel.rs","lineNumber":124,"sourceCode":"                .context(\"could not reopen repository after time-travel\")?;\n            println!(\n                \"{}\",\n                super::notice_with_change_id(\n                    &repository,\n                    &notice.unwrap_or_else(|| format!(\"already at {}\", selected.to_hex_with_len(7))),\n                    selected,\n                )?\n            );\n            super::print_ref_rewrites(&repository, &ref_rewrites)?;\n            super::record_undo(&repository, \"time travel\", Ok(ref_changes));\n        }\n        crate::edit::time_travel::Perform::Conflict(conflict) if args.materialize_conflicts => {\n            let (notice, _, ref_rewrites, ref_changes) = conflict.accept()?;\n            let repository = crate::open_repository(&repository_path, bare, false)\n                .context(\"could not reopen repository after materializing time-travel\")?;\n            super::print_ref_rewrites(&repository, &ref_rewrites)?;\n            super::record_undo(&repository, \"materialize time-travel conflict\", Ok(ref_changes));\n            anyhow::bail!(\"{notice}\");\n        }\n        crate::edit::time_travel::Perform::Conflict(_) => {\n            anyhow::bail!(\"time-travel would conflict; retry with --materialize-conflicts to check it out\")\n        }\n    }\n    Ok(())\n}\n\nfn relative_destination(\n    repository: &gix::Repository,\n    graph: &crate::history::HistoryGraph,\n    hidden_tips: &[gix::ObjectId],\n    head: gix::ObjectId,\n    to: To,\n) -> Result<gix::ObjectId> {\n    let order = graph\n        .stored_commit_ids()\n        .filter(|id| !hidden_tips.iter().any(|hidden| graph.is_ancestor(*id, *hidden)))","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/GitoxideLabs/gitoxide/blob/e73179060badf27222d790981fac3f84c1830a7e/gix-tix/src/command/travel.rs#L106-L142","documentation":"After a time-travel conflict was materialized (per --materialize-conflicts), tix records undo state and ref rewrites, prints the conflict notice, and exits with an error to signal that the checkout did not complete. The notice text (e.g. which files conflict) comes from conflict.accept() and is re-raised verbatim.","triggerScenarios":"`tix travel <dest> --materialize-conflicts` where the underlying Perform result is Perform::Conflict; tix materializes markers, prints ref rewrites/undo, then bails with the notice string.","commonSituations":"Travelling to a commit whose tree conflicts with local/index state; materializing conflicts to inspect them before continuing; automation treating the non-zero exit as a hard failure.","solutions":["Read the printed notice to see which paths conflict and resolve the markers","Continue or abort the time-travel per the notice/undo instructions","In scripts, detect this specific bail as 'conflict materialized, awaiting resolution' rather than a crash"],"exampleFix":"// before\ntix travel $dest --materialize-conflicts || exit 1\n// after\ntix travel \"$dest\" --materialize-conflicts || { grep -q 'CONFLICT' <(tix travel \"$dest\" --materialize-conflicts 2>&1) && resolve_and_continue; }","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"let out = Command::new(\"tix\").args([\"travel\", dest, \"--materialize-conflicts\"]).output()?;\nif !out.status.success() && String::from_utf8_lossy(&out.stderr).contains(\"CONFLICT\") {\n    // materialized: resolve markers, then follow the printed continue instruction\n}","preventionTips":["Check working-tree cleanliness before time travel","Anticipate a non-zero exit after materialization","Keep the printed undo/continuation instructions for recovery"],"tags":["cli","time-travel","conflict","checkout"],"backgroundTag":"git-command-failed","analyzedSha":"e73179060badf27222d790981fac3f84c1830a7e","analyzedAt":"2026-09-08T11:26:50.865Z","contentChangedAt":"2026-09-08T11:26:50.865Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}