# # # patch "database.cc" # from [028a641a0143b21e12962820312eb7b23031edbb] # to [be0b2e26f426978b7e52d8c72d04119b8b11bd9f] # # patch "monotone.texi" # from [5ed8ee22eb4196d8e80042fcbf1ca0e67794e1ef] # to [716525c1b9cd29f6f5fba15efbc76ed24b255c7c] # ============================================================ --- database.cc 028a641a0143b21e12962820312eb7b23031edbb +++ database.cc be0b2e26f426978b7e52d8c72d04119b8b11bd9f @@ -2578,7 +2578,8 @@ database::get_common_ancestors(std::set< for (set::const_iterator i = all_common_ancestors.begin(); i != all_common_ancestors.end(); ++i) { - // FIXME: where do these null'ed IDs come from? + // null id's here come from the empty parents of root revisions. + // these should not be considered as common ancestors and are skipped. if (null_id(*i)) continue; common_ancestors.insert(*i); } ============================================================ --- monotone.texi 5ed8ee22eb4196d8e80042fcbf1ca0e67794e1ef +++ monotone.texi 716525c1b9cd29f6f5fba15efbc76ed24b255c7c @@ -4296,6 +4296,13 @@ @section Bisecting search to fail or end on the wrong revision if the revision being searched for is skipped. +If the workspace is updated to some unrelated revision during a +bisection operation the @command{bisect update} command can be used to +update back to the next revision selected for bisection. This command +can also be used if a previous @command{bisect good}, @command{bisect +bad} or @command{bisect skip} command fails to update the workspace +due to the existence of conflicting unversioned paths. + The current status of the bisection operation and the next revision to be tested is reported by the @command{bisect status} command. This command can be run at any stage of the bisection operation to see how @@ -4306,10 +4313,13 @@ @section Bisecting update the workspace @option{branch} option. This may leave the workspace at a revision that is @emph{not} in the branch specified by the workspace @option{branch} option and cause subsequent commits to -be made to the wrong branch. Take care when committing new revisions -during a bisection operation and be sure to use the @command{bisect -reset} command once the bisection is complete to update the workspace -back to the revision from which the bisection started. +be made to the wrong branch. To help avoid this error the address@hidden command will indicate when the workspace branch does +not match any of the parent revision branches. Take care when +committing new revisions during a bisection operation and be sure to +use the @command{bisect reset} command once the bisection is complete +to update the workspace back to the revision from which the bisection +started. The bisection operation completes successfully when the last remaining revision is marked as ``bad''. If the last remaining revision is @@ -5348,27 +5358,51 @@ @section Workspace When running @command{pivot_root}, it is sometimes possible for @ref{Workspace Collisions} to occur. address@hidden mtn bisect good address@hidden ...] address@hidden mtn bisect good address@hidden ...] [--move-conflicting-paths] Mark the specified revisions as ``good'' for the current bisection operation. If no bisection operation is in progress a new bisection is initialized. If a bisection operation is in progress the next update target is selected and the workspace is updated to the selected revision. address@hidden mtn bisect bad address@hidden ...] +If the update is blocked by conflicting unversioned paths existing in +the workspace this command may be re-issued with the address@hidden option. Alternatively, the address@hidden update} command can be used with this option to update +the workspace and move the conflicting paths out of the way. + address@hidden mtn bisect bad address@hidden ...] [--move-conflicting-paths] Mark the specified revisions as ``bad'' for the current bisection operation. If no bisection operation is in progress a new bisection is initialized. If a bisection operation is in progress the next update target is selected and the workspace is updated to the selected revision. address@hidden mtn bisect skip address@hidden ...] +If the update is blocked by conflicting unversioned paths existing in +the workspace this command may be re-issued with the address@hidden option. Alternatively, the address@hidden update} command can be used with this option to update +the workspace and move the conflicting paths out of the way. + address@hidden mtn bisect skip address@hidden ...] [--move-conflicting-paths] Mark the specified revisions as ``skipped'' for the current bisection operation. If no bisection operation is in progress a new bisection is initialized. If a bisection operation is in progress the next update target is selected and the workspace is updated to the selected revision. +If the update is blocked by conflicting unversioned paths existing in +the workspace this command may be re-issued with the address@hidden option. Alternatively, the address@hidden update} command can be used with this option to update +the workspace and move the conflicting paths out of the way. + address@hidden mtn bisect update [--move-conflicting-paths] +Update the workspace to the next revision selected by the previous +bisect operation. This command can be useful when the previous bisect +operation fails to update the workspace because of conflicting +unversioned paths existing in the workspace. + @item mtn bisect status Report the status of the current bisection operation including the number of revisions that remain to be tested, the number of revisions