]>
git.proxmox.com Git - libgit2.git/blob - src/ignore.h
2 * Copyright (C) the libgit2 contributors. All rights reserved.
4 * This file is part of libgit2, distributed under the GNU GPL v2 with
5 * a Linking Exception. For full terms see the included COPYING file.
7 #ifndef INCLUDE_ignore_h__
8 #define INCLUDE_ignore_h__
12 #include "repository.h"
14 #include "attr_file.h"
16 #define GIT_IGNORE_FILE ".gitignore"
17 #define GIT_IGNORE_FILE_INREPO "exclude"
18 #define GIT_IGNORE_FILE_XDG "ignore"
20 /* The git_ignores structure maintains three sets of ignores:
22 * - per directory ignores
23 * - global ignores (at lower priority than the others)
24 * As you traverse from one directory to another, you can push and pop
25 * directories onto git_ignores list efficiently.
29 git_str dir
; /* current directory reflected in ign_path */
30 git_attr_file
*ign_internal
;
32 git_vector ign_global
;
33 size_t dir_root
; /* offset in dir to repo root */
38 extern int git_ignore__for_path(
39 git_repository
*repo
, const char *path
, git_ignores
*ign
);
41 extern int git_ignore__push_dir(git_ignores
*ign
, const char *dir
);
43 extern int git_ignore__pop_dir(git_ignores
*ign
);
45 extern void git_ignore__free(git_ignores
*ign
);
48 GIT_IGNORE_UNCHECKED
= -2,
49 GIT_IGNORE_NOTFOUND
= -1,
54 extern int git_ignore__lookup(int *out
, git_ignores
*ign
, const char *path
, git_dir_flag dir_flag
);
56 /* command line Git sometimes generates an error message if given a
57 * pathspec that contains an exact match to an ignored file (provided
58 * --force isn't also given). This makes it easy to check it that has
59 * happened. Returns GIT_EINVALIDSPEC if the pathspec contains ignored
60 * exact matches (that are not already present in the index).
62 extern int git_ignore__check_pathspec_for_exact_ignores(
63 git_repository
*repo
, git_vector
*pathspec
, bool no_fnmatch
);