# # # patch "monotone.texi" # from [2b13a4dfe71e19312c85b10086c0adf5f38e19d5] # to [abd7160576898d8bc863dbf84d62d2790d760a20] # # patch "revision.cc" # from [eb4d735c9967f026d1242ca4d38b2de2a483d06e] # to [2b5ffb27164f7265cba31f3ffe0dee42ad1773d4] # # patch "roster.hh" # from [e22fbd6c2eea9615337de4319fca8353c587b13d] # to [e0d2b16d79c0d818fb951f7b32726d6eaebdb725] # # patch "tests/automate_show_conflicts/expected-attribute-attached.stdout" # from [fa0c84e4e5afa446740c2b8a9ba0076af9b8d456] # to [4ceb87a115b7810e89c6b39cf6564f3d64f4cc61] # # patch "tests/automate_show_conflicts/expected-attribute-detached.stdout" # from [1c448e949539b7a1e2dd9150fc96bc4b6599d32d] # to [40c709752502f9976b78f252e7bf7346e879255c] # # patch "tests/automate_show_conflicts/expected-content-attached.stdout" # from [8a0d74dc6a9da3441fac2dd413d558d8a66b8228] # to [6c39a0131b22693f4086fb68970e827a3241a287] # # patch "tests/automate_show_conflicts/expected-content-detached.stdout" # from [bbb2b7df6e757607c02ec538f8612b484bbfd287] # to [fb8495a17d8f6a59572cb87703c7f05af418b65d] # # patch "tests/automate_show_conflicts/expected-directory-loop.stdout" # from [126d670d2ed346aae2cb4be5e41e65e3f1305c3a] # to [de5f4fbfee1d8fdafde73535041ddde66207eb2a] # # patch "tests/automate_show_conflicts/expected-duplicate-add-rename.stdout" # from [5e240dbd44a387642e5e8d9304c9c9ca566ee19a] # to [960c1810ffd09fb5fb6e7623dd5740c623d2e46a] # # patch "tests/automate_show_conflicts/expected-duplicate-adds.stdout" # from [397734596a6b5623ffc083398075e8c03566b1ab] # to [f62b2ef38c303a56d63f23849907a5e9a4c0af8c] # # patch "tests/automate_show_conflicts/expected-duplicate-name-multiple-name-missing-root.stdout" # from [ada9f4764d92f2a8e5f2a286adf56b837b312d32] # to [97246345a094fdb4d824196a148ff03f163372fd] # # patch "tests/automate_show_conflicts/expected-duplicate-renames.stdout" # from [b5b35f40ad20e034fdbc82c373babdb738d03a46] # to [fcefa7860a93fb5a21ea56045a22c1d7085702eb] # # patch "tests/automate_show_conflicts/expected-invalid-add.stdout" # from [1c422d6075982cf93aae8ba0fdffcb40c511be97] # to [979bcb70f07c8c1bd1257abaac3ccc838685df16] # # patch "tests/automate_show_conflicts/expected-invalid-rename.stdout" # from [d02d26164df0bcc9f1ef8fdb1837cbfa10c1b1d5] # to [03f20ce606834c98052f061d9db45e98199e69e5] # # patch "tests/automate_show_conflicts/expected-missing-root.stdout" # from [58849682f3a571f8c4b2d16798254f8bdf58ca18] # to [94b47debd3848a1369db6c4c45123448f34f5766] # # patch "tests/automate_show_conflicts/expected-multiple-name-plus-directory-loop.stdout" # from [24a1e0c7dcbb1c1d23a5bc04769054208937fede] # to [fb19db164690da0bfacc3023861bfbde3e0a6756] # # patch "tests/automate_show_conflicts/expected-multiple-name-plus-duplicate-name.stdout" # from [59ee31ea632cbde3652a8a99968ba989d9475cf5] # to [9fd3b1c4abfcf81218e7f1114cb110e9bdf63ab5] # # patch "tests/automate_show_conflicts/expected-multiple-name-plus-orphan.stdout" # from [b2100ce320bca98a7e887ec9a2b45df390675652] # to [11b1c86e6b665778c54def56ed4b25d9d2c672c2] # # patch "tests/automate_show_conflicts/expected-multiple-names.stdout" # from [a99bb258bbc6163abb9536757671d21cc6d85e9f] # to [9cdc729aed940d5504888465e20bb4ca30f8d5ba] # # patch "tests/automate_show_conflicts/expected-orphaned-add.stdout" # from [c4ec6b5ddcb02798e9908aa3ec0a5e309cbb0cff] # to [a935d1c389fa30701f15e2c01cd880ee3a1c8620] # # patch "tests/automate_show_conflicts/expected-orphaned-rename.stdout" # from [ef25445ace7ea46983ce7db10b125d31896b2e28] # to [6096fa729c8ef741b7a64a7405984f601906c5bb] # # patch "tests/automate_show_conflicts/expected-unrelated-projects.stdout" # from [798de4555bd1624f7883506ae21b0547acd3bfbd] # to [ee0741479e34ee1343e029dec1e206ca171716b4] # # patch "tests/merge_with_conflicting_name_and_renamed_dir/expected.stdout" # from [d5c917a78297e3c2abc113d04eaae5f61ae44e23] # to [2e696c102e7388389e5117fd0cba1e736bef7ee3] # ============================================================ --- monotone.texi 2b13a4dfe71e19312c85b10086c0adf5f38e19d5 +++ monotone.texi abd7160576898d8bc863dbf84d62d2790d760a20 @@ -8627,7 +8627,7 @@ @section Automation Attribute changed in both branches, or dropped in one: @verbatim - conflict "attribute" + conflict attribute node_type "file" attr_name "attr1" ancestor_name "foo" @@ -8639,7 +8639,7 @@ @section Automation right_file_id [bab2022ff2ed13501a8a83bcc6bd53f5042141be] right_attr_value "valueZ" - conflict "attribute" + conflict attribute node_type "file" attr_name "attr2" ancestor_name "foo" @@ -8654,7 +8654,7 @@ @section Automation Missing root directory: @verbatim - conflict "missing root" + conflict missing_root left_type "pivoted root" ancestor_name "foo" right_type "deleted directory" @@ -8663,21 +8663,21 @@ @section Automation Directory deleted and/or renamed: @verbatim - conflict "orphaned directory" + conflict orphaned_directory right_type "deleted directory" ancestor_name "" left_type "renamed directory" ancestor_name "" left_name "bar" - conflict "orphaned file" + conflict orphaned_file right_type "deleted directory" ancestor_name "foo" left_type "added file" left_name "foo/baz" left_file_id [f5122a7f896cb2dd7ecaa84be89c94ab09c15101] - conflict "orphaned file" + conflict orphaned_file right_type "deleted directory" ancestor_name "foo" left_type "renamed file" @@ -8686,7 +8686,7 @@ @section Automation left_name "foo/baz" left_file_id [ac4c6d06436632e017bb7d3ea241734e8899f8ce] - conflict "multiple names" + conflict multiple_names left_type "renamed directory" ancestor_name "" left_name "aaa" @@ -8694,7 +8694,7 @@ @section Automation ancestor_name "" right_name "bbb" - conflict "duplicate name" + conflict duplicate_name left_type "renamed directory" ancestor_name "foo" left_name "" @@ -8702,7 +8702,7 @@ @section Automation ancestor_name "bar" right_name "" - conflict "multiple names" + conflict multiple_names left_type "renamed directory" ancestor_name "foo" left_name "a/foo" @@ -8713,7 +8713,7 @@ @section Automation Directory loop created: @verbatim - conflict "directory loop created" + conflict directory_loop_created left_type "renamed directory" ancestor_name "foo" left_name "bar/foo" @@ -8725,7 +8725,7 @@ @section Automation File content changed (this may be resolvable by the internal line merger), file also renamed: @verbatim - conflict "content" + conflict content node_type "file" ancestor_name "bar" ancestor_file_id [f0ef49fe92167fe2a086588019ffcff7ea561786] @@ -8734,7 +8734,7 @@ @section Automation right_name "bar" right_file_id [0cf419dd93d38b2daaaf1f5e0f3ec647745b9690] - conflict "content" + conflict content node_type "file" ancestor_name "foo" ancestor_file_id [50bf338804db2685a575124c8c8371d06b65c523] @@ -8746,7 +8746,7 @@ @section Automation File added and/or renamed: @verbatim - conflict "duplicate name" + conflict duplicate_name left_type "added file" left_name "bar" left_file_id [ba4637112ee3e55a6106d647d6c4e04a6643f8eb] @@ -8754,7 +8754,7 @@ @section Automation right_name "bar" right_file_id [fe6d523f607e2f2fc0f0defad3bda0351a95a337] - conflict "duplicate name" + conflict duplicate_name left_type "renamed file" ancestor_name "foo" ancestor_file_id [c6864a8456855c48afe83488a47501fe8b94bd57] @@ -8764,7 +8764,7 @@ @section Automation right_name "bar" right_file_id [c809d71002ec57a2f1d10221f05993012a491436] - conflict "duplicate name" + conflict duplicate_name left_type "renamed file" ancestor_name "foo" ancestor_file_id [918f3642b57a5e2dd13ee874e3dc2518a53ab4b4] @@ -8779,7 +8779,7 @@ @section Automation File renamed to different names: @verbatim - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [e80910e54d0bdea1b6d295ada320b87aaf9fdc23] @@ -8794,13 +8794,13 @@ @section Automation Invalid file name (@file{_MTN} in root directory): @verbatim - conflict "invalid name" + conflict invalid_name left_type "pivoted root" ancestor_name "foo" right_type "added directory" right_name "foo/_MTN" - conflict "invalid name" + conflict invalid_name left_type "pivoted root" ancestor_name "foo" right_type "renamed file" @@ -8816,9 +8816,9 @@ @section Automation right [0e3260f51acd1e98c40666557eb6c0eefeae5f02] ancestor [] -conflict "missing root" +conflict missing_root - conflict "duplicate name" + conflict duplicate_name left_type "added directory" left_name "" right_type "added directory" ============================================================ --- revision.cc eb4d735c9967f026d1242ca4d38b2de2a483d06e +++ revision.cc 2b5ffb27164f7265cba31f3ffe0dee42ad1773d4 @@ -62,6 +62,14 @@ using boost::shared_ptr; using boost::dynamic_bitset; using boost::shared_ptr; +// The revision format number must be incremented whenever any basic_io +// format used for revision data in the database changes. Note that this is +// _not_ the database schema format; see schema_migration for that. +// +// If a new revision basic_io format is not strictly a superset of a +// previous one, we'll need to support migration for this. +static const unsigned int current_revision_format = 1; + void revision_t::check_sane() const { // null id in current manifest only permitted if previous @@ -396,7 +404,7 @@ toposort(database & db, map work; for (set::const_iterator i = revisions.begin(); - i != revisions.end(); ++i) + i != revisions.end(); ++i) { rev_height height; db.get_rev_height(*i, height); @@ -404,7 +412,7 @@ toposort(database & db, } sorted.clear(); - + for (map::const_iterator i = work.begin(); i != work.end(); ++i) { @@ -461,10 +469,10 @@ erase_ancestors_and_failures(database & { // Load up the ancestry graph multimap inverse_graph; - + if (candidates.empty()) return; - + if (inverse_graph_cache_ptr == NULL) inverse_graph_cache_ptr = &inverse_graph; if (inverse_graph_cache_ptr->empty()) @@ -733,7 +741,7 @@ make_restricted_revision(parent_map cons shared_ptr included(new cset()); roster_t restricted_roster; - make_restricted_roster(parent_roster(i), new_roster, + make_restricted_roster(parent_roster(i), new_roster, restricted_roster, mask); make_cset(parent_roster(i), restricted_roster, *included); safe_insert(edges, make_pair(parent_id(i), included)); @@ -759,7 +767,7 @@ make_restricted_revision(parent_map cons shared_ptr included(new cset()); roster_t restricted_roster; - make_restricted_roster(parent_roster(i), new_roster, + make_restricted_roster(parent_roster(i), new_roster, restricted_roster, mask); make_cset(parent_roster(i), restricted_roster, *included); make_cset(restricted_roster, new_roster, excluded); @@ -1632,7 +1640,7 @@ anc_graph::construct_revisions_from_ance L(FL("mapped node %d to revision %s") % child % new_rid); if (db.put_revision(new_rid, rev)) ++n_revs_out; - + // Mark this child as done, hooray! safe_insert(done, child); @@ -1798,7 +1806,7 @@ print_insane_revision(basic_io::printer { basic_io::stanza format_stanza; - format_stanza.push_str_pair(syms::format_version, "1"); + format_stanza.push_str_pair(syms::format_version, boost::lexical_cast(current_revision_format)); printer.print_stanza(format_stanza); basic_io::stanza manifest_stanza; @@ -1849,11 +1857,12 @@ parse_revision(basic_io::parser & parser string tmp; parser.esym(syms::format_version); parser.str(tmp); - E(tmp == "1", - F("encountered a revision with unknown format, version '%s'\n" - "I only know how to understand the version '1' format\n" + unsigned int format = boost::lexical_cast(tmp); + E(format <= current_revision_format, + F("encountered a revision with unknown format version %s\n" + "I only understand formats up to version %s\n" "a newer version of monotone is required to complete this operation") - % tmp); + % tmp % current_revision_format); parser.esym(syms::new_manifest); parser.hex(tmp); rev.new_manifest = manifest_id(decode_hexenc(tmp)); ============================================================ --- roster.hh e22fbd6c2eea9615337de4319fca8353c587b13d +++ roster.hh e0d2b16d79c0d818fb951f7b32726d6eaebdb725 @@ -53,11 +53,9 @@ struct node // // in workspace rosters, ancestors is always null // - // We currently only support suture as a merge conflict resolution, so - // first and second are from different parent rosters. FIXME: if we add - // support for a user suture command, they will be from the same parent - // roster; we will need to record that somehow, and indicate it in - // changesets. + // If this suture is a merge conflict resolution, first and second are + // from different parent rosters. If from a user suture command, they are + // from the same parent roster. // need a virtual function to make dynamic_cast work virtual node_t clone() = 0; ============================================================ --- tests/automate_show_conflicts/expected-attribute-attached.stdout fa0c84e4e5afa446740c2b8a9ba0076af9b8d456 +++ tests/automate_show_conflicts/expected-attribute-attached.stdout 4ceb87a115b7810e89c6b39cf6564f3d64f4cc61 @@ -1,8 +1,8 @@ ancestor [c79cbcfb99f7a5e547815669b150dd left [febd58929375e5820fb73dd258d3f53d77014aa9] right [feec4de91f4698bc77f1b50c82ee4513cc47ae8f] ancestor [c79cbcfb99f7a5e547815669b150dd3d9a28a598] - conflict "attribute" + conflict attribute node_type "file" attr_name "attr1" ancestor_name "foo" @@ -14,7 +14,7 @@ right_attr_value "valueZ" right_file_id [bab2022ff2ed13501a8a83bcc6bd53f5042141be] right_attr_value "valueZ" - conflict "attribute" + conflict attribute node_type "file" attr_name "attr2" ancestor_name "foo" ============================================================ --- tests/automate_show_conflicts/expected-attribute-detached.stdout 1c448e949539b7a1e2dd9150fc96bc4b6599d32d +++ tests/automate_show_conflicts/expected-attribute-detached.stdout 40c709752502f9976b78f252e7bf7346e879255c @@ -1,8 +1,8 @@ ancestor [d81bb87785fa1bbe11aed1ca6d3340 left [67ba83fd417fede6cb6de14d90783e93261e5210] right [2654ad872bf18d40260aaf59e8ce0058bf54bddd] ancestor [d81bb87785fa1bbe11aed1ca6d3340d288b61b78] - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [e80910e54d0bdea1b6d295ada320b87aaf9fdc23] @@ -14,7 +14,7 @@ ancestor_file_id [e80910e54d0bdea1b6d295 right_name "baz" right_file_id [e80910e54d0bdea1b6d295ada320b87aaf9fdc23] - conflict "attribute" + conflict attribute node_type "file" attr_name "attr1" ancestor_name "foo" @@ -26,7 +26,7 @@ right_attr_value "valueZ" right_file_id [e80910e54d0bdea1b6d295ada320b87aaf9fdc23] right_attr_value "valueZ" - conflict "attribute" + conflict attribute node_type "file" attr_name "attr2" ancestor_name "foo" ============================================================ --- tests/automate_show_conflicts/expected-content-attached.stdout 8a0d74dc6a9da3441fac2dd413d558d8a66b8228 +++ tests/automate_show_conflicts/expected-content-attached.stdout 6c39a0131b22693f4086fb68970e827a3241a287 @@ -1,8 +1,8 @@ ancestor [7d854bf031420b7a5c1cafcb908f10 left [0b9e5111f3e13ccb1727bc936aff962020dc9809] right [49d6a10f5f09b064a35f1700966795ae698f0555] ancestor [7d854bf031420b7a5c1cafcb908f1020593196a8] - conflict "content" + conflict content node_type "file" ancestor_name "bar" ancestor_file_id [f0ef49fe92167fe2a086588019ffcff7ea561786] @@ -11,7 +11,7 @@ ancestor_file_id [f0ef49fe92167fe2a08658 right_name "bar" right_file_id [0cf419dd93d38b2daaaf1f5e0f3ec647745b9690] - conflict "content" + conflict content node_type "file" ancestor_name "baz" ancestor_file_id [55320c8cee4b87edb47ec6d7e678af53eed2c717] @@ -20,7 +20,7 @@ ancestor_file_id [55320c8cee4b87edb47ec6 right_name "baz" right_file_id [ac923b3bc65d6638cdee243bd46b57d3e14ce4ee] - conflict "content" + conflict content node_type "file" ancestor_name "foo" ancestor_file_id [26798f895189be8aa9a366011e3253c738966010] ============================================================ --- tests/automate_show_conflicts/expected-content-detached.stdout bbb2b7df6e757607c02ec538f8612b484bbfd287 +++ tests/automate_show_conflicts/expected-content-detached.stdout fb8495a17d8f6a59572cb87703c7f05af418b65d @@ -1,8 +1,8 @@ ancestor [936159c798b9bb3f5d0f871a0dda15 left [7a4c8dae08866a0c65a5a136eeca82f85e028837] right [40a6208fa7406a393823d33aecae509c80db37b4] ancestor [936159c798b9bb3f5d0f871a0dda158a844e9348] - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [50bf338804db2685a575124c8c8371d06b65c523] @@ -14,7 +14,7 @@ ancestor_file_id [50bf338804db2685a57512 right_name "baz" right_file_id [b966b2d35b99e456cb0c55e4573ef0b1b155b4a9] - conflict "content" + conflict content node_type "file" ancestor_name "foo" ancestor_file_id [50bf338804db2685a575124c8c8371d06b65c523] ============================================================ --- tests/automate_show_conflicts/expected-directory-loop.stdout 126d670d2ed346aae2cb4be5e41e65e3f1305c3a +++ tests/automate_show_conflicts/expected-directory-loop.stdout de5f4fbfee1d8fdafde73535041ddde66207eb2a @@ -1,8 +1,8 @@ ancestor [08ccbb14523a09d342568ce27a1b9f left [be04cb44902df12f3b36bf0efabba784547ccd34] right [7cd48d9599eee2a67e8c510112659c0d313fb1df] ancestor [08ccbb14523a09d342568ce27a1b9f631d42aa9c] - conflict "directory loop created" + conflict directory_loop_created left_type "renamed directory" ancestor_name "foo" left_name "bar/foo" ============================================================ --- tests/automate_show_conflicts/expected-duplicate-add-rename.stdout 5e240dbd44a387642e5e8d9304c9c9ca566ee19a +++ tests/automate_show_conflicts/expected-duplicate-add-rename.stdout 960c1810ffd09fb5fb6e7623dd5740c623d2e46a @@ -1,8 +1,8 @@ ancestor [d9ff68aa530d581731b0e5739b3494 left [446ea80c3f78fca1cfdb84aad55939f4e635ddc0] right [367cb265f641ead9834f497ff3cbcb2b85ffe1fa] ancestor [d9ff68aa530d581731b0e5739b3494963cd89e91] - conflict "duplicate name" + conflict duplicate_name left_type "renamed file" ancestor_name "foo" ancestor_file_id [c6864a8456855c48afe83488a47501fe8b94bd57] ============================================================ --- tests/automate_show_conflicts/expected-duplicate-adds.stdout 397734596a6b5623ffc083398075e8c03566b1ab +++ tests/automate_show_conflicts/expected-duplicate-adds.stdout f62b2ef38c303a56d63f23849907a5e9a4c0af8c @@ -1,8 +1,8 @@ ancestor [56cafb3485be6d40923bacaddcd19c left [36e62406e9792ad64f7af73c5192d2e4e53306c8] right [2b96f8e6ed2bb566c22ebcbdd06d34d1043c237f] ancestor [56cafb3485be6d40923bacaddcd19cde63433028] - conflict "duplicate name" + conflict duplicate_name left_type "added file" left_name "bar" left_file_id [ba4637112ee3e55a6106d647d6c4e04a6643f8eb] ============================================================ --- tests/automate_show_conflicts/expected-duplicate-name-multiple-name-missing-root.stdout ada9f4764d92f2a8e5f2a286adf56b837b312d32 +++ tests/automate_show_conflicts/expected-duplicate-name-multiple-name-missing-root.stdout 97246345a094fdb4d824196a148ff03f163372fd @@ -1,14 +1,14 @@ ancestor [5bc669f00cf90b76dd38077827565b left [254fd127afd769a33979a843f5e3d8f2457097e6] right [6e0b7ffd0171d72db85dfc54234a78a35dd76cf3] ancestor [5bc669f00cf90b76dd38077827565b624d823756] - conflict "missing root" + conflict missing_root left_type "pivoted root" ancestor_name "foo" right_type "pivoted root" ancestor_name "bar" - conflict "multiple names" + conflict multiple_names left_type "renamed directory" ancestor_name "" left_name "aaa" @@ -16,7 +16,7 @@ ancestor_name "" ancestor_name "" right_name "bbb" - conflict "duplicate name" + conflict duplicate_name left_type "renamed directory" ancestor_name "foo" left_name "" ============================================================ --- tests/automate_show_conflicts/expected-duplicate-renames.stdout b5b35f40ad20e034fdbc82c373babdb738d03a46 +++ tests/automate_show_conflicts/expected-duplicate-renames.stdout fcefa7860a93fb5a21ea56045a22c1d7085702eb @@ -1,8 +1,8 @@ ancestor [680280e4dcc9fcf60721e6ac9157d9 left [1fc2275efef8645a25e267ae47686e57e50ca1e1] right [497d6e99c8b79ef5848aa862154f496432f07709] ancestor [680280e4dcc9fcf60721e6ac9157d98ac5f94c37] - conflict "duplicate name" + conflict duplicate_name left_type "renamed file" ancestor_name "foo" ancestor_file_id [918f3642b57a5e2dd13ee874e3dc2518a53ab4b4] ============================================================ --- tests/automate_show_conflicts/expected-invalid-add.stdout 1c422d6075982cf93aae8ba0fdffcb40c511be97 +++ tests/automate_show_conflicts/expected-invalid-add.stdout 979bcb70f07c8c1bd1257abaac3ccc838685df16 @@ -1,8 +1,8 @@ ancestor [36e6935d3fddf349ef829125e8b6d4 left [507f1209e78415722129e65633a8d6a9dd6003f1] right [cdf9a4171d1d386f9ecb83218a11df6c5fa75c6c] ancestor [36e6935d3fddf349ef829125e8b6d41ea85d1db8] - conflict "invalid name" + conflict invalid_name left_type "pivoted root" ancestor_name "foo" right_type "added directory" ============================================================ --- tests/automate_show_conflicts/expected-invalid-rename.stdout d02d26164df0bcc9f1ef8fdb1837cbfa10c1b1d5 +++ tests/automate_show_conflicts/expected-invalid-rename.stdout 03f20ce606834c98052f061d9db45e98199e69e5 @@ -1,8 +1,8 @@ ancestor [e7f711a68627ccae4aded5907fc805 left [2bf9335ed387a7f1f082b0bc5ecdffa303d8393f] right [459c32f4c7b4676d47e23aff2bd67c1e2eae5f09] ancestor [e7f711a68627ccae4aded5907fc80516ea1215fd] - conflict "invalid name" + conflict invalid_name left_type "pivoted root" ancestor_name "foo" right_type "renamed file" ============================================================ --- tests/automate_show_conflicts/expected-missing-root.stdout 58849682f3a571f8c4b2d16798254f8bdf58ca18 +++ tests/automate_show_conflicts/expected-missing-root.stdout 94b47debd3848a1369db6c4c45123448f34f5766 @@ -1,14 +1,14 @@ ancestor [ead03530f5fefe50c9010157c42c0e left [532ab5011ea9e64aa212d4ea52363b1b8133d5ba] right [b94a03a922c2c281a88d8988db64e76a32edb6a1] ancestor [ead03530f5fefe50c9010157c42c0ebe18086559] - conflict "missing root" + conflict missing_root left_type "pivoted root" ancestor_name "foo" right_type "deleted directory" ancestor_name "foo" - conflict "orphaned directory" + conflict orphaned_directory right_type "deleted directory" ancestor_name "" left_type "renamed directory" ============================================================ --- tests/automate_show_conflicts/expected-multiple-name-plus-directory-loop.stdout 24a1e0c7dcbb1c1d23a5bc04769054208937fede +++ tests/automate_show_conflicts/expected-multiple-name-plus-directory-loop.stdout fb19db164690da0bfacc3023861bfbde3e0a6756 @@ -1,8 +1,8 @@ ancestor [27169065f28ccfb64678ac168b3805 left [4e25e44deef167f640248e542916736b649e3044] right [0b37ed4689ee191cdd4bd26e5233511329b17032] ancestor [27169065f28ccfb64678ac168b3805796bd9e5ae] - conflict "multiple names" + conflict multiple_names left_type "renamed directory" ancestor_name "foo" left_name "a/foo" ============================================================ --- tests/automate_show_conflicts/expected-multiple-name-plus-duplicate-name.stdout 59ee31ea632cbde3652a8a99968ba989d9475cf5 +++ tests/automate_show_conflicts/expected-multiple-name-plus-duplicate-name.stdout 9fd3b1c4abfcf81218e7f1114cb110e9bdf63ab5 @@ -1,8 +1,8 @@ ancestor [621e8ed86b46adcc57cd6abec90ecc left [424a7237e21522fd09878f486acbb8807cae59e6] right [ef9b007adf6e49cc6b7e5317d860fb5716f418e9] ancestor [621e8ed86b46adcc57cd6abec90ecc41481a3e3b] - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [eaf183d079563812d0c6860225ea9e4e0e2ebc20] ============================================================ --- tests/automate_show_conflicts/expected-multiple-name-plus-orphan.stdout b2100ce320bca98a7e887ec9a2b45df390675652 +++ tests/automate_show_conflicts/expected-multiple-name-plus-orphan.stdout 11b1c86e6b665778c54def56ed4b25d9d2c672c2 @@ -1,8 +1,8 @@ ancestor [e487f26d5c464b381743e394923b7f left [0c9b6d79dc8842d0440be2b10a8bf4015d1114b9] right [894db59b5fe6bcc4a22cfc1e06e5865b2bd888b1] ancestor [e487f26d5c464b381743e394923b7fd44b00705e] - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [f53efd5c0abb89e4c292f9c0e5709e0cd95aec4a] ============================================================ --- tests/automate_show_conflicts/expected-multiple-names.stdout a99bb258bbc6163abb9536757671d21cc6d85e9f +++ tests/automate_show_conflicts/expected-multiple-names.stdout 9cdc729aed940d5504888465e20bb4ca30f8d5ba @@ -1,8 +1,8 @@ ancestor [560b97068441495b17d8924f6122a1 left [872b02c3aaa3b8ee6acf7e00e67108d5aaa8cb31] right [bf62726ad7c36e553cb8906906866962786e52c0] ancestor [560b97068441495b17d8924f6122a1c47213a08b] - conflict "multiple names" + conflict multiple_names left_type "renamed file" ancestor_name "foo" ancestor_file_id [3dc9e2f630ea9c3e60e8947d41c4150b88340ea0] ============================================================ --- tests/automate_show_conflicts/expected-orphaned-add.stdout c4ec6b5ddcb02798e9908aa3ec0a5e309cbb0cff +++ tests/automate_show_conflicts/expected-orphaned-add.stdout a935d1c389fa30701f15e2c01cd880ee3a1c8620 @@ -1,8 +1,8 @@ ancestor [cce148761e33b0abbaa1c072ee913d left [140a1d712e5e7368dc88766144e0975746f27b9a] right [872259407b5e1445c6b463768243ddaf531bd73a] ancestor [cce148761e33b0abbaa1c072ee913dcc23d7bfc3] - conflict "orphaned file" + conflict orphaned_file right_type "deleted directory" ancestor_name "foo" left_type "added file" ============================================================ --- tests/automate_show_conflicts/expected-orphaned-rename.stdout ef25445ace7ea46983ce7db10b125d31896b2e28 +++ tests/automate_show_conflicts/expected-orphaned-rename.stdout 6096fa729c8ef741b7a64a7405984f601906c5bb @@ -1,8 +1,8 @@ ancestor [b5f52dbc0dc530adffbdd140a7de5b left [4ceae2a74d9d0d7341d2cd01a71c9e84eb1fefa7] right [16a19ace8ec26cd2ed13c7e727a3021e82a2204f] ancestor [b5f52dbc0dc530adffbdd140a7de5b129cf74f29] - conflict "orphaned file" + conflict orphaned_file right_type "deleted directory" ancestor_name "foo" left_type "renamed file" ============================================================ --- tests/automate_show_conflicts/expected-unrelated-projects.stdout 798de4555bd1624f7883506ae21b0547acd3bfbd +++ tests/automate_show_conflicts/expected-unrelated-projects.stdout ee0741479e34ee1343e029dec1e206ca171716b4 @@ -1,10 +1,10 @@ ancestor [] left [161e426c3b0c3f98d0be225f69d6f893ce8e0442] right [0e3260f51acd1e98c40666557eb6c0eefeae5f02] ancestor [] -conflict "missing root" +conflict missing_root - conflict "duplicate name" + conflict duplicate_name left_type "added directory" left_name "" right_type "added directory" ============================================================ --- tests/merge_with_conflicting_name_and_renamed_dir/expected.stdout d5c917a78297e3c2abc113d04eaae5f61ae44e23 +++ tests/merge_with_conflicting_name_and_renamed_dir/expected.stdout 2e696c102e7388389e5117fd0cba1e736bef7ee3 @@ -1,8 +1,8 @@ ancestor [51ccdc67277ec1461e1140df66fd00 left [3e5ae9c2084d1ab530cd9690bac5e45ee6db7ade] right [e7d401d9de91696feaf17569337d10ed6e02a9b5] ancestor [51ccdc67277ec1461e1140df66fd00d56db3e7b5] - conflict "duplicate name" + conflict duplicate_name left_type "added file" left_name "foo/x" left_file_id [75e12a4830b87d440b8ecadbdbcdf20842278d30]