# # # add_file "tests/t_rosterify_mt_ignore.at" # content [f89ada19c1147346ab7dd5cf0e0a12fc542de4e9] # # patch "ChangeLog" # from [22aac7913f310e1759a5ac4ccc9522a422d482ea] # to [479d980bb9f7cde9924f743297ef808c1ed873b0] # # patch "revision.cc" # from [87252901db3b61651d2dd8d053f068c756935620] # to [817afeeab2043a81ab2d117c5cfb4f944a3e0629] # # patch "testsuite.at" # from [d1fe08ed898b6221d4611cacb163288d76221b55] # to [0b4f8a5a889cf997b12201f2bc789cee3e81017e] # ============================================================ --- tests/t_rosterify_mt_ignore.at f89ada19c1147346ab7dd5cf0e0a12fc542de4e9 +++ tests/t_rosterify_mt_ignore.at f89ada19c1147346ab7dd5cf0e0a12fc542de4e9 @@ -0,0 +1,132 @@ +AT_SETUP([rosterify handles .mt-ignore files]) +MTN_SETUP +NEED_UNGZB64 + +AT_DATA([foo], [foo +]) +AT_DATA([bar], [bar +]) + +# the first db has a single rev, containing a file ".mt-ignore", with +# contents "foo". rosterify should turn it into .mtn-ignore. + +AT_DATA([ignore-1.db.dump.gz.b64], [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 +AA== +]) + +AT_CHECK(rm -f test.db) + +UNGZB64(ignore-1.db.dump.gz.b64, ignore-1.db.dump) +AT_CHECK(MTN db load < ignore-1.db.dump, [], [ignore], [ignore]) +AT_CHECK(MTN db migrate, [], [ignore], [ignore]) +AT_CHECK(MTN db rosterify, [], [ignore], [ignore]) + +AT_CHECK(MTN co -b testbranch codir-1, [], [ignore], [ignore]) +AT_CHECK(test -f codir-1/.mtn-ignore) +AT_CHECK(cmp foo codir-1/.mtn-ignore) +AT_CHECK(test -f codir-1/.mt-ignore, [1]) + +# the second db has a single rev, containing a file ".mt-ignore" with +# contents "foo", and a file ".mtn-ignore" with contents "bar". +# rosterify should leave them both alone. + +AT_DATA([ignore-2.db.dump.gz.b64], [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 +A336J/YvDy0skRUVAAA= +]) + +AT_CHECK(rm -f test.db) + +UNGZB64(ignore-2.db.dump.gz.b64, ignore-2.db.dump) +AT_CHECK(MTN db load < ignore-2.db.dump, [], [ignore], [ignore]) +AT_CHECK(MTN db migrate, [], [ignore], [ignore]) +AT_CHECK(MTN db rosterify, [], [ignore], [ignore]) + +AT_CHECK(MTN co -b testbranch codir-2, [], [ignore], [ignore]) +AT_CHECK(test -f codir-2/.mtn-ignore) +AT_CHECK(cmp bar codir-2/.mtn-ignore) +AT_CHECK(test -f codir-2/.mt-ignore) +AT_CHECK(cmp foo codir-2/.mt-ignore) + +AT_CLEANUP ============================================================ --- ChangeLog 22aac7913f310e1759a5ac4ccc9522a422d482ea +++ ChangeLog 479d980bb9f7cde9924f743297ef808c1ed873b0 @@ -1,5 +1,12 @@ 2006-03-28 Nathaniel Smith + * revision.cc (construct_revisions_from_ancestry): Convert + .mt-ignore to .mtn-ignore. We have always been at war with + Oceania. + * tests/t_rosterify_mt_ignore.at, testsuite.at: Test it. + +2006-03-28 Nathaniel Smith + * std_hooks.lua (ignore_file): Read .mtn-ignore, not .mt-ignore. * tests/t_mt_ignore.at, tests/t_add.at, testsuite.at: Adjust accordingly. ============================================================ --- revision.cc 87252901db3b61651d2dd8d053f068c756935620 +++ revision.cc 817afeeab2043a81ab2d117c5cfb4f944a3e0629 @@ -1218,6 +1218,8 @@ } file_path attr_path = file_path_internal(".mt-attrs"); + file_path old_ignore_path = file_path_internal(".mt-ignore"); + file_path new_ignore_path = file_path_internal(".mtn-ignore"); roster_t child_roster; MM(child_roster); @@ -1225,7 +1227,14 @@ for (legacy::manifest_map::const_iterator i = old_child_man.begin(); i != old_child_man.end(); ++i) { - if (!(i->first == attr_path)) + if (i->first == attr_path) + continue; + // convert .mt-ignore to .mtn-ignore... except if .mtn-ignore + // already exists, just leave things alone. + else if (i->first == old_ignore_path + && old_child_man.find(new_ignore_path) == old_child_man.end()) + insert_into_roster(child_roster, nis, new_ignore_path, i->second); + else insert_into_roster(child_roster, nis, i->first, i->second); } ============================================================ --- testsuite.at d1fe08ed898b6221d4611cacb163288d76221b55 +++ testsuite.at 0b4f8a5a889cf997b12201f2bc789cee3e81017e @@ -864,3 +864,4 @@ m4_include(tests/t_netsync_notes.at) m4_include(tests/t_rosterify_on_rosterified_db.at) m4_include(tests/t_case_insensitive__MTN.at) +m4_include(tests/t_rosterify_mt_ignore.at)