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/gitignore/dir.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/gitignore/dir.go')
-rw-r--r-- | plumbing/format/gitignore/dir.go | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/plumbing/format/gitignore/dir.go b/plumbing/format/gitignore/dir.go index 7cea50c..15bc9c7 100644 --- a/plumbing/format/gitignore/dir.go +++ b/plumbing/format/gitignore/dir.go @@ -13,13 +13,14 @@ import ( ) const ( - commentPrefix = "#" - coreSection = "core" - excludesfile = "excludesfile" - gitDir = ".git" - gitignoreFile = ".gitignore" - gitconfigFile = ".gitconfig" - systemFile = "/etc/gitconfig" + commentPrefix = "#" + coreSection = "core" + excludesfile = "excludesfile" + gitDir = ".git" + gitignoreFile = ".gitignore" + gitconfigFile = ".gitconfig" + systemFile = "/etc/gitconfig" + infoExcludeFile = gitDir + "/info/exclude" ) // readIgnoreFile reads a specific git ignore file. @@ -42,10 +43,14 @@ func readIgnoreFile(fs billy.Filesystem, path []string, ignoreFile string) (ps [ return } -// ReadPatterns reads gitignore patterns recursively traversing through the directory -// structure. The result is in the ascending order of priority (last higher). +// ReadPatterns reads the .git/info/exclude and then the gitignore patterns +// recursively traversing through the directory structure. The result is in +// the ascending order of priority (last higher). func ReadPatterns(fs billy.Filesystem, path []string) (ps []Pattern, err error) { - ps, _ = readIgnoreFile(fs, path, gitignoreFile) + ps, _ = readIgnoreFile(fs, path, infoExcludeFile) + + subps, _ := readIgnoreFile(fs, path, gitignoreFile) + ps = append(ps, subps...) var fis []os.FileInfo fis, err = fs.ReadDir(fs.Join(path...)) |