12acf7e645
An intermediate commit whose net effect is already on HEAD (redundant change, or 3-way merged to HEAD by "theirs == ours") stopped the sequencer with "The previous cherry-pick is now empty" and was treated as a hard conflict. mergeTaskBranches aborted the whole range, marked the branch failed, and dropped every remaining non-overlapping commit. Add cherryPick.skip and cherryPick.isEmptyError to the git namespace, then in mergeTaskBranches' catch classify the failure before aborting: loop --skip while the error stderr matches the "now empty" phrase so consecutive empties advance the sequencer; fall through to abort/fail on the first non-empty error (genuine conflict with unmerged files). Fixes #4438