# # # patch "monotone.texi" # from [671f22bb0656bb4eb0c3ce345218fead1c673941] # to [636cf37b232261de8c9231f2a2544876ae0776d4] # # patch "tests/move_conflicting_unversioned/__driver__.lua" # from [0fcbb94092da77624ee6372d2938b9dd8a9dc102] # to [2ef82656a9456618ce168b3c68716066ba983782] # # patch "work.cc" # from [4a27d0c0133f6cc04b06944afe080400095676e2] # to [e443c19964281fe2542a872d82ede6fca80ae5b1] # ============================================================ --- monotone.texi 671f22bb0656bb4eb0c3ce345218fead1c673941 +++ monotone.texi 636cf37b232261de8c9231f2a2544876ae0776d4 @@ -3426,7 +3426,7 @@ @section Workspace Collisions in your workspace contents. Furthermore, all workspace-changing commands have an option @option{--move-conflicting-paths}, which moves unversioned, but conflicting files and directories from the workspace into a new subdirectory -under _MTN/conflicts. This is useful if you want to ensure that an update +under _MTN/resolutions. This is useful if you want to ensure that an update always succeeds and you just want to move blocking paths out of the way. However, monotone cannot detect all kinds of failures and collisions in ============================================================ --- tests/move_conflicting_unversioned/__driver__.lua 0fcbb94092da77624ee6372d2938b9dd8a9dc102 +++ tests/move_conflicting_unversioned/__driver__.lua 2ef82656a9456618ce168b3c68716066ba983782 @@ -41,7 +41,8 @@ check(mtn("update", "--move-conflicting- -- moves them out of the way check(mtn("update", "--move-conflicting-paths"), 0, nil, true) -check(qgrep("moved conflicting", "stderr")) +check(qgrep("moved conflicting path", "stderr")) +check(qgrep("moved some conflicting files into", "stderr")) check(readfile("_MTN/resolutions/somedir/fourthfile")=="fourthfile content 2") remove("_MTN/resolutions") ============================================================ --- work.cc 4a27d0c0133f6cc04b06944afe080400095676e2 +++ work.cc e443c19964281fe2542a872d82ede6fca80ae5b1 @@ -1,4 +1,4 @@ -// Copyright (C) 2009 Stephen Leake +// Copyright (C) 2009, 2010 Stephen Leake // Copyright (C) 2002 Graydon Hoare // // This program is made available under the GNU GPL version 2.0 or @@ -637,7 +637,7 @@ workspace::get_bisect_info(vector(rev, parser.tok.in.made_from); bisect.push_back(make_pair(type, rid)); } @@ -693,7 +693,7 @@ workspace::put_bisect_info(vector::const_iterator i = bisect.begin(); + for (vector::const_iterator i = bisect.begin(); i != bisect.end(); ++i) { switch (i->first) @@ -2033,6 +2033,7 @@ workspace::perform_content_update(roster temp_node_id_source nis; set known; bookkeeping_path detached = path_for_detached_nids(); + bool moved_conflicting = false; E(!directory_exists(detached), origin::user, F("workspace is locked\n" @@ -2057,6 +2058,7 @@ workspace::perform_content_update(roster F("re-run this command with --move-conflicting-paths to move " "conflicting paths out of the way.")); move_conflicting_paths_into_bookkeeping(swt.get_conflicting_paths()); + moved_conflicting = true; } mkdir_p(detached); @@ -2083,6 +2085,9 @@ workspace::perform_content_update(roster } delete_dir_shallow(detached); + + if (moved_conflicting) + P(F("moved some conflicting files into %s/%s") % bookkeeping_root % "resolutions"); } // Local Variables: