git_index_add_all

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 be 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_option_t.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_option_t.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_option_t.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_error_code.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 return that value to the caller.

Parameters

index libgit2_d.types.git_index*

an existing index object

pathspec const(libgit2_d.strarray.git_strarray)*

array of path patterns

flags uint

combination of git_index_add_option_t flags

callback .git_index_matched_path_cb

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 void*

payload passed through to callback function

Return Value

Type: int

0 on success, negative callback return value, or error code

Meta