# # # add_file "tests/t_rosterify_rename.at" # # patch "revision.cc" # from [cff8f3f960a505a05817b5264bf473041778b4ec] # to [45ab55f0c66d5f4e4bd6ad31cc8ac4b370a637a3] # # patch "tests/t_rosterify_rename.at" # from [] # to [fd9e04171df0d76e4751c3929a2ff4a502d18ffb] # # patch "testsuite.at" # from [24220b1173206f90c3bb4ce5507b4d7b2c525c2c] # to [cbe9b8bf56d487b4701de1a140bf4198947ccc98] # ============================================================ --- revision.cc cff8f3f960a505a05817b5264bf473041778b4ec +++ revision.cc 45ab55f0c66d5f4e4bd6ad31cc8ac4b370a637a3 @@ -950,7 +950,7 @@ { std::map reversed; for (std::map::const_iterator i = renames.begin(); - i != reversed.end(); ++i) + i != renames.end(); ++i) reversed.insert(std::make_pair(i->second, i->first)); // this is a hackish kluge. seems to work, though. return find_old_path_for(reversed, old_path); ============================================================ --- tests/t_rosterify_rename.at +++ tests/t_rosterify_rename.at fd9e04171df0d76e4751c3929a2ff4a502d18ffb @@ -0,0 +1,95 @@ +AT_SETUP([db rosterify preserves renames]) +MONOTONE_SETUP +NEED_UNGZB64 + +AT_DATA([test.db.dump.gz.b64], [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 +6UJNHgAA +]) + +AT_CHECK(rm -f test.db) + +UNGZB64(test.db.dump.gz.b64, test.db.dump) +AT_CHECK(MONOTONE db load < test.db.dump, [], [ignore], [ignore]) +AT_CHECK(MONOTONE db migrate, [], [ignore], [ignore]) +AT_CHECK(MONOTONE db rosterify, [], [ignore], [ignore]) + +# check the second revision +AT_DATA([expout], [new_manifest @<:@274cc1314b1218394f058f9174faa062aaf08531@:>@ + +old_revision @<:@e9f446845505167b1b939cbcf1f5797372fe96f0@:>@ + +rename "testdir_start" + to "testdir_end" + +rename "testfile_start" + to "testfile_end" +]) + +AT_CHECK(MONOTONE automate select i: | monotone automate toposort address@hidden | tail -1 | monotone automate get_revision address@hidden, [], [expout], [ignore]) + +AT_CLEANUP ============================================================ --- testsuite.at 24220b1173206f90c3bb4ce5507b4d7b2c525c2c +++ testsuite.at cbe9b8bf56d487b4701de1a140bf4198947ccc98 @@ -752,3 +752,4 @@ m4_include(tests/t_update_switch_branch.at) m4_include(tests/t_migrate_rosterify.at) m4_include(tests/t_rosterify_attrs.at) +m4_include(tests/t_rosterify_rename.at)