/** * Apply a single stashed state from the stash list and remove it from * the list if successful. * * @param repo S3 class git_repository that contains the stash * @param index The index to the stash. 0 is the most recent stash. * @return R_NilValue */ SEXP git2r_stash_pop(SEXP repo, SEXP index) { int error; git_repository *repository = NULL; if (git2r_arg_check_integer_gte_zero(index)) git2r_error(__func__, NULL, "'index'", git2r_err_integer_gte_zero_arg); repository = git2r_repository_open(repo); if (!repository) git2r_error(__func__, NULL, git2r_err_invalid_repository, NULL); error = git_stash_pop(repository, INTEGER(index)[0], NULL); if (error == GIT_ENOTFOUND) error = 0; git_repository_free(repository); if (error) git2r_error(__func__, GIT2R_ERROR_LAST(), NULL, NULL); return R_NilValue; }
void test_stash_apply__pop(void) { cl_git_pass(git_stash_pop(repo, 0, NULL)); cl_git_fail_with(git_stash_pop(repo, 0, NULL), GIT_ENOTFOUND); }