{"record":{"id":"43d1def2433bb173","repo":"jdx/mise","slug":"is-not-a-sharing-conflict","errorCode":null,"errorMessage":"{} is not a sharing conflict","messagePattern":"(.+?) is not a sharing conflict","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/dotfiles/conflicts.rs","lineNumber":101,"sourceCode":"        .iter()\n        .map(|path| normalize_target(path))\n        .collect::<Vec<_>>();\n    let mut selected = vec![];\n    for conflict in conflicts {\n        let Some(path) = roots\n            .locate(&conflict.branch_path)\n            .path()\n            .map(Path::to_path_buf)\n        else {\n            continue;\n        };\n        if requested.is_empty() || requested.contains(&path) {\n            selected.push((path, conflict));\n        }\n    }\n    for path in requested {\n        if !selected.iter().any(|(selected, _)| selected == &path) {\n            bail!(\"{} is not a sharing conflict\", display_path(&path));\n        }\n    }\n    Ok(selected)\n}\n\nfn print_diff(repo: &HistoryRepo, conflict: &Conflict, path: &Path) -> Result<()> {\n    let local = side_file(repo, conflict.local.as_ref(), path, \"local\")?;\n    let remote = side_file(repo, conflict.remote.as_ref(), path, \"remote\")?;\n    let output = git_diff(repo, &local, &remote, path, console::colors_enabled())?;\n    if !output.stdout.is_empty() {\n        miseprint!(\"{}\", String::from_utf8_lossy(&output.stdout))?;\n    }\n    if local.mode != remote.mode {\n        miseprintln!(\"mode: {} -> {}\", local.mode, remote.mode);\n    }\n    Ok(())\n}\n","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/dotfiles/conflicts.rs#L83-L119","documentation":"`mise dot conflicts [--path ...]` only accepts paths that actually have a sharing conflict in the history store. If a requested path was not among the detected conflicts, the command bails saying so for that path.","triggerScenarios":"Passing a path argument to `mise dot conflicts` that is not in the current conflict set (typo, already resolved, or the file was never concurrently edited from multiple machines).","commonSituations":"User specifies the dotfile target path instead of the tracked source path; conflict was auto-resolved before the command ran; path spelling differs (e.g. `~/.gitconfig` vs the tracked repo-relative path).","solutions":["Run `mise dot conflicts` with no path arguments to list actual sharing conflicts, then use one of the listed paths","Re-run after the next history sync if you expect a conflict but none is detected","Verify the exact path format used by mise (e.g. run `mise dot list` to see tracked paths)"],"exampleFix":"// before\n$ mise dot conflicts ~/.config/mise/dotfiles/src/gitconfig\nerror: ... is not a sharing conflict\n// after\n$ mise dot conflicts            # list conflicts first\n$ mise dot conflicts <listed-path>","handlingStrategy":"validation","validationCode":"# only pass paths that conflicts reports\nmise dot conflicts | grep -F \"$P\" || echo \"$P has no sharing conflict\"","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"is not a sharing conflict\") => {\n        // fall back to listing all conflicts without a path arg\n    }\n    ...\n}","preventionTips":["Always list conflicts first, then select from that output","Use the exact path format mise reports (source path, not target path)"],"tags":["dotfiles","cli","invalid-argument"],"backgroundTag":"resource-not-found","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}