cherry-pick/revert: advise using --skip
The previous commit introduced a --skip flag for cherry-pick and revert. Update the advice messages, to tell users about this less cumbersome way of skipping commits. Also add tests to ensure everything is working fine. Signed-off-by: Rohit Ashiwal <rohit.ashiwal265@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									de81ca3f36
								
							
						
					
					
						commit
						dcb500dc16
					
				|  | @ -60,15 +60,18 @@ N_("The previous cherry-pick is now empty, possibly due to conflict resolution.\ | |||
| "\n"); | ||||
|  | ||||
| static const char empty_cherry_pick_advice_single[] = | ||||
| N_("Otherwise, please use 'git reset'\n"); | ||||
| N_("Otherwise, please use 'git cherry-pick --skip'\n"); | ||||
|  | ||||
| static const char empty_cherry_pick_advice_multi[] = | ||||
| N_("If you wish to skip this commit, use:\n" | ||||
| N_("and then use:\n" | ||||
| "\n" | ||||
| "    git reset\n" | ||||
| "    git cherry-pick --continue\n" | ||||
| "\n" | ||||
| "Then \"git cherry-pick --continue\" will resume cherry-picking\n" | ||||
| "the remaining commits.\n"); | ||||
| "to resume cherry-picking the remaining commits.\n" | ||||
| "If you wish to skip this commit, use:\n" | ||||
| "\n" | ||||
| "    git cherry-pick --skip\n" | ||||
| "\n"); | ||||
|  | ||||
| static const char *color_status_slots[] = { | ||||
| 	[WT_STATUS_HEADER]	  = "header", | ||||
|  |  | |||
|  | @ -2655,18 +2655,20 @@ static int create_seq_dir(struct repository *r) | |||
| 	enum replay_action action; | ||||
| 	const char *in_progress_error = NULL; | ||||
| 	const char *in_progress_advice = NULL; | ||||
| 	unsigned int advise_skip = file_exists(git_path_revert_head(r)) || | ||||
| 				file_exists(git_path_cherry_pick_head(r)); | ||||
|  | ||||
| 	if (!sequencer_get_last_command(r, &action)) { | ||||
| 		switch (action) { | ||||
| 		case REPLAY_REVERT: | ||||
| 			in_progress_error = _("revert is already in progress"); | ||||
| 			in_progress_advice = | ||||
| 			_("try \"git revert (--continue | --abort | --quit)\""); | ||||
| 			_("try \"git revert (--continue | %s--abort | --quit)\""); | ||||
| 			break; | ||||
| 		case REPLAY_PICK: | ||||
| 			in_progress_error = _("cherry-pick is already in progress"); | ||||
| 			in_progress_advice = | ||||
| 			_("try \"git cherry-pick (--continue | --abort | --quit)\""); | ||||
| 			_("try \"git cherry-pick (--continue | %s--abort | --quit)\""); | ||||
| 			break; | ||||
| 		default: | ||||
| 			BUG("unexpected action in create_seq_dir"); | ||||
|  | @ -2675,7 +2677,8 @@ static int create_seq_dir(struct repository *r) | |||
| 	if (in_progress_error) { | ||||
| 		error("%s", in_progress_error); | ||||
| 		if (advice_sequencer_in_use) | ||||
| 			advise("%s", in_progress_advice); | ||||
| 			advise(in_progress_advice, | ||||
| 				advise_skip ? "--skip | " : ""); | ||||
| 		return -1; | ||||
| 	} | ||||
| 	if (mkdir(git_path_seq_dir(), 0777) < 0) | ||||
|  |  | |||
|  | @ -172,6 +172,26 @@ test_expect_success 'check advice when we move HEAD by committing' ' | |||
| 	test_i18ncmp expect advice | ||||
| ' | ||||
|  | ||||
| test_expect_success 'selectively advise --skip while launching another sequence' ' | ||||
| 	pristine_detach initial && | ||||
| 	cat >expect <<-EOF && | ||||
| 	error: cherry-pick is already in progress | ||||
| 	hint: try "git cherry-pick (--continue | --skip | --abort | --quit)" | ||||
| 	fatal: cherry-pick failed | ||||
| 	EOF | ||||
| 	test_must_fail git cherry-pick picked..yetanotherpick && | ||||
| 	test_must_fail git cherry-pick picked..yetanotherpick 2>advice && | ||||
| 	test_i18ncmp expect advice && | ||||
| 	cat >expect <<-EOF && | ||||
| 	error: cherry-pick is already in progress | ||||
| 	hint: try "git cherry-pick (--continue | --abort | --quit)" | ||||
| 	fatal: cherry-pick failed | ||||
| 	EOF | ||||
| 	git reset --merge && | ||||
| 	test_must_fail git cherry-pick picked..yetanotherpick 2>advice && | ||||
| 	test_i18ncmp expect advice | ||||
| ' | ||||
|  | ||||
| test_expect_success 'allow skipping commit but not abort for a new history' ' | ||||
| 	pristine_detach initial && | ||||
| 	cat >expect <<-EOF && | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Rohit Ashiwal
						Rohit Ashiwal