rebase: do not attempt to remove startup_info->original_cwd
Since rebase spawns a `checkout` subprocess, make sure we run that from the startup_info->original_cwd directory, so that the checkout process knows to protect that directory. Acked-by: Derrick Stolee <stolee@gmail.com> Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									c65744e7d7
								
							
						
					
					
						commit
						bc3ae46b42
					
				|  | @ -4228,6 +4228,8 @@ static int run_git_checkout(struct repository *r, struct replay_opts *opts, | |||
|  | ||||
| 	cmd.git_cmd = 1; | ||||
|  | ||||
| 	if (startup_info->original_cwd) | ||||
| 		cmd.dir = startup_info->original_cwd; | ||||
| 	strvec_push(&cmd.args, "checkout"); | ||||
| 	strvec_push(&cmd.args, commit); | ||||
| 	strvec_pushf(&cmd.env_array, GIT_REFLOG_ACTION "=%s", action); | ||||
|  |  | |||
|  | @ -166,11 +166,11 @@ test_expect_success 'cherry-pick fails if cwd needs to be removed' ' | |||
| ' | ||||
|  | ||||
| test_expect_success 'rebase does not clean cwd incidentally' ' | ||||
| 	test_incidental_dir_removal failure git rebase reverted | ||||
| 	test_incidental_dir_removal success git rebase reverted | ||||
| ' | ||||
|  | ||||
| test_expect_success 'rebase fails if cwd needs to be removed' ' | ||||
| 	test_required_dir_removal failure git rebase fd_conflict | ||||
| 	test_required_dir_removal success git rebase fd_conflict | ||||
| ' | ||||
|  | ||||
| test_expect_success 'revert does not clean cwd incidentally' ' | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Elijah Newren
						Elijah Newren