diff options
| author | Russell Belfer <rb@github.com> | 2013-01-10 15:15:37 -0800 |
|---|---|---|
| committer | Russell Belfer <rb@github.com> | 2013-01-10 15:15:37 -0800 |
| commit | 40342bd2b654bed4a49fe84de36e19ba0fefb8b6 (patch) | |
| tree | e27a4fea5b34bae98b558526297232c58eebd0e4 /src/checkout.c | |
| parent | 404880b1bac746f15ca73bb57a5c034df6c6b630 (diff) | |
| download | libgit2-40342bd2b654bed4a49fe84de36e19ba0fefb8b6.tar.gz | |
Add GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH
This adds an option to checkout a la the diff option to turn off
fnmatch evaluation for pathspec entries. This can be useful to
make sure your "pattern" in really interpretted as an exact file
match only.
Diffstat (limited to 'src/checkout.c')
| -rw-r--r-- | src/checkout.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/checkout.c b/src/checkout.c index da22df680..4d6f99463 100644 --- a/src/checkout.c +++ b/src/checkout.c @@ -222,7 +222,9 @@ static int checkout_action_wd_only( git_checkout_notify_t notify = GIT_CHECKOUT_NOTIFY_NONE; if (!git_pathspec_match_path( - pathspec, wd->path, false, workdir->ignore_case)) + pathspec, wd->path, + (data->strategy & GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH) != 0, + workdir->ignore_case)) return 0; /* check if item is tracked in the index but not in the checkout diff */ @@ -1209,6 +1211,8 @@ int git_checkout_iterator( GIT_DIFF_INCLUDE_TYPECHANGE | GIT_DIFF_INCLUDE_TYPECHANGE_TREES | GIT_DIFF_SKIP_BINARY_CHECK; + if (data.opts.checkout_strategy & GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH) + diff_opts.flags |= GIT_DIFF_DISABLE_PATHSPEC_MATCH; if (data.opts.paths.count > 0) diff_opts.pathspec = data.opts.paths; |
