diff options
author | Paul T <paul.t@gembaadvantage.com> | 2021-12-15 06:31:49 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-15 06:31:49 +0000 |
commit | 53a714bdc90026135e2f2ada1c4d6c925b2733cd (patch) | |
tree | 1fe7dc9f5974bc6e5a65e805b96e3a36be3f573e /plumbing/format/index/index.go | |
parent | aba274ca7daf59d07d9559e6f99ca18ef0b78c7b (diff) | |
parent | f0b111ab70e4e90013658b0835929b2083902017 (diff) | |
download | go-git-53a714bdc90026135e2f2ada1c4d6c925b2733cd.tar.gz |
Merge branch 'go-git:master' into master
Diffstat (limited to 'plumbing/format/index/index.go')
-rw-r--r-- | plumbing/format/index/index.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/plumbing/format/index/index.go b/plumbing/format/index/index.go index 649416a..f4c7647 100644 --- a/plumbing/format/index/index.go +++ b/plumbing/format/index/index.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "path/filepath" + "strings" "time" "github.com/go-git/go-git/v5/plumbing" @@ -211,3 +212,20 @@ type EndOfIndexEntry struct { // their contents). Hash plumbing.Hash } + +// SkipUnless applies patterns in the form of A, A/B, A/B/C +// to the index to prevent the files from being checked out +func (i *Index) SkipUnless(patterns []string) { + for _, e := range i.Entries { + var include bool + for _, pattern := range patterns { + if strings.HasPrefix(e.Name, pattern) { + include = true + break + } + } + if !include { + e.SkipWorktree = true + } + } +} |