Add or update index entries matching files in the working directory.
This method will fail in bare index instances.
The pathspec
is a list of file names or shell glob patterns that will
matched against files in the repository's working directory. Each file
that matches will be added to the index (either updating an existing
entry or adding a new entry). You can disable glob expansion and force
exact matching with the GIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH
flag.
Files that are ignored will be skipped (unlike git_index_add_bypath
).
If a file is already tracked in the index, then it will be updated
even if it is ignored. Pass the GIT_INDEX_ADD_FORCE
flag to
skip the checking of ignore rules.
To emulate git add -A
and generate an error if the pathspec contains
the exact path of an ignored file (when not using FORCE), add the
GIT_INDEX_ADD_CHECK_PATHSPEC
flag. This checks that each entry
in the pathspec
that is an exact match to a filename on disk is
either not ignored or already in the index. If this check fails, the
function will return GIT_EINVALIDSPEC.
To emulate git add -A
with the "dry-run" option, just use a callback
function that always returns a positive value. See below for details.
If any files are currently the result of a merge conflict, those files will no longer be marked as conflicting. The data about the conflicts will be moved to the "resolve undo" (REUC) section.
If you provide a callback function, it will be invoked on each matching item in the working directory immediately before it is added to / updated in the index. Returning zero will add the item to the index, greater than zero will skip the item, and less than zero will abort the scan and cause GIT_EUSER to be returned.
combination of git_index_add_option_t flags
notification callback for each added/updated path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, < 0 to abort scan.
payload passed through to callback function
0 or an error code