Skip to content

Commit

Permalink
Merge pull request #1107 from yuanyan3060/master
Browse files Browse the repository at this point in the history
<feature> add GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH support
  • Loading branch information
ehuss authored Dec 18, 2024
2 parents 7d5c020 + 9ae249f commit 1742e6b
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,12 @@ impl<'cb> CheckoutBuilder<'cb> {
self.flag(raw::GIT_CHECKOUT_CONFLICT_STYLE_DIFF3, on)
}

/// Treat paths specified in [`CheckoutBuilder::path`] as exact file paths
/// instead of as pathspecs.
pub fn disable_pathspec_match(&mut self, on: bool) -> &mut CheckoutBuilder<'cb> {
self.flag(raw::GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH, on)
}

/// Indicate whether to apply filters like CRLF conversion.
pub fn disable_filters(&mut self, disable: bool) -> &mut CheckoutBuilder<'cb> {
self.disable_filters = disable;
Expand All @@ -515,8 +521,13 @@ impl<'cb> CheckoutBuilder<'cb> {

/// Add a path to be checked out.
///
/// The path is a [pathspec] pattern, unless
/// [`CheckoutBuilder::disable_pathspec_match`] is set.
///
/// If no paths are specified, then all files are checked out. Otherwise
/// only these specified paths are checked out.
///
/// [pathspec]: https://git-scm.com/docs/gitglossary.html#Documentation/gitglossary.txt-aiddefpathspecapathspec
pub fn path<T: IntoCString>(&mut self, path: T) -> &mut CheckoutBuilder<'cb> {
let path = util::cstring_to_repo_path(path).unwrap();
self.path_ptrs.push(path.as_ptr());
Expand Down

0 comments on commit 1742e6b

Please sign in to comment.