This is about what we do during MergeViaWorkingDir or WorkspaceConflicts in order to turn the "insane" (technical term) roster into a "sane" one so we can actually write it out. This is not a resolution to the conflict! This is only the mechanical, least-effort repair that lets us get out to where we can take user interaction.

There are seven kinds of conflicts that roster merge can produce: each is a subsection below.

node_name_conflict

Attach somewhere, i.e. make up a name that we know does not exist (because we checked)

Record name in left, right

  • left: parent name and basename

  • right: parent name and basename

file_content_conflict

make up some content (with <<<< in)

"add" left, right, "L"CA tempfiles

node_attr_conflict

need: key, value on left; value on right

orphaned_node_conflict

make up name, maybe in a subdir, attach it

record old name / parent

rename_target_conflict

attach both somewhere

want to know what the old name(s) were

directory_loop_conflict

this occurs from two directories a and b by renaming a to b/a on one side, b to a/b on the other

attach somewhere

illegal_name_conflict

attach somewhere

missing_root_dir

create one

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status