# # # patch "cmd_ws_commit.cc" # from [7c6997b990823c878080f41b0428b2543fa0c896] # to [ed7477439b4e84a91eb9e88973ced53efdc56cd0] # # patch "tests/(imp)_deleting_directories/__driver__.lua" # from [1647676a62a47c09d1e343614b53860c7d588516] # to [1a81b51ba2b483b8084f3e9af728b5787e41c921] # # patch "tests/(imp)_merge((patch_foo_a),_(delete_foo_))/__driver__.lua" # from [afd3d334f88c38e8483688bdb719f32f6a015d82] # to [735444cd52e8bba4f174d3a7535bb6bd49022a24] # # patch "tests/a_tricky_cvs_repository_with_tags/__driver__.lua" # from [dfdb26fe85f27c266ea14a4bb3923e7b464c674a] # to [cb5c43376f943d2fde1856547a7b199bf5b6c4d7] # # patch "tests/attr_command_in_subdirs/__driver__.lua" # from [c5ad82d1ea7a87406263518dcf4f51f452d04acd] # to [1bb2e3d8056e7046da4c34bb6d5420e05c56996d] # # patch "tests/attr_set_get_commands/__driver__.lua" # from [e5473b58e745501b6697ad691536d228bf04f420] # to [d95e515541285d3a2e72d5408aa0a40cd875f55f] # # patch "tests/checkout_creates__MTN_log/__driver__.lua" # from [e26ea58d3b51901258ed842a574ef017ecc681e6] # to [0cb0297db597db9d617a852e9fc5b8d04481172b] # # patch "tests/diff_shows_renames/__driver__.lua" # from [2edb1cfc2d463bca61cb16617c7710a3b413a1ca] # to [e410c09e7e75cfeed8334183ab2a47e6d1a675e7] # # patch "tests/importing_a_small,_real_cvs_repository/__driver__.lua" # from [2cf3e46ca8cf7df7615f833d94847972f9fef5f5] # to [ecf87ca6d14e630bbb4d1b81eb19765aa078835a] # # patch "tests/merge((patch_foo_a),_(rename_foo__bar_))/__driver__.lua" # from [3c8d9c94096b94a42aa6cc6d89d0a351b404e207] # to [2e1e0ea14779fcb012dd867d674d5421c2079dbe] # # patch "tests/merge_a_project_into_a_subdirectory_of_an_unrelated_project/__driver__.lua" # from [de58b432ec25caef87549001c2acfd91266eab49] # to [b40636cde4c94c2ce63862e36f398a7bf6a6b644] # # patch "tests/merging_(add_a)_with_(add_a,_drop_a)/__driver__.lua" # from [9064976208573bdc0000840dd25233812c8d5462] # to [3f4e249683aefc5e4bea43428a972b0d11f5556e] # # patch "tests/merging_an_add_edge/__driver__.lua" # from [40999b2c29efbd8e9f98e7bdc7bb880c3a49f87b] # to [e8665054a7fba1366a2523f2b8a072e7e45579a5] # # patch "tests/multiple_version_committing/__driver__.lua" # from [96051cc6fa605ab2a5985e6253f35df7a47dcc7f] # to [6dd27e704a0a01fa5fe09e1f08db6b8825d82434] # # patch "tests/rename_dir_to_non-sibling/__driver__.lua" # from [4c5001e4672b8074bb5f4cb031657ed220908950] # to [1431ca822db0dfe690b2dface707fe280fedb8bd] # # patch "tests/update_updates_inodeprints/__driver__.lua" # from [409d78bbf7e90bbe1b0c4ff995252b67b93545b9] # to [c6d20658cf9a8e0677c58541b29d58c8ce1a1fcf] # # patch "testsuite.lua" # from [528db1ed137b479e223d9830d535348e677fb216] # to [1e9d4a110812a97d9e0cbad157a0a45a6fd94741] # ============================================================ --- cmd_ws_commit.cc 7c6997b990823c878080f41b0428b2543fa0c896 +++ cmd_ws_commit.cc ed7477439b4e84a91eb9e88973ced53efdc56cd0 @@ -573,46 +573,22 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY app.create_workspace(dir); - file_data data; - roster_t ros; - marking_map mm; + shared_ptr empty_roster = shared_ptr(new roster_t()); + roster_t current_roster; L(FL("checking out revision %s to directory %s") % ident % dir); - app.db.get_roster(ident, ros, mm); + app.db.get_roster(ident, current_roster); revision_t workrev; make_revision_for_workspace(ident, cset(), workrev); app.work.put_work_rev(workrev); - node_map const & nodes = ros.all_nodes(); - for (node_map::const_iterator i = nodes.begin(); - i != nodes.end(); ++i) - { - node_t node = i->second; - split_path sp; - ros.get_name(i->first, sp); - file_path path(sp); + cset checkout; + make_cset(*empty_roster, current_roster, checkout); + content_merge_workspace_adaptor wca(app, empty_roster); - if (is_dir_t(node)) - { - if (!workspace_root(sp)) - mkdir_p(path); - } - else - { - file_t file = downcast_to_file_t(node); - N(app.db.file_version_exists(file->content), - F("no file %s found in database for %s") - % file->content % path); + app.work.perform_content_update(checkout, wca); - file_data dat; - L(FL("writing file %s to %s") - % file->content % path); - app.db.get_file_version(file->content, dat); - write_localized_data(path, dat.inner(), app.lua); - } - } - app.work.update_any_attrs(); app.work.maybe_update_inodeprints(); guard.commit(); ============================================================ --- tests/(imp)_deleting_directories/__driver__.lua 1647676a62a47c09d1e343614b53860c7d588516 +++ tests/(imp)_deleting_directories/__driver__.lua 1a81b51ba2b483b8084f3e9af728b5787e41c921 @@ -22,6 +22,7 @@ revs.other = base_revision() commit() revs.other = base_revision() +remove("groundzero") revert_to(revs.base) -- update doesn't remove files... ============================================================ --- tests/(imp)_merge((patch_foo_a),_(delete_foo_))/__driver__.lua afd3d334f88c38e8483688bdb719f32f6a015d82 +++ tests/(imp)_merge((patch_foo_a),_(delete_foo_))/__driver__.lua 735444cd52e8bba4f174d3a7535bb6bd49022a24 @@ -6,11 +6,10 @@ base = base_revision() commit() base = base_revision() -rename("foo", "bar") check(mtn("drop", "--recursive", "foo"), 0, false, false) commit() -rename("bar", "foo") +remove("foo") revert_to(base) writefile("foo/a", "some other stuff") ============================================================ --- tests/a_tricky_cvs_repository_with_tags/__driver__.lua dfdb26fe85f27c266ea14a4bb3923e7b464c674a +++ tests/a_tricky_cvs_repository_with_tags/__driver__.lua cb5c43376f943d2fde1856547a7b199bf5b6c4d7 @@ -8,7 +8,7 @@ check(mtn("--branch=foo.bar", "cvs_impor check(get("e")) check(mtn("--branch=foo.bar", "cvs_import", "e"), 0, false, false) -check(mtn("--branch=foo.bar", "co")) +check(mtn("--branch=foo.bar", "checkout"), 0, false, true) check(indir("foo.bar", mtn("automate", "get_manifest_of")), 0, true) canonicalize("stdout") check(samefile("test.manifest", "stdout")) ============================================================ --- tests/attr_command_in_subdirs/__driver__.lua c5ad82d1ea7a87406263518dcf4f51f452d04acd +++ tests/attr_command_in_subdirs/__driver__.lua 1bb2e3d8056e7046da4c34bb6d5420e05c56996d @@ -18,6 +18,6 @@ rev = base_revision() -- see if they're right -check(mtn("checkout", "--revision", rev, "co-dir"), 0, true) +check(mtn("checkout", "--revision", rev, "co-dir"), 0, true, true) check(qgrep("test:test_attr:foo/foodata:true", "stdout")) check(qgrep("test:test_attr:foo/bar/bardata:false", "stdout")) ============================================================ --- tests/attr_set_get_commands/__driver__.lua e5473b58e745501b6697ad691536d228bf04f420 +++ tests/attr_set_get_commands/__driver__.lua d95e515541285d3a2e72d5408aa0a40cd875f55f @@ -19,13 +19,13 @@ remove("co-dir") -- Check checkouts. remove("co-dir") -check(mtn("checkout", "--revision", co_r_sha1, "co-dir"), 0, true) +check(mtn("checkout", "--revision", co_r_sha1, "co-dir"), 0, true, true) check(qgrep("test:test_attr:foo:true", "stdout")) check(qgrep("test:test_attr:a:1", "stdout")) -- Check updates. remove("co-dir") -check(mtn("checkout", "--revision", update_r_sha1, "co-dir"), 0, true) +check(mtn("checkout", "--revision", update_r_sha1, "co-dir"), 0, true, true) check(not qgrep("test:test_attr:foo", "stdout")) check(qgrep("test:test_attr:a:2", "stdout")) ============================================================ --- tests/checkout_creates__MTN_log/__driver__.lua e26ea58d3b51901258ed842a574ef017ecc681e6 +++ tests/checkout_creates__MTN_log/__driver__.lua 0cb0297db597db9d617a852e9fc5b8d04481172b @@ -11,7 +11,7 @@ check(mtn("--branch=testbranch", "--rcfi check(mtn("--branch=testbranch", "--rcfile=commit_log.lua", "commit"), 0, false, false) -check(mtn("--branch=testbranch", "co", "testbranch")) +check(mtn("--branch=testbranch", "checkout", "testbranch"), 0, false, true) check(exists("testbranch/_MTN/log")) check(fsize("_MTN/log") == 0) ============================================================ --- tests/diff_shows_renames/__driver__.lua 2edb1cfc2d463bca61cb16617c7710a3b413a1ca +++ tests/diff_shows_renames/__driver__.lua e410c09e7e75cfeed8334183ab2a47e6d1a675e7 @@ -15,6 +15,7 @@ check(qgrep("^\\+\\+\\+ foo/newbar\t", " -- involved. It should just use the pre- and post-roster to get the pre- and -- post-name. +remove("foo") revert_to(root_rev) check(mtn("mv", "-e", "foo", "newfoo"), 0, false, false) writefile("newfoo/bar", "version 2!\n") ============================================================ --- tests/importing_a_small,_real_cvs_repository/__driver__.lua 2cf3e46ca8cf7df7615f833d94847972f9fef5f5 +++ tests/importing_a_small,_real_cvs_repository/__driver__.lua ecf87ca6d14e630bbb4d1b81eb19765aa078835a @@ -6,7 +6,7 @@ check(mtn("--branch=foo.bar", "cvs_impor check(get("e")) check(mtn("--branch=foo.bar", "cvs_import", "e"), 0, false, false) -check(mtn("--branch=foo.bar.disasm-branch", "co")) +check(mtn("--branch=foo.bar.disasm-branch", "checkout"), 0, true, true) check(indir("foo.bar.disasm-branch", mtn("automate", "get_manifest_of")), 0, true) canonicalize("stdout") check(samefile("test.manifest", "stdout")) ============================================================ --- tests/merge((patch_foo_a),_(rename_foo__bar_))/__driver__.lua 3c8d9c94096b94a42aa6cc6d89d0a351b404e207 +++ tests/merge((patch_foo_a),_(rename_foo__bar_))/__driver__.lua 2e1e0ea14779fcb012dd867d674d5421c2079dbe @@ -10,7 +10,7 @@ commit() check(mtn("rename", "foo", "bar"), 0, false, false) commit() -rename("bar", "foo") +remove("bar") revert_to(base) writefile("foo/a", "some other stuff") commit() ============================================================ --- tests/merge_a_project_into_a_subdirectory_of_an_unrelated_project/__driver__.lua de58b432ec25caef87549001c2acfd91266eab49 +++ tests/merge_a_project_into_a_subdirectory_of_an_unrelated_project/__driver__.lua b40636cde4c94c2ce63862e36f398a7bf6a6b644 @@ -15,7 +15,7 @@ check(mtn("merge_into_dir", "b1", "b2", check(mtn("merge_into_dir", "b1", "b2", "dir/zuul"), 0, false, false) -check(mtn("checkout", "-b", "b2", "checkout")) +check(mtn("checkout", "-b", "b2", "checkout"), 0, false, true) check(exists("checkout/file2")) check(isdir("checkout/dir")) check(exists("checkout/dir/quux")) ============================================================ --- tests/merging_(add_a)_with_(add_a,_drop_a)/__driver__.lua 9064976208573bdc0000840dd25233812c8d5462 +++ tests/merging_(add_a)_with_(add_a,_drop_a)/__driver__.lua 3f4e249683aefc5e4bea43428a972b0d11f5556e @@ -66,7 +66,7 @@ remove("_MTN") -- check remove("_MTN") -check(mtn("--branch=branch.fork", "checkout", ".")) +check(mtn("--branch=branch.fork", "checkout", "."), 0, false, true) check(mtn("automate", "get_manifest_of"), 0, true) rename("stdout", "manifest") ============================================================ --- tests/merging_an_add_edge/__driver__.lua 40999b2c29efbd8e9f98e7bdc7bb880c3a49f87b +++ tests/merging_an_add_edge/__driver__.lua e8665054a7fba1366a2523f2b8a072e7e45579a5 @@ -14,6 +14,7 @@ commit() addfile("zz/testfile1", "added file") commit() +remove("zz") revert_to(anc) writefile("ancfile", "changed anc") ============================================================ --- tests/multiple_version_committing/__driver__.lua 96051cc6fa605ab2a5985e6253f35df7a47dcc7f +++ tests/multiple_version_committing/__driver__.lua 6dd27e704a0a01fa5fe09e1f08db6b8825d82434 @@ -23,6 +23,6 @@ for i = 1, 6 do canonicalize("stdout") check(samefile("stdout", "testfile")) remove("_MTN") - check(mtn("checkout", "--revision", rsha[i], "."), 0, true) + check(mtn("checkout", "--revision", rsha[i], "."), 0, true, true) check(sha1("testfile") == fsha[i]) end ============================================================ --- tests/rename_dir_to_non-sibling/__driver__.lua 4c5001e4672b8074bb5f4cb031657ed220908950 +++ tests/rename_dir_to_non-sibling/__driver__.lua 1431ca822db0dfe690b2dface707fe280fedb8bd @@ -38,6 +38,8 @@ left = base_revision() commit() left = base_revision() +rename("subdir1", "backup") + revert_to(base) check(mtn("rename", old_dir, new_dir), 0, false, false) @@ -47,7 +49,7 @@ check(mtn("merge", "--branch=testbranch" check(mtn("merge", "--branch=testbranch"), 0, false, false) -check(mtn("checkout", "--revision", base, "test_dir"), 0, false, false) +check(mtn("checkout", "--revision", base, "test_dir"), 0, false, true) check(indir("test_dir", mtn("--branch=testbranch", "update")), 0, false, false) merged = indir("test_dir", {base_revision})[1]() check(base ~= merged) @@ -56,15 +58,15 @@ check(samefile(new_dir .. "/preexisting" t_new_dir = "test_dir/" .. new_dir check(samefile(new_dir .. "/preexisting", t_new_dir .. "/preexisting")) -check(samefile(new_dir .. "/new-file", t_new_dir .. "/new-file")) +check(samefile("backup/the_dir/new-file", t_new_dir .. "/new-file")) check(samefile("rename-out-file", "test_dir/rename-out-file")) check(not exists(t_new_dir .. "/rename-out-file")) check(samefile("rename-out-dir/subfile", "test_dir/rename-out-dir/subfile")) check(not exists(t_new_dir .. "/rename-out-dir/subfile")) -check(samefile(new_dir .. "/rename-in-file", t_new_dir .. "/rename-in-file")) +check(samefile("backup/the_dir/rename-in-file", t_new_dir .. "/rename-in-file")) check(not exists("test_dir/rename-in-file")) -check(samefile(new_dir .. "/rename-in-dir/subfile", t_new_dir .. "/rename-in-dir/subfile")) +check(samefile("backup/the_dir/rename-in-dir/subfile", t_new_dir .. "/rename-in-dir/subfile")) check(not exists("test_dir/rename-in-dir/subfile")) check(not exists(t_new_dir .. "/doomed")) check(samefile("subdir1/bystander1", "test_dir/subdir1/bystander1")) +check(samefile("backup/bystander2", "test_dir/subdir1/bystander2")) -check(samefile("subdir1/bystander2", "test_dir/subdir1/bystander2")) ============================================================ --- tests/update_updates_inodeprints/__driver__.lua 409d78bbf7e90bbe1b0c4ff995252b67b93545b9 +++ tests/update_updates_inodeprints/__driver__.lua c6d20658cf9a8e0677c58541b29d58c8ce1a1fcf @@ -9,7 +9,7 @@ r1 = base_revision() commit() r1 = base_revision() -check(mtn("checkout", "--branch=testbranch", "--revision", r0, "td"), 0, false) +check(mtn("checkout", "--branch=testbranch", "--revision", r0, "td"), 0, false, true) writefile("td/_MTN/inodeprints") check(indir("td", mtn("update")), 0, false, false) check(fsize("td/_MTN/inodeprints") ~= 0) ============================================================ --- testsuite.lua 528db1ed137b479e223d9830d535348e677fb216 +++ testsuite.lua 1e9d4a110812a97d9e0cbad157a0a45a6fd94741 @@ -121,7 +121,7 @@ function probe_node(filename, rsha, fsha remove("_MTN.old") rename("_MTN", "_MTN.old") remove(filename) - check(mtn("checkout", "--revision", rsha, "."), 0, false) + check(mtn("checkout", "--revision", rsha, "."), 0, false, true) rename("_MTN.old/options", "_MTN") check(base_revision() == rsha) check(sha1(filename) == fsha) @@ -186,9 +186,9 @@ function revert_to(rev, branch, mt) rename("_MTN", "_MTN.old") if branch == nil then - check(mt("checkout", "--revision", rev, "."), 0, false) + check(mt("checkout", "--revision", rev, "."), 0, false, true) else - check(mt("checkout", "--branch", branch, "--revision", rev, "."), 0, false) + check(mt("checkout", "--branch", branch, "--revision", rev, "."), 0, false, true) end check(base_revision() == rev) end