summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2014-03-04 10:21:41 -0800
committerRussell Belfer <rb@github.com>2014-03-04 10:21:41 -0800
commit0a62caf4e4927cbf74f40d8a2cb44b84267a30da (patch)
tree49bf96817a39ed312956d826741fcf4e2b2fe556 /src
parentc2e8374574cc0cf0f30f6a26493e2ce407740020 (diff)
parent4636ca9391974aa0c6251717cde94b5aea296b77 (diff)
downloadlibgit2-0a62caf4e4927cbf74f40d8a2cb44b84267a30da.tar.gz
Merge pull request #2155 from jacquesg/stash-save-remove-ignored
Remove ignored files from the working directory if they were stashed
Diffstat (limited to 'src')
-rw-r--r--src/stash.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/stash.c b/src/stash.c
index b1dd87b22..0c9101294 100644
--- a/src/stash.c
+++ b/src/stash.c
@@ -465,7 +465,8 @@ static int ensure_there_are_changes_to_stash(
static int reset_index_and_workdir(
git_repository *repo,
git_commit *commit,
- bool remove_untracked)
+ bool remove_untracked,
+ bool remove_ignored)
{
git_checkout_opts opts = GIT_CHECKOUT_OPTS_INIT;
@@ -474,6 +475,9 @@ static int reset_index_and_workdir(
if (remove_untracked)
opts.checkout_strategy |= GIT_CHECKOUT_REMOVE_UNTRACKED;
+ if (remove_ignored)
+ opts.checkout_strategy |= GIT_CHECKOUT_REMOVE_IGNORED;
+
return git_checkout_tree(repo, (git_object *)commit, &opts);
}
@@ -532,7 +536,8 @@ int git_stash_save(
if ((error = reset_index_and_workdir(
repo,
((flags & GIT_STASH_KEEP_INDEX) != 0) ? i_commit : b_commit,
- (flags & GIT_STASH_INCLUDE_UNTRACKED) != 0)) < 0)
+ (flags & GIT_STASH_INCLUDE_UNTRACKED) != 0,
+ (flags & GIT_STASH_INCLUDE_IGNORED) != 0)) < 0)
goto cleanup;
cleanup: