summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2013-09-22 06:41:29 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2013-09-22 06:41:29 +0200
commit7c9c3269261247e948782a433f4cf4bcc704e03c (patch)
tree65d12a0097e4345446bcc0711b6e1b71c2c92a9b
parentba1fd7df2bcab16c9881be4e5f6dbe8d1e1d2524 (diff)
downloadlibgit2-7c9c3269261247e948782a433f4cf4bcc704e03c.tar.gz
generated docs
-rw-r--r--HEAD.json2
-rw-r--r--ex/HEAD/add.html203
-rw-r--r--ex/HEAD/cat-file.html1
-rw-r--r--ex/HEAD/diff.html1
-rw-r--r--ex/HEAD/general.html1
-rw-r--r--ex/HEAD/init.html1
-rw-r--r--ex/HEAD/log.html1
-rw-r--r--ex/HEAD/network/clone.html1
-rw-r--r--ex/HEAD/network/common.html1
-rw-r--r--ex/HEAD/network/fetch.html1
-rw-r--r--ex/HEAD/network/git2.html1
-rw-r--r--ex/HEAD/network/index-pack.html1
-rw-r--r--ex/HEAD/network/ls-remote.html1
-rw-r--r--ex/HEAD/rev-list.html1
-rw-r--r--ex/HEAD/rev-parse.html1
-rw-r--r--ex/HEAD/showindex.html5
-rw-r--r--ex/HEAD/status.html3
-rw-r--r--project.json2
18 files changed, 225 insertions, 3 deletions
diff --git a/HEAD.json b/HEAD.json
index 674419447..b4e321ce3 100644
--- a/HEAD.json
+++ b/HEAD.json
@@ -1 +1 @@
-{"files":[{"file":"attr.h","functions":["git_attr_get","git_attr_get_many","git_attr_foreach","git_attr_cache_flush","git_attr_add_macro"],"meta":{"brief":"Git attribute management routines","defgroup":"git_attr Git attribute management routines","ingroup":"Git","comments":"\n"},"lines":240},{"file":"blob.h","functions":["git_blob_lookup","git_blob_lookup_prefix","git_blob_free","git_blob_id","git_blob_owner","git_blob_rawcontent","git_blob_rawsize","git_blob_create_fromworkdir","git_blob_create_fromdisk","git_blob_create_fromchunks","git_blob_create_frombuffer","git_blob_is_binary"],"meta":{"brief":"Git blob load and write routines","defgroup":"git_blob Git blob load and write routines","ingroup":"Git","comments":"\n"},"lines":195},{"file":"branch.h","functions":["git_branch_create","git_branch_delete","git_branch_foreach","git_branch_move","git_branch_lookup","git_branch_name","git_branch_upstream","git_branch_set_upstream","git_branch_upstream_name","git_branch_is_head","git_branch_remote_name"],"meta":{"brief":"Git branch parsing routines","defgroup":"git_branch Git branch management","ingroup":"Git","comments":"\n"},"lines":253},{"file":"checkout.h","functions":["git_checkout_head","git_checkout_index","git_checkout_tree"],"meta":{"brief":"Git checkout routines","defgroup":"git_checkout Git checkout routines","ingroup":"Git","comments":"\n"},"lines":292},{"file":"clone.h","functions":["git_clone"],"meta":{"brief":"Git cloning routines","defgroup":"git_clone Git cloning routines","ingroup":"Git","comments":"\n"},"lines":110},{"file":"commit.h","functions":["git_commit_lookup","git_commit_lookup_prefix","git_commit_free","git_commit_id","git_commit_owner","git_commit_message_encoding","git_commit_message","git_commit_time","git_commit_time_offset","git_commit_committer","git_commit_author","git_commit_raw_header","git_commit_tree","git_commit_tree_id","git_commit_parentcount","git_commit_parent","git_commit_parent_id","git_commit_nth_gen_ancestor","git_commit_create","git_commit_create_v"],"meta":{"brief":"Git commit parsing, formatting routines","defgroup":"git_commit Git commit parsing, formatting routines","ingroup":"Git","comments":"\n"},"lines":303},{"file":"common.h","functions":["git_libgit2_version","git_libgit2_capabilities","git_libgit2_opts"],"meta":{"brief":"Git common platform definitions","defgroup":"git_common Git common platform definitions","ingroup":"Git","comments":"\n"},"lines":222},{"file":"config.h","functions":["git_config_find_global","git_config_find_xdg","git_config_find_system","git_config_open_default","git_config_new","git_config_add_file_ondisk","git_config_open_ondisk","git_config_open_level","git_config_open_global","git_config_refresh","git_config_free","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_bool","git_config_get_string","git_config_get_multivar_foreach","git_config_multivar_iterator_new","git_config_next","git_config_iterator_free","git_config_set_int32","git_config_set_int64","git_config_set_bool","git_config_set_string","git_config_set_multivar","git_config_delete_entry","git_config_foreach","git_config_iterator_new","git_config_iterator_glob_new","git_config_foreach_match","git_config_get_mapped","git_config_lookup_map_value","git_config_parse_bool","git_config_parse_int32","git_config_parse_int64","git_config_backend_foreach_match"],"meta":{"brief":"Git config management routines","defgroup":"git_config Git config management routines","ingroup":"Git","comments":"\n"},"lines":610},{"file":"cred_helpers.h","functions":["git_cred_userpass"],"meta":{"brief":"Utility functions for credential management","defgroup":"git_cred_helpers credential management helpers","ingroup":"Git","comments":"\n"},"lines":53},{"file":"diff.h","functions":["git_diff_list_free","git_diff_tree_to_tree","git_diff_tree_to_index","git_diff_index_to_workdir","git_diff_tree_to_workdir","git_diff_merge","git_diff_find_similar","git_diff_foreach","git_diff_print_compact","git_diff_print_raw","git_diff_status_char","git_diff_print_patch","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_is_sorted_icase","git_diff_get_patch","git_diff_patch_free","git_diff_patch_delta","git_diff_patch_num_hunks","git_diff_patch_line_stats","git_diff_patch_get_hunk","git_diff_patch_num_lines_in_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_size","git_diff_patch_print","git_diff_patch_to_str","git_diff_blobs","git_diff_patch_from_blobs","git_diff_blob_to_buffer","git_diff_patch_from_blob_and_buffer"],"meta":{"brief":"Git tree and file differencing routines.","ingroup":"Git","comments":"\n"},"lines":1133},{"file":"errors.h","functions":["giterr_last","giterr_clear","giterr_set_str","giterr_set_oom"],"meta":{"brief":"Git error handling routines and variables","ingroup":"Git","comments":"\n"},"lines":121},{"file":"graph.h","functions":["git_graph_ahead_behind"],"meta":{"brief":"Git graph traversal routines","defgroup":"git_revwalk Git graph traversal routines","ingroup":"Git","comments":"\n"},"lines":41},{"file":"ignore.h","functions":["git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored"],"meta":{},"lines":78},{"file":"index.h","functions":["git_index_open","git_index_new","git_index_free","git_index_owner","git_index_caps","git_index_set_caps","git_index_read","git_index_write","git_index_path","git_index_read_tree","git_index_write_tree","git_index_write_tree_to","git_index_entrycount","git_index_clear","git_index_get_byindex","git_index_get_bypath","git_index_remove","git_index_remove_directory","git_index_add","git_index_entry_stage","git_index_add_bypath","git_index_remove_bypath","git_index_add_all","git_index_remove_all","git_index_update_all","git_index_find","git_index_conflict_add","git_index_conflict_get","git_index_conflict_remove","git_index_conflict_cleanup","git_index_has_conflicts","git_index_conflict_iterator_new","git_index_conflict_next","git_index_conflict_iterator_free"],"meta":{"brief":"Git index parsing and manipulation routines","defgroup":"git_index Git index parsing and manipulation routines","ingroup":"Git","comments":"\n"},"lines":674},{"file":"indexer.h","functions":["git_indexer_stream_new","git_indexer_stream_add","git_indexer_stream_finalize","git_indexer_stream_hash","git_indexer_stream_free"],"meta":{},"lines":70},{"file":"inttypes.h","functions":[],"meta":{},"lines":309},{"file":"merge.h","functions":["git_merge_base","git_merge_base_many","git_merge_head_from_ref","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_free","git_merge_trees"],"meta":{"brief":"Git merge routines","defgroup":"git_merge Git merge routines","ingroup":"Git","comments":"\n"},"lines":173},{"file":"message.h","functions":["git_message_prettify"],"meta":{"brief":"Git message management routines","ingroup":"Git","comments":"\n"},"lines":49},{"file":"net.h","functions":[],"meta":{"brief":"Git networking declarations","ingroup":"Git","comments":"\n"},"lines":53},{"file":"notes.h","functions":["git_note_iterator_new","git_note_iterator_free","git_note_next","git_note_read","git_note_message","git_note_oid","git_note_create","git_note_remove","git_note_free","git_note_default_ref","git_note_foreach"],"meta":{"brief":"Git notes management routines","defgroup":"git_note Git notes management routines","ingroup":"Git","comments":"\n"},"lines":202},{"file":"object.h","functions":["git_object_lookup","git_object_lookup_prefix","git_object_id","git_object_type","git_object_owner","git_object_free","git_object_type2string","git_object_string2type","git_object_typeisloose","git_object__size","git_object_peel","git_object_dup"],"meta":{"brief":"Git revision object management routines","defgroup":"git_object Git revision object management routines","ingroup":"Git","comments":"\n"},"lines":203},{"file":"odb.h","functions":["git_odb_new","git_odb_open","git_odb_add_disk_alternate","git_odb_free","git_odb_read","git_odb_read_prefix","git_odb_read_header","git_odb_exists","git_odb_refresh","git_odb_foreach","git_odb_write","git_odb_open_wstream","git_odb_stream_write","git_odb_stream_finalize_write","git_odb_stream_read","git_odb_stream_free","git_odb_open_rstream","git_odb_write_pack","git_odb_hash","git_odb_hashfile","git_odb_object_free","git_odb_object_id","git_odb_object_data","git_odb_object_size","git_odb_object_type","git_odb_add_backend","git_odb_add_alternate","git_odb_num_backends","git_odb_get_backend"],"meta":{"brief":"Git object database routines","defgroup":"git_odb Git object database routines","ingroup":"Git","comments":"\n"},"lines":461},{"file":"odb_backend.h","functions":["git_odb_backend_pack","git_odb_backend_loose","git_odb_backend_one_pack"],"meta":{"brief":"Git custom backend functions","defgroup":"git_odb Git object database routines","ingroup":"Git","comments":"\n"},"lines":119},{"file":"oid.h","functions":["git_oid_fromstr","git_oid_fromstrp","git_oid_fromstrn","git_oid_fromraw","git_oid_fmt","git_oid_nfmt","git_oid_pathfmt","git_oid_allocfmt","git_oid_tostr","git_oid_cpy","git_oid_cmp","git_oid_equal","git_oid_ncmp","git_oid_streq","git_oid_strcmp","git_oid_iszero","git_oid_shorten_new","git_oid_shorten_add","git_oid_shorten_free"],"meta":{"brief":"Git object id routines","defgroup":"git_oid Git object id routines","ingroup":"Git","comments":"\n"},"lines":268},{"file":"pack.h","functions":["git_packbuilder_new","git_packbuilder_set_threads","git_packbuilder_insert","git_packbuilder_insert_tree","git_packbuilder_insert_commit","git_packbuilder_write","git_packbuilder_foreach","git_packbuilder_object_count","git_packbuilder_written","git_packbuilder_free"],"meta":{"brief":"Git pack management routines","ingroup":"Git","comments":"\n"},"lines":161},{"file":"pathspec.h","functions":["git_pathspec_new","git_pathspec_free","git_pathspec_matches_path","git_pathspec_match_workdir","git_pathspec_match_index","git_pathspec_match_tree","git_pathspec_match_diff","git_pathspec_match_list_free","git_pathspec_match_list_entrycount","git_pathspec_match_list_entry","git_pathspec_match_list_diff_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_failed_entry"],"meta":{},"lines":260},{"file":"push.h","functions":["git_push_new","git_push_set_options","git_push_add_refspec","git_push_update_tips","git_push_finish","git_push_unpack_ok","git_push_status_foreach","git_push_free"],"meta":{"brief":"Git push management functions","defgroup":"git_push push management functions","ingroup":"Git","comments":"\n"},"lines":131},{"file":"refdb.h","functions":["git_refdb_new","git_refdb_open","git_refdb_compress","git_refdb_free"],"meta":{"brief":"Git custom refs backend functions","defgroup":"git_refdb Git custom refs backend API","ingroup":"Git","comments":"\n"},"lines":68},{"file":"reflog.h","functions":["git_reflog_read","git_reflog_write","git_reflog_append","git_reflog_rename","git_reflog_delete","git_reflog_entrycount","git_reflog_entry_byindex","git_reflog_drop","git_reflog_entry_id_old","git_reflog_entry_id_new","git_reflog_entry_committer","git_reflog_entry_message","git_reflog_free"],"meta":{"brief":"Git reflog management routines","defgroup":"git_reflog Git reflog management routines","ingroup":"Git","comments":"\n"},"lines":167},{"file":"refs.h","functions":["git_reference_lookup","git_reference_name_to_id","git_reference_dwim","git_reference_symbolic_create","git_reference_create","git_reference_target","git_reference_target_peel","git_reference_symbolic_target","git_reference_type","git_reference_name","git_reference_resolve","git_reference_owner","git_reference_symbolic_set_target","git_reference_set_target","git_reference_rename","git_reference_delete","git_reference_list","git_reference_foreach","git_reference_free","git_reference_cmp","git_reference_iterator_new","git_reference_iterator_glob_new","git_reference_next","git_reference_iterator_free","git_reference_foreach_glob","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_normalize_name","git_reference_peel","git_reference_is_valid_name","git_reference_shorthand"],"meta":{"brief":"Git reference management routines","defgroup":"git_reference Git reference management routines","ingroup":"Git","comments":"\n"},"lines":562},{"file":"refspec.h","functions":["git_refspec_src","git_refspec_dst","git_refspec_string","git_refspec_force","git_refspec_direction","git_refspec_src_matches","git_refspec_dst_matches","git_refspec_transform","git_refspec_rtransform"],"meta":{"brief":"Git refspec attributes","defgroup":"git_refspec Git refspec attributes","ingroup":"Git","comments":"\n"},"lines":105},{"file":"remote.h","functions":["git_remote_create","git_remote_create_inmemory","git_remote_load","git_remote_save","git_remote_owner","git_remote_name","git_remote_url","git_remote_pushurl","git_remote_set_url","git_remote_set_pushurl","git_remote_add_fetch","git_remote_get_fetch_refspecs","git_remote_add_push","git_remote_get_push_refspecs","git_remote_clear_refspecs","git_remote_refspec_count","git_remote_get_refspec","git_remote_remove_refspec","git_remote_connect","git_remote_ls","git_remote_download","git_remote_connected","git_remote_stop","git_remote_disconnect","git_remote_free","git_remote_update_tips","git_remote_valid_url","git_remote_supported_url","git_remote_list","git_remote_check_cert","git_remote_set_cred_acquire_cb","git_remote_set_transport","git_remote_set_callbacks","git_remote_stats","git_remote_autotag","git_remote_set_autotag","git_remote_rename","git_remote_update_fetchhead","git_remote_set_update_fetchhead","git_remote_is_valid_name"],"meta":{"brief":"Git remote management functions","defgroup":"git_remote remote management functions","ingroup":"Git","comments":"\n"},"lines":505},{"file":"repository.h","functions":["git_repository_open","git_repository_wrap_odb","git_repository_discover","git_repository_open_ext","git_repository_open_bare","git_repository_free","git_repository_init","git_repository_init_ext","git_repository_head","git_repository_head_detached","git_repository_head_orphan","git_repository_is_empty","git_repository_path","git_repository_workdir","git_repository_set_workdir","git_repository_is_bare","git_repository_config","git_repository_odb","git_repository_refdb","git_repository_index","git_repository_message","git_repository_message_remove","git_repository_merge_cleanup","git_repository_fetchhead_foreach","git_repository_mergehead_foreach","git_repository_hashfile","git_repository_set_head","git_repository_set_head_detached","git_repository_detach_head","git_repository_state","git_repository_set_namespace","git_repository_get_namespace","git_repository_is_shallow"],"meta":{"brief":"Git repository management routines","defgroup":"git_repository Git repository management routines","ingroup":"Git","comments":"\n"},"lines":675},{"file":"reset.h","functions":["git_reset","git_reset_default"],"meta":{"brief":"Git reset management routines","ingroup":"Git","comments":"\n"},"lines":81},{"file":"revparse.h","functions":["git_revparse_single","git_revparse_ext","git_revparse"],"meta":{"brief":"Git revision parsing routines","defgroup":"git_revparse Git revision parsing routines","ingroup":"Git","comments":"\n"},"lines":113},{"file":"revwalk.h","functions":["git_revwalk_new","git_revwalk_reset","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_push_ref","git_revwalk_hide_ref","git_revwalk_next","git_revwalk_sorting","git_revwalk_push_range","git_revwalk_simplify_first_parent","git_revwalk_free","git_revwalk_repository"],"meta":{"brief":"Git revision traversal routines","defgroup":"git_revwalk Git revision traversal routines","ingroup":"Git","comments":"\n"},"lines":260},{"file":"signature.h","functions":["git_signature_new","git_signature_now","git_signature_default","git_signature_dup","git_signature_free"],"meta":{"brief":"Git signature creation","defgroup":"git_signature Git signature creation","ingroup":"Git","comments":"\n"},"lines":89},{"file":"stash.h","functions":["git_stash_save","git_stash_foreach","git_stash_drop"],"meta":{"brief":"Git stash management routines","ingroup":"Git","comments":"\n"},"lines":121},{"file":"status.h","functions":["git_status_foreach","git_status_foreach_ext","git_status_file","git_status_list_new","git_status_list_entrycount","git_status_byindex","git_status_list_free","git_status_should_ignore"],"meta":{"brief":"Git file status routines","defgroup":"git_status Git file status routines","ingroup":"Git","comments":"\n"},"lines":318},{"file":"stdint.h","functions":[],"meta":{},"lines":247},{"file":"strarray.h","functions":["git_strarray_free","git_strarray_copy"],"meta":{"brief":"Git string array routines","defgroup":"git_strarray Git string array routines","ingroup":"Git","comments":"\n"},"lines":59},{"file":"submodule.h","functions":["git_submodule_lookup","git_submodule_foreach","git_submodule_add_setup","git_submodule_add_finalize","git_submodule_add_to_index","git_submodule_save","git_submodule_owner","git_submodule_name","git_submodule_path","git_submodule_url","git_submodule_set_url","git_submodule_index_id","git_submodule_head_id","git_submodule_wd_id","git_submodule_ignore","git_submodule_set_ignore","git_submodule_update","git_submodule_set_update","git_submodule_fetch_recurse_submodules","git_submodule_set_fetch_recurse_submodules","git_submodule_init","git_submodule_sync","git_submodule_open","git_submodule_reload","git_submodule_reload_all","git_submodule_status","git_submodule_location"],"meta":{"brief":"Git submodule management utilities","defgroup":"git_submodule Git submodule management routines","ingroup":"Git","comments":"\n"},"lines":524},{"file":"sys/commit.h","functions":["git_commit_create_from_oids"],"meta":{"brief":"Low-level Git commit creation","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":46},{"file":"sys/config.h","functions":["git_config_add_backend"],"meta":{"brief":"Git config backend routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":97},{"file":"sys/index.h","functions":["git_index_name_entrycount","git_index_name_get_byindex","git_index_name_add","git_index_name_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_bypath","git_index_reuc_get_byindex","git_index_reuc_add","git_index_reuc_remove","git_index_reuc_clear"],"meta":{"brief":"Low-level Git index manipulation routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":177},{"file":"sys/odb_backend.h","functions":[],"meta":{"brief":"Git custom backend implementors functions","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":84},{"file":"sys/refdb_backend.h","functions":["git_refdb_backend_fs","git_refdb_set_backend"],"meta":{"brief":"Git custom refs backend functions","defgroup":"git_refdb_backend Git custom refs backend API","ingroup":"Git","comments":"\n"},"lines":158},{"file":"sys/refs.h","functions":["git_reference__alloc","git_reference__alloc_symbolic"],"meta":{},"lines":38},{"file":"sys/repository.h","functions":["git_repository_new","git_repository__cleanup","git_repository_set_config","git_repository_set_odb","git_repository_set_refdb","git_repository_set_index"],"meta":{"brief":"Git repository custom implementation routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":106},{"file":"tag.h","functions":["git_tag_lookup","git_tag_lookup_prefix","git_tag_free","git_tag_id","git_tag_owner","git_tag_target","git_tag_target_id","git_tag_target_type","git_tag_name","git_tag_tagger","git_tag_message","git_tag_create","git_tag_annotation_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_list","git_tag_list_match","git_tag_foreach","git_tag_peel"],"meta":{"brief":"Git tag parsing routines","defgroup":"git_tag Git tag management","ingroup":"Git","comments":"\n"},"lines":352},{"file":"threads.h","functions":["git_threads_init","git_threads_shutdown"],"meta":{"brief":"Library level thread functions","defgroup":"git_thread Threading functions","ingroup":"Git","comments":"\n"},"lines":49},{"file":"trace.h","functions":["git_trace_set"],"meta":{"brief":"Git tracing configuration routines","defgroup":"git_trace Git tracing configuration routines","ingroup":"Git","comments":"\n"},"lines":67},{"file":"transport.h","functions":["git_cred_has_username","git_cred_userpass_plaintext_new","git_cred_ssh_keyfile_passphrase_new","git_cred_ssh_publickey_new","git_transport_new","git_transport_dummy","git_transport_local","git_transport_smart","git_smart_subtransport_http","git_smart_subtransport_git","git_smart_subtransport_ssh"],"meta":{"brief":"Git transport interfaces and functions","defgroup":"git_transport interfaces and functions","ingroup":"Git","comments":"\n"},"lines":425},{"file":"tree.h","functions":["git_tree_lookup","git_tree_lookup_prefix","git_tree_free","git_tree_id","git_tree_owner","git_tree_entrycount","git_tree_entry_byname","git_tree_entry_byindex","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entry_dup","git_tree_entry_free","git_tree_entry_name","git_tree_entry_id","git_tree_entry_type","git_tree_entry_filemode","git_tree_entry_cmp","git_tree_entry_to_object","git_treebuilder_create","git_treebuilder_clear","git_treebuilder_entrycount","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_filter","git_treebuilder_write","git_tree_walk"],"meta":{"brief":"Git tree parsing, loading routines","defgroup":"git_tree Git tree parsing, loading routines","ingroup":"Git","comments":"\n"},"lines":393},{"file":"types.h","functions":[],"meta":{"brief":"libgit2 base & compatibility types","ingroup":"Git","comments":"\n"},"lines":306},{"file":"version.h","functions":[],"meta":{},"lines":15}],"functions":{"git_attr_get":{"type":"function","file":"attr.h","line":142,"lineto":147,"args":[{"name":"value_out","type":"const char **","comment":"Output of the value of the attribute. Use the GIT_ATTR_... macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just use the string value for attributes set to a value. You should NOT modify or free this value."},{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"The path to check for attributes. Relative paths are interpreted relative to the repo root. The file does not have to exist, but if it does not, then it will be treated as a plain file (not a directory)."},{"name":"name","type":"const char *","comment":"The name of the attribute to look up."}],"argline":"const char **value_out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tconst char *name","sig":"const char **::git_repository *::uint32_t::const char *::const char *","return":{"type":"int"},"description":"<p>Look up the value of one git attribute for path.</p>\n","comments":"","group":"attr"},"git_attr_get_many":{"type":"function","file":"attr.h","line":178,"lineto":186,"args":[{"name":"values_out","type":"const char **","comment":"An array of num_attr entries that will have string pointers written into it for the values of the attributes. You should not modify or free the values that are written into this array (although of course, you should free the array itself if you allocated it)."},{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"The path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."},{"name":"num_attr","type":"size_t","comment":"The number of attributes being looked up"},{"name":"names","type":"const char **","comment":"An array of num_attr strings containing attribute names."}],"argline":"const char **values_out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tsize_t num_attr,\n\tconst char **names","sig":"const char **::git_repository *::uint32_t::const char *::size_t::const char **","return":{"type":"int"},"description":"<p>Look up a list of git attributes for path.</p>\n","comments":"<p>Use this if you have a known list of attributes that you want to\nlook up in a single call. This is somewhat more efficient than\ncalling <code>git_attr_get()</code> multiple times.</p>\n\n<p>For example, you might write:</p>\n\n<pre><code>const char *attrs[] = { &quot;crlf&quot;, &quot;diff&quot;, &quot;foo&quot; };\nconst char **values[3];\ngit_attr_get_many(values, repo, 0, &quot;my/fun/file.c&quot;, 3, attrs);\n</code></pre>\n\n<p>Then you could loop through the 3 values to get the settings for\nthe three attributes you asked about.</p>\n","group":"attr"},"git_attr_foreach":{"type":"function","file":"attr.h","line":205,"lineto":210,"args":[{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"Path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."},{"name":"callback","type":"git_attr_foreach_cb","comment":"Function to invoke on each attribute name and value. The value may be NULL is the attribute is explicitly set to UNSPECIFIED using the '!' sign. Callback will be invoked only once per attribute name, even if there are multiple rules for a given file. The highest priority rule will be used. Return a non-zero value from this to stop looping."},{"name":"payload","type":"void *","comment":"Passed on as extra parameter to callback function."}],"argline":"git_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tgit_attr_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::uint32_t::const char *::git_attr_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the git attributes for a path.</p>\n","comments":"","group":"attr"},"git_attr_cache_flush":{"type":"function","file":"attr.h","line":220,"lineto":221,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Flush the gitattributes cache.</p>\n","comments":"<p>Call this if you have reason to believe that the attributes files on\ndisk no longer match the cached contents of memory. This will cause\nthe attributes files to be reloaded the next time that an attribute\naccess function is called.</p>\n","group":"attr"},"git_attr_add_macro":{"type":"function","file":"attr.h","line":233,"lineto":236,"args":[{"name":"repo","type":"git_repository *"},{"name":"name","type":"const char *"},{"name":"values","type":"const char *"}],"argline":"git_repository *repo,\n\tconst char *name,\n\tconst char *values","sig":"git_repository *::const char *::const char *","return":{"type":"int"},"description":"<p>Add a macro definition.</p>\n","comments":"<p>Macros will automatically be loaded from the top level <code>.gitattributes</code>\nfile of the repository (plus the build-in &quot;binary&quot; macro). This\nfunction allows you to add others. For example, to add the default\nmacro, you would call:</p>\n\n<pre><code>git_attr_add_macro(repo, &quot;binary&quot;, &quot;-diff -crlf&quot;);\n</code></pre>\n","group":"attr"},"git_blob_lookup":{"type":"function","file":"blob.h","line":32,"lineto":32,"args":[{"name":"blob","type":"git_blob **","comment":"pointer to the looked up blob"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the blob."},{"name":"id","type":"const git_oid *","comment":"identity of the blob to locate."}],"argline":"git_blob **blob, git_repository *repo, const git_oid *id","sig":"git_blob **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a blob object from a repository.</p>\n","comments":"","group":"blob","examples":{"general.c":["ex/HEAD/general.html#git_blob_lookup-1"]}},"git_blob_lookup_prefix":{"type":"function","file":"blob.h","line":46,"lineto":46,"args":[{"name":"blob","type":"git_blob **","comment":"pointer to the looked up blob"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the blob."},{"name":"id","type":"const git_oid *","comment":"identity of the blob to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_blob **blob, git_repository *repo, const git_oid *id, size_t len","sig":"git_blob **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a blob object from a repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"blob"},"git_blob_free":{"type":"function","file":"blob.h","line":59,"lineto":59,"args":[{"name":"blob","type":"git_blob *","comment":"the blob to close"}],"argline":"git_blob *blob","sig":"git_blob *","return":{"type":"void"},"description":"<p>Close an open blob</p>\n","comments":"<p>This is a wrapper around git_object_free()</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop\nusing a blob. Failure to do so will cause a memory leak.</p>\n","group":"blob"},"git_blob_id":{"type":"function","file":"blob.h","line":67,"lineto":67,"args":[{"name":"blob","type":"const git_blob *","comment":"a previously loaded blob."}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"const git_oid *","comment":"SHA1 hash for this blob."},"description":"<p>Get the id of a blob.</p>\n","comments":"","group":"blob"},"git_blob_owner":{"type":"function","file":"blob.h","line":75,"lineto":75,"args":[{"name":"blob","type":"const git_blob *","comment":"A previously loaded blob."}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"git_repository *","comment":"Repository that contains this blob."},"description":"<p>Get the repository that contains the blob.</p>\n","comments":"","group":"blob"},"git_blob_rawcontent":{"type":"function","file":"blob.h","line":88,"lineto":88,"args":[{"name":"blob","type":"const git_blob *","comment":"pointer to the blob"}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"const void *","comment":"the pointer; NULL if the blob has no contents"},"description":"<p>Get a read-only buffer with the raw content of a blob.</p>\n","comments":"<p>A pointer to the raw content of a blob is returned;\nthis pointer is owned internally by the object and shall\nnot be free&#39;d. The pointer may be invalidated at a later\ntime.</p>\n","group":"blob","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_blob_rawcontent-1"],"general.c":["ex/HEAD/general.html#git_blob_rawcontent-2"]}},"git_blob_rawsize":{"type":"function","file":"blob.h","line":96,"lineto":96,"args":[{"name":"blob","type":"const git_blob *","comment":"pointer to the blob"}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"git_off_t","comment":"size on bytes"},"description":"<p>Get the size in bytes of the contents of a blob</p>\n","comments":"","group":"blob","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_blob_rawsize-2"],"general.c":["ex/HEAD/general.html#git_blob_rawsize-3","ex/HEAD/general.html#git_blob_rawsize-4"]}},"git_blob_create_fromworkdir":{"type":"function","file":"blob.h","line":109,"lineto":109,"args":[{"name":"id","type":"git_oid *","comment":"return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. this repository cannot be bare"},{"name":"relative_path","type":"const char *","comment":"file from which the blob will be created, relative to the repository's working dir"}],"argline":"git_oid *id, git_repository *repo, const char *relative_path","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from the working folder of a repository\nand write it to the Object Database as a loose blob</p>\n","comments":"","group":"blob"},"git_blob_create_fromdisk":{"type":"function","file":"blob.h","line":121,"lineto":124,"args":[{"name":"id","type":"git_oid *","comment":"return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. this repository can be bare or not"},{"name":"path","type":"const char *","comment":"file from which the blob will be created"}],"argline":"git_oid *id, git_repository *repo, const char *path","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from the filesystem and write its content\nto the Object Database as a loose blob</p>\n","comments":"","group":"blob"},"git_blob_create_fromchunks":{"type":"function","file":"blob.h","line":162,"lineto":167,"args":[{"name":"id","type":"git_oid *","comment":"Return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. This repository can be bare or not."},{"name":"hintpath","type":"const char *","comment":"if not NULL, will help selecting the filters to apply onto the content of the blob to be created."},{"name":"callback","type":"git_blob_chunk_cb"},{"name":"payload","type":"void *"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *hintpath,\n\tgit_blob_chunk_cb callback,\n\tvoid *payload","sig":"git_oid *::git_repository *::const char *::git_blob_chunk_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write a loose blob to the Object Database from a\nprovider of chunks of data.</p>\n","comments":"<p>Provided the <code>hintpath</code> parameter is filled, its value\nwill help to determine what git filters should be applied\nto the object before it can be placed to the object database.</p>\n\n<p>The implementation of the callback has to respect the\nfollowing rules:</p>\n\n<ul>\n<li><p><code>content</code> will have to be filled by the consumer. The maximum number\nof bytes that the buffer can accept per call is defined by the\n<code>max_length</code> parameter. Allocation and freeing of the buffer will be taken\ncare of by the function.</p></li>\n<li><p>The callback is expected to return the number of bytes\nthat <code>content</code> have been filled with.</p></li>\n<li><p>When there is no more data to stream, the callback should\nreturn 0. This will prevent it from being invoked anymore.</p></li>\n<li><p>When an error occurs, the callback should return -1.</p></li>\n</ul>\n","group":"blob"},"git_blob_create_frombuffer":{"type":"function","file":"blob.h","line":178,"lineto":178,"args":[{"name":"oid","type":"git_oid *","comment":"return the oid of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where to blob will be written"},{"name":"buffer","type":"const void *","comment":"data to be written into the blob"},{"name":"len","type":"size_t","comment":"length of the data"}],"argline":"git_oid *oid, git_repository *repo, const void *buffer, size_t len","sig":"git_oid *::git_repository *::const void *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an in-memory buffer to the ODB as a blob</p>\n","comments":"","group":"blob"},"git_blob_is_binary":{"type":"function","file":"blob.h","line":191,"lineto":191,"args":[{"name":"blob","type":"git_blob *","comment":"The blob which content should be analyzed"}],"argline":"git_blob *blob","sig":"git_blob *","return":{"type":"int","comment":"1 if the content of the blob is detected as binary; 0 otherwise."},"description":"<p>Determine if the blob content is most certainly binary or not.</p>\n","comments":"<p>The heuristic used to guess if a file is binary is taken from core git:\nSearching for NUL bytes and looking for a reasonable ratio of printable\nto non-printable characters among the first 4000 bytes.</p>\n","group":"blob"},"git_branch_create":{"type":"function","file":"branch.h","line":50,"lineto":55,"args":[{"name":"out","type":"git_reference **","comment":"Pointer where to store the underlying reference."},{"name":"repo","type":"git_repository *"},{"name":"branch_name","type":"const char *","comment":"Name for the branch; this name is validated for consistency. It should also not conflict with an already existing branch name."},{"name":"target","type":"const git_commit *","comment":"Commit to which this branch should point. This object must belong to the given `repo`."},{"name":"force","type":"int","comment":"Overwrite existing branch."}],"argline":"git_reference **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tconst git_commit *target,\n\tint force","sig":"git_reference **::git_repository *::const char *::const git_commit *::int","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC or an error code. A proper reference is written in the refs/heads namespace pointing to the provided target commit."},"description":"<p>Create a new branch pointing at a target commit</p>\n","comments":"<p>A new direct reference will be created pointing to\nthis target commit. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The returned reference must be freed by the user.</p>\n\n<p>The branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_delete":{"type":"function","file":"branch.h","line":67,"lineto":72,"args":[{"name":"branch","type":"git_reference *","comment":"A valid reference representing a branch"}],"argline":"git_reference *branch","sig":"git_reference *","return":{"type":"int","comment":"0 on success, or an error code."},"description":"<p>Delete an existing branch reference.</p>\n","comments":"<p>If the branch is successfully deleted, the passed reference\nobject will be invalidated. The reference must be freed manually\nby the user.</p>\n","group":"branch"},"git_branch_foreach":{"type":"function","file":"branch.h","line":91,"lineto":95,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the branches."},{"name":"list_flags","type":"unsigned int","comment":"Filtering flags for the branch listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE or a combination of the two."},{"name":"branch_cb","type":"git_branch_foreach_cb","comment":"Callback to invoke per found branch."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tunsigned int list_flags,\n\tgit_branch_foreach_cb branch_cb,\n\tvoid *payload","sig":"git_repository *::unsigned int::git_branch_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the branches and issue a callback for each one.</p>\n","comments":"<p>If the callback returns a non-zero value, this will stop looping.</p>\n","group":"branch"},"git_branch_move":{"type":"function","file":"branch.h","line":112,"lineto":116,"args":[{"name":"out","type":"git_reference **"},{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."},{"name":"new_branch_name","type":"const char *","comment":"Target name of the branch once the move is performed; this name is validated for consistency."},{"name":"force","type":"int","comment":"Overwrite existing branch."}],"argline":"git_reference **out,\n\tgit_reference *branch,\n\tconst char *new_branch_name,\n\tint force","sig":"git_reference **::git_reference *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code."},"description":"<p>Move/rename an existing local branch reference.</p>\n","comments":"<p>The new branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_lookup":{"type":"function","file":"branch.h","line":139,"lineto":143,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the looked-up branch reference"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the branch"},{"name":"branch_name","type":"const char *","comment":"Name of the branch to be looked-up; this name is validated for consistency."},{"name":"branch_type","type":"git_branch_t","comment":"Type of the considered branch. This should be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE."}],"argline":"git_reference **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tgit_branch_t branch_type","sig":"git_reference **::git_repository *::const char *::git_branch_t","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND when no matching branch exists, GIT_EINVALIDSPEC, otherwise an error code."},"description":"<p>Lookup a branch by its name in a repository.</p>\n","comments":"<p>The generated reference must be freed by the user.</p>\n\n<p>The branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_name":{"type":"function","file":"branch.h","line":160,"lineto":161,"args":[{"name":"out","type":"const char **","comment":"where the pointer of branch name is stored; this is valid as long as the ref is not freed."},{"name":"ref","type":"git_reference *","comment":"the reference ideally pointing to a branch"}],"argline":"const char **out,\n\t\tgit_reference *ref","sig":"const char **::git_reference *","return":{"type":"int","comment":"0 on success; otherwise an error code (e.g., if the ref is no local or remote branch)."},"description":"<p>Return the name of the given local or remote branch.</p>\n","comments":"<p>The name of the branch matches the definition of the name\nfor git_branch_lookup. That is, if the returned name is given\nto git_branch_lookup() then the reference is returned that\nwas given to this function.</p>\n","group":"branch"},"git_branch_upstream":{"type":"function","file":"branch.h","line":175,"lineto":177,"args":[{"name":"out","type":"git_reference **","comment":"Pointer where to store the retrieved reference."},{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."}],"argline":"git_reference **out,\n\tgit_reference *branch","sig":"git_reference **::git_reference *","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code."},"description":"<p>Return the reference supporting the remote tracking branch,\ngiven a local branch reference.</p>\n","comments":"","group":"branch"},"git_branch_set_upstream":{"type":"function","file":"branch.h","line":189,"lineto":189,"args":[{"name":"branch","type":"git_reference *","comment":"the branch to configure"},{"name":"upstream_name","type":"const char *","comment":"remote-tracking or local branch to set as upstream. Pass NULL to unset."}],"argline":"git_reference *branch, const char *upstream_name","sig":"git_reference *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the upstream configuration for a given local branch</p>\n","comments":"","group":"branch"},"git_branch_upstream_name":{"type":"function","file":"branch.h","line":209,"lineto":213,"args":[{"name":"tracking_branch_name_out","type":"char *","comment":"The user-allocated buffer which will be filled with the name of the reference. Pass NULL if you just want to get the needed size of the name of the reference as the output value."},{"name":"buffer_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"repo","type":"git_repository *","comment":"the repository where the branches live"},{"name":"canonical_branch_name","type":"const char *","comment":"name of the local branch."}],"argline":"char *tracking_branch_name_out,\n\tsize_t buffer_size,\n\tgit_repository *repo,\n\tconst char *canonical_branch_name","sig":"char *::size_t::git_repository *::const char *","return":{"type":"int","comment":"number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code."},"description":"<p>Return the name of the reference supporting the remote tracking branch,\ngiven the name of a local branch reference.</p>\n","comments":"","group":"branch"},"git_branch_is_head":{"type":"function","file":"branch.h","line":223,"lineto":224,"args":[{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."}],"argline":"git_reference *branch","sig":"git_reference *","return":{"type":"int","comment":"1 if HEAD points at the branch, 0 if it isn't, error code otherwise."},"description":"<p>Determine if the current local branch is pointed at by HEAD.</p>\n","comments":"","group":"branch"},"git_branch_remote_name":{"type":"function","file":"branch.h","line":245,"lineto":249,"args":[{"name":"remote_name_out","type":"char *","comment":"The user-allocated buffer which will be filled with the name of the remote. Pass NULL if you just want to get the needed size of the name of the remote as the output value."},{"name":"buffer_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"repo","type":"git_repository *","comment":"The repository where the branch lives."},{"name":"canonical_branch_name","type":"const char *","comment":"name of the remote tracking branch."}],"argline":"char *remote_name_out,\n\tsize_t buffer_size,\n\tgit_repository *repo,\n\tconst char *canonical_branch_name","sig":"char *::size_t::git_repository *::const char *","return":{"type":"int","comment":"Number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote matching remote was found, GIT_EAMBIGUOUS when the branch maps to several remotes, otherwise an error code."},"description":"<p>Return the name of remote that the remote tracking branch belongs to.</p>\n","comments":"","group":"branch"},"git_checkout_head":{"type":"function","file":"checkout.h","line":256,"lineto":258,"args":[{"name":"repo","type":"git_repository *","comment":"repository to check out (must be non-bare)"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tgit_checkout_opts *opts","sig":"git_repository *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the index and the working tree to match the content of\nthe commit pointed at by HEAD.</p>\n","comments":"","group":"checkout"},"git_checkout_index":{"type":"function","file":"checkout.h","line":269,"lineto":272,"args":[{"name":"repo","type":"git_repository *","comment":"repository into which to check out (must be non-bare)"},{"name":"index","type":"git_index *","comment":"index to be checked out (or NULL to use repository index)"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tgit_index *index,\n\tgit_checkout_opts *opts","sig":"git_repository *::git_index *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the working tree to match the content of the index.</p>\n","comments":"","group":"checkout"},"git_checkout_tree":{"type":"function","file":"checkout.h","line":285,"lineto":288,"args":[{"name":"repo","type":"git_repository *","comment":"repository to check out (must be non-bare)"},{"name":"treeish","type":"const git_object *","comment":"a commit, tag or tree which content will be used to update the working directory"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tconst git_object *treeish,\n\tgit_checkout_opts *opts","sig":"git_repository *::const git_object *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the index and working tree to match the content of the\ntree pointed at by the treeish.</p>\n","comments":"","group":"checkout"},"git_clone":{"type":"function","file":"clone.h","line":102,"lineto":106,"args":[{"name":"out","type":"git_repository **","comment":"pointer that will receive the resulting repository object"},{"name":"url","type":"const char *","comment":"the remote repository to clone"},{"name":"local_path","type":"const char *","comment":"local directory to clone to"},{"name":"options","type":"const git_clone_options *","comment":"configuration options for the clone. If NULL, the function works as though GIT_OPTIONS_INIT were passed."}],"argline":"git_repository **out,\n\t\tconst char *url,\n\t\tconst char *local_path,\n\t\tconst git_clone_options *options","sig":"git_repository **::const char *::const char *::const git_clone_options *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Clone a remote repository, and checkout the branch pointed to by the remote\nHEAD.</p>\n","comments":"","group":"clone","examples":{"network/clone.c":["ex/HEAD/network/clone.html#git_clone-1"]}},"git_commit_lookup":{"type":"function","file":"commit.h","line":36,"lineto":37,"args":[{"name":"commit","type":"git_commit **","comment":"pointer to the looked up commit"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the commit."},{"name":"id","type":"const git_oid *","comment":"identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."}],"argline":"git_commit **commit, git_repository *repo, const git_oid *id","sig":"git_commit **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a commit object from a repository.</p>\n","comments":"<p>The returned object should be released with <code>git_commit_free</code> when no\nlonger needed.</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_lookup-5","ex/HEAD/general.html#git_commit_lookup-6","ex/HEAD/general.html#git_commit_lookup-7"],"log.c":["ex/HEAD/log.html#git_commit_lookup-1"]}},"git_commit_lookup_prefix":{"type":"function","file":"commit.h","line":55,"lineto":56,"args":[{"name":"commit","type":"git_commit **","comment":"pointer to the looked up commit"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the commit."},{"name":"id","type":"const git_oid *","comment":"identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_commit **commit, git_repository *repo, const git_oid *id, size_t len","sig":"git_commit **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a commit object from a repository, given a prefix of its\nidentifier (short id).</p>\n","comments":"<p>The returned object should be released with <code>git_commit_free</code> when no\nlonger needed.</p>\n\n<p>@see git_object_lookup_prefix</p>\n","group":"commit"},"git_commit_free":{"type":"function","file":"commit.h","line":69,"lineto":69,"args":[{"name":"commit","type":"git_commit *","comment":"the commit to close"}],"argline":"git_commit *commit","sig":"git_commit *","return":{"type":"void"},"description":"<p>Close an open commit</p>\n","comments":"<p>This is a wrapper around git_object_free()</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop\nusing a commit. Failure to do so will cause a memory leak.</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_free-8","ex/HEAD/general.html#git_commit_free-9","ex/HEAD/general.html#git_commit_free-10","ex/HEAD/general.html#git_commit_free-11"],"log.c":["ex/HEAD/log.html#git_commit_free-2","ex/HEAD/log.html#git_commit_free-3","ex/HEAD/log.html#git_commit_free-4","ex/HEAD/log.html#git_commit_free-5"]}},"git_commit_id":{"type":"function","file":"commit.h","line":78,"lineto":78,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_oid *","comment":"object identity for the commit."},"description":"<p>Get the id of a commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_id-12"],"log.c":["ex/HEAD/log.html#git_commit_id-6"]}},"git_commit_owner":{"type":"function","file":"commit.h","line":86,"lineto":86,"args":[{"name":"commit","type":"const git_commit *","comment":"A previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"git_repository *","comment":"Repository that contains this commit."},"description":"<p>Get the repository that contains the commit.</p>\n","comments":"","group":"commit","examples":{"log.c":["ex/HEAD/log.html#git_commit_owner-7","ex/HEAD/log.html#git_commit_owner-8"]}},"git_commit_message_encoding":{"type":"function","file":"commit.h","line":98,"lineto":98,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"NULL, or the encoding"},"description":"<p>Get the encoding for the message of a commit,\nas a string representing a standard encoding name.</p>\n","comments":"<p>The encoding may be NULL if the <code>encoding</code> header\nin the commit is missing; in that case UTF-8 is assumed.</p>\n","group":"commit"},"git_commit_message":{"type":"function","file":"commit.h","line":106,"lineto":106,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"the message of a commit"},"description":"<p>Get the full message of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_message-3","ex/HEAD/cat-file.html#git_commit_message-4"],"general.c":["ex/HEAD/general.html#git_commit_message-13","ex/HEAD/general.html#git_commit_message-14","ex/HEAD/general.html#git_commit_message-15"],"log.c":["ex/HEAD/log.html#git_commit_message-9"]}},"git_commit_time":{"type":"function","file":"commit.h","line":114,"lineto":114,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"git_time_t","comment":"the time of a commit"},"description":"<p>Get the commit time (i.e. committer time) of a commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_time-16","ex/HEAD/general.html#git_commit_time-17"]}},"git_commit_time_offset":{"type":"function","file":"commit.h","line":122,"lineto":122,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"int","comment":"positive or negative timezone offset, in minutes from UTC"},"description":"<p>Get the commit timezone offset (i.e. committer&#39;s preferred timezone) of a commit.</p>\n","comments":"","group":"commit"},"git_commit_committer":{"type":"function","file":"commit.h","line":130,"lineto":130,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_signature *","comment":"the committer of a commit"},"description":"<p>Get the committer of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_committer-5"],"general.c":["ex/HEAD/general.html#git_commit_committer-18"]}},"git_commit_author":{"type":"function","file":"commit.h","line":138,"lineto":138,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_signature *","comment":"the author of a commit"},"description":"<p>Get the author of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_author-6"],"general.c":["ex/HEAD/general.html#git_commit_author-19","ex/HEAD/general.html#git_commit_author-20"],"log.c":["ex/HEAD/log.html#git_commit_author-10"]}},"git_commit_raw_header":{"type":"function","file":"commit.h","line":146,"lineto":146,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit"}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"the header text of the commit"},"description":"<p>Get the full raw text of the commit header.</p>\n","comments":"","group":"commit"},"git_commit_tree":{"type":"function","file":"commit.h","line":155,"lineto":155,"args":[{"name":"tree_out","type":"git_tree **","comment":"pointer where to store the tree object"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"git_tree **tree_out, const git_commit *commit","sig":"git_tree **::const git_commit *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the tree pointed to by a commit.</p>\n","comments":"","group":"commit","examples":{"diff.c":["ex/HEAD/diff.html#git_commit_tree-1"],"log.c":["ex/HEAD/log.html#git_commit_tree-11","ex/HEAD/log.html#git_commit_tree-12","ex/HEAD/log.html#git_commit_tree-13","ex/HEAD/log.html#git_commit_tree-14","ex/HEAD/log.html#git_commit_tree-15"]}},"git_commit_tree_id":{"type":"function","file":"commit.h","line":165,"lineto":165,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_oid *","comment":"the id of tree pointed to by commit."},"description":"<p>Get the id of the tree pointed to by a commit. This differs from\n<code>git_commit_tree</code> in that no attempts are made to fetch an object\nfrom the ODB.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_tree_id-7"]}},"git_commit_parentcount":{"type":"function","file":"commit.h","line":173,"lineto":173,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"unsigned int","comment":"integer of count of parents"},"description":"<p>Get the number of parents of this commit</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_parentcount-8"],"general.c":["ex/HEAD/general.html#git_commit_parentcount-21"],"log.c":["ex/HEAD/log.html#git_commit_parentcount-16","ex/HEAD/log.html#git_commit_parentcount-17"]}},"git_commit_parent":{"type":"function","file":"commit.h","line":183,"lineto":186,"args":[{"name":"out","type":"git_commit **","comment":"Pointer where to store the parent commit"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the position of the parent (from 0 to `parentcount`)"}],"argline":"git_commit **out,\n\tconst git_commit *commit,\n\tunsigned int n","sig":"git_commit **::const git_commit *::unsigned int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the specified parent of the commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_parent-22"],"log.c":["ex/HEAD/log.html#git_commit_parent-18","ex/HEAD/log.html#git_commit_parent-19"]}},"git_commit_parent_id":{"type":"function","file":"commit.h","line":197,"lineto":199,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the position of the parent (from 0 to `parentcount`)"}],"argline":"const git_commit *commit,\n\tunsigned int n","sig":"const git_commit *::unsigned int","return":{"type":"const git_oid *","comment":"the id of the parent, NULL on error."},"description":"<p>Get the oid of a specified parent for a commit. This is different from\n<code>git_commit_parent</code>, which will attempt to load the parent commit from\nthe ODB.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_parent_id-9"],"log.c":["ex/HEAD/log.html#git_commit_parent_id-20"]}},"git_commit_nth_gen_ancestor":{"type":"function","file":"commit.h","line":215,"lineto":218,"args":[{"name":"ancestor","type":"git_commit **","comment":"Pointer where to store the ancestor commit"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the requested generation"}],"argline":"git_commit **ancestor,\n\tconst git_commit *commit,\n\tunsigned int n","sig":"git_commit **::const git_commit *::unsigned int","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if no matching ancestor exists or an error code"},"description":"<p>Get the commit object that is the <n>th generation ancestor\nof the named commit object, following only the first parents.\nThe returned commit has to be freed by the caller.</p>\n","comments":"<p>Passing <code>0</code> as the generation number returns another instance of the\nbase commit itself.</p>\n","group":"commit"},"git_commit_create":{"type":"function","file":"commit.h","line":263,"lineto":273,"args":[{"name":"id","type":"git_oid *","comment":"Pointer in which to store the OID of the newly created commit"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the commit"},{"name":"update_ref","type":"const char *","comment":"If not NULL, name of the reference that will be updated to point to this commit. If the reference is not direct, it will be resolved to a direct reference. Use \"HEAD\" to update the HEAD of the current branch and make it point to this commit. If the reference doesn't exist yet, it will be created."},{"name":"author","type":"const git_signature *","comment":"Signature with author and author time of commit"},{"name":"committer","type":"const git_signature *","comment":"Signature with committer and * commit time of commit"},{"name":"message_encoding","type":"const char *","comment":"The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."},{"name":"message","type":"const char *","comment":"_encoding The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."},{"name":"tree","type":"const git_tree *","comment":"An instance of a `git_tree` object that will be used as the tree for the commit. This tree object must also be owned by the given `repo`."},{"name":"parent_count","type":"int","comment":"Number of parents for this commit"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_tree *tree,\n\tint parent_count,\n\tconst git_commit *parents[]","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_tree *::int","return":{"type":"int","comment":"0 or an error code The created commit will be written to the Object Database and the given reference will be updated to point to it"},"description":"<p>Create new commit in the repository from a list of <code>git_object</code> pointers</p>\n","comments":"<p>The message will not be cleaned up automatically. You can do that with\nthe <code>git_message_prettify()</code> function.</p>\n","group":"commit"},"git_commit_create_v":{"type":"function","file":"commit.h","line":289,"lineto":299,"args":[{"name":"id","type":"git_oid *"},{"name":"repo","type":"git_repository *"},{"name":"update_ref","type":"const char *"},{"name":"author","type":"const git_signature *"},{"name":"committer","type":"const git_signature *"},{"name":"message_encoding","type":"const char *"},{"name":"message","type":"const char *"},{"name":"tree","type":"const git_tree *"},{"name":"parent_count","type":"int"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_tree *tree,\n\tint parent_count,\n\t...","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_tree *::int","return":{"type":"int"},"description":"<p>Create new commit in the repository using a variable argument list.</p>\n","comments":"<p>The message will be cleaned up from excess whitespace and it will be made\nsure that the last line ends with a &#39;\\n&#39;.</p>\n\n<p>The parents for the commit are specified as a variable list of pointers\nto <code>const git_commit *</code>. Note that this is a convenience method which may\nnot be safe to export for certain languages or compilers</p>\n\n<p>All other parameters remain the same at <code>git_commit_create()</code>.</p>\n\n<p>@see git_commit_create</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_create_v-23"],"init.c":["ex/HEAD/init.html#git_commit_create_v-1"]}},"git_libgit2_version":{"type":"function","file":"common.h","line":101,"lineto":101,"args":[{"name":"major","type":"int *","comment":"Store the major version number"},{"name":"minor","type":"int *","comment":"Store the minor version number"},{"name":"rev","type":"int *","comment":"Store the revision (patch) number"}],"argline":"int *major, int *minor, int *rev","sig":"int *::int *::int *","return":{"type":"void"},"description":"<p>Return the version of the libgit2 library\nbeing currently used.</p>\n","comments":"","group":"libgit2"},"git_libgit2_capabilities":{"type":"function","file":"common.h","line":126,"lineto":140,"args":[],"argline":"void","sig":"","return":{"type":"int","comment":"A combination of GIT_CAP_* values. - GIT_CAP_THREADS Libgit2 was compiled with thread support. Note that thread support is still to be seen as a 'work in progress' - basic object lookups are believed to be threadsafe, but other operations may not be. - GIT_CAP_HTTPS Libgit2 supports the https:// protocol. This requires the openssl library to be found when compiling libgit2."},"description":"<p>Query compile time options for libgit2.</p>\n","comments":"","group":"libgit2"},"git_libgit2_opts":{"type":"function","file":"common.h","line":217,"lineto":217,"args":[{"name":"option","type":"int","comment":"Option key"}],"argline":"int option, ...","sig":"int","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Set or query a library global option</p>\n","comments":"<p>Available options:</p>\n\n<ul>\n<li><p>opts(GIT_OPT_GET_MWINDOW_SIZE, size_t *):</p>\n\n<blockquote>\n<p>Get the maximum mmap window size</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_MWINDOW_SIZE, size_t):</p>\n\n<blockquote>\n<p>Set the maximum mmap window size</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_MWINDOW_MAPPED_LIMIT, size_t *):</p>\n\n<blockquote>\n<p>Get the maximum memory that will be mapped in total by the library</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size_t):</p>\n\n<blockquote>\n<p>Set the maximum amount of memory that can be mapped at any time\nby the library</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_SEARCH_PATH, int level, char *out, size_t len)</p>\n\n<blockquote>\n<p>Get the search path for a given level of config data. &quot;level&quot; must\nbe one of <code>GIT_CONFIG_LEVEL_SYSTEM</code>, <code>GIT_CONFIG_LEVEL_GLOBAL</code>, or\n<code>GIT_CONFIG_LEVEL_XDG</code>. The search path is written to the <code>out</code>\nbuffer up to size <code>len</code>. Returns GIT_EBUFS if buffer is too small.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_SEARCH_PATH, int level, const char *path)</p>\n\n<blockquote>\n<p>Set the search path for a level of config data. The search path\napplied to shared attributes and ignore files, too.</p>\n\n<ul>\n<li><p><code>path</code> lists directories delimited by GIT_PATH_LIST_SEPARATOR.\nPass NULL to reset to the default (generally based on environment\nvariables). Use magic path <code>$PATH</code> to include the old value\nof the path (if you want to prepend or append, for instance).</p></li>\n<li><p><code>level</code> must be GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL,\nor GIT_CONFIG_LEVEL_XDG.</p></li>\n</ul>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_CACHE_OBJECT_LIMIT, git_otype type, size_t size)</p>\n\n<blockquote>\n<p>Set the maximum data size for the given type of object to be\nconsidered eligible for caching in memory. Setting to value to\nzero means that that type of object will not be cached.\nDefaults to 0 for GIT_OBJ_BLOB (i.e. won&#39;t cache blobs) and 4k\nfor GIT_OBJ_COMMIT, GIT_OBJ_TREE, and GIT_OBJ_TAG.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_CACHE_MAX_SIZE, ssize_t max_storage_bytes)</p>\n\n<blockquote>\n<p>Set the maximum total data size that will be cached in memory\nacross all repositories before libgit2 starts evicting objects\nfrom the cache. This is a soft limit, in that the library might\nbriefly exceed it, but will start aggressively evicting objects\nfrom cache when that happens. The default cache size is 256Mb.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_ENABLE_CACHING, int enabled)</p>\n\n<blockquote>\n<p>Enable or disable caching completely.</p>\n\n<p>Because caches are repository-specific, disabling the cache\ncannot immediately clear all cached objects, but each cache will\nbe cleared on the next attempt to update anything in it.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_CACHED_MEMORY, ssize_t *current, ssize_t *allowed)</p>\n\n<blockquote>\n<p>Get the current bytes in cache and the maximum that would be\nallowed in the cache.</p>\n</blockquote></li>\n</ul>\n","group":"libgit2"},"git_config_find_global":{"type":"function","file":"config.h","line":97,"lineto":97,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a global configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the global configuration file</p>\n","comments":"<p>The user or global configuration file is usually\nlocated in <code>$HOME/.gitconfig</code>.</p>\n\n<p>This method will try to guess the full path to that\nfile, if the file exists. The returned path\nmay be used on any <code>git_config</code> call to load the\nglobal configuration file.</p>\n\n<p>This method will not guess the path to the xdg compatible\nconfig file (.config/git/config).</p>\n","group":"config"},"git_config_find_xdg":{"type":"function","file":"config.h","line":115,"lineto":115,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a xdg compatible configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the global xdg compatible configuration file</p>\n","comments":"<p>The xdg compatible configuration file is usually\nlocated in <code>$HOME/.config/git/config</code>.</p>\n\n<p>This method will try to guess the full path to that\nfile, if the file exists. The returned path\nmay be used on any <code>git_config</code> call to load the\nxdg compatible configuration file.</p>\n","group":"config"},"git_config_find_system":{"type":"function","file":"config.h","line":128,"lineto":128,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a system configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the system configuration file</p>\n","comments":"<p>If /etc/gitconfig doesn&#39;t exist, it will look for\n%PROGRAMFILES%\\Git\\etc\\gitconfig.</p>\n","group":"config"},"git_config_open_default":{"type":"function","file":"config.h","line":140,"lineto":140,"args":[{"name":"out","type":"git_config **","comment":"Pointer to store the config instance"}],"argline":"git_config **out","sig":"git_config **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open the global, XDG and system configuration files</p>\n","comments":"<p>Utility wrapper that finds the global, XDG and system configuration files\nand opens them into a single prioritized config object that can be\nused when accessing default config data outside a repository.</p>\n","group":"config"},"git_config_new":{"type":"function","file":"config.h","line":151,"lineto":151,"args":[{"name":"out","type":"git_config **","comment":"pointer to the new configuration"}],"argline":"git_config **out","sig":"git_config **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Allocate a new configuration object</p>\n","comments":"<p>This object is empty, so you have to add a file to it before you\ncan do anything with it.</p>\n","group":"config"},"git_config_add_file_ondisk":{"type":"function","file":"config.h","line":175,"lineto":179,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to add the file to"},{"name":"path","type":"const char *","comment":"path to the configuration file to add"},{"name":"level","type":"git_config_level_t","comment":"the priority level of the backend"},{"name":"force","type":"int","comment":"replace config file at the given priority level"}],"argline":"git_config *cfg,\n\tconst char *path,\n\tgit_config_level_t level,\n\tint force","sig":"git_config *::const char *::git_config_level_t::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), GIT_ENOTFOUND when the file doesn't exist or error code"},"description":"<p>Add an on-disk config file instance to an existing config</p>\n","comments":"<p>The on-disk file pointed at by <code>path</code> will be opened and\nparsed; it&#39;s expected to be a native Git config file following\nthe default Git config syntax (see man git-config).</p>\n\n<p>Note that the configuration object will free the file\nautomatically.</p>\n\n<p>Further queries on this config object will access each\nof the config file instances in order (instances with\na higher priority level will be accessed first).</p>\n","group":"config"},"git_config_open_ondisk":{"type":"function","file":"config.h","line":194,"lineto":194,"args":[{"name":"out","type":"git_config **","comment":"The configuration instance to create"},{"name":"path","type":"const char *","comment":"Path to the on-disk file to open"}],"argline":"git_config **out, const char *path","sig":"git_config **::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND when the file doesn't exist or an error code"},"description":"<p>Create a new config instance containing a single on-disk file</p>\n","comments":"<p>This method is a simple utility wrapper for the following sequence\nof calls:\n- git_config_new\n- git_config_add_file_ondisk</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_open_ondisk-24"]}},"git_config_open_level":{"type":"function","file":"config.h","line":212,"lineto":215,"args":[{"name":"out","type":"git_config **","comment":"The configuration instance to create"},{"name":"parent","type":"const git_config *","comment":"Multi-level config to search for the given level"},{"name":"level","type":"git_config_level_t","comment":"Configuration level to search for"}],"argline":"git_config **out,\n\tconst git_config *parent,\n\tgit_config_level_t level","sig":"git_config **::const git_config *::git_config_level_t","return":{"type":"int","comment":"0, GIT_ENOTFOUND if the passed level cannot be found in the multi-level parent config, or an error code"},"description":"<p>Build a single-level focused config object from a multi-level one.</p>\n","comments":"<p>The returned config object can be used to perform get/set/delete operations\non a single specific level.</p>\n\n<p>Getting several times the same level from the same parent multi-level config\nwill return different config instances, but containing the same config_file\ninstance.</p>\n","group":"config"},"git_config_open_global":{"type":"function","file":"config.h","line":229,"lineto":229,"args":[{"name":"out","type":"git_config **","comment":"pointer in which to store the config object"},{"name":"config","type":"git_config *","comment":"the config object in which to look"}],"argline":"git_config **out, git_config *config","sig":"git_config **::git_config *","return":{"type":"int"},"description":"<p>Open the global/XDG configuration file according to git&#39;s rules</p>\n","comments":"<p>Git allows you to store your global configuration at\n<code>$HOME/.config</code> or <code>$XDG_CONFIG_HOME/git/config</code>. For backwards\ncompatability, the XDG file shouldn&#39;t be used unless the use has\ncreated it explicitly. With this function you&#39;ll open the correct\none to write to.</p>\n","group":"config"},"git_config_refresh":{"type":"function","file":"config.h","line":243,"lineto":243,"args":[{"name":"cfg","type":"git_config *","comment":"The configuration to refresh"}],"argline":"git_config *cfg","sig":"git_config *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Reload changed config files</p>\n","comments":"<p>A config file may be changed on disk out from under the in-memory\nconfig object. This function causes us to look for files that have\nbeen modified since we last loaded them and refresh the config with\nthe latest information.</p>\n","group":"config"},"git_config_free":{"type":"function","file":"config.h","line":250,"lineto":250,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to free"}],"argline":"git_config *cfg","sig":"git_config *","return":{"type":"void"},"description":"<p>Free the configuration and its associated memory and files</p>\n","comments":"","group":"config"},"git_config_get_entry":{"type":"function","file":"config.h","line":263,"lineto":266,"args":[{"name":"out","type":"const git_config_entry **","comment":"pointer to the variable git_config_entry"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"const git_config_entry **out,\n\tconst git_config *cfg,\n\tconst char *name","sig":"const git_config_entry **::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the git_config_entry of a config variable.</p>\n","comments":"<p>The git_config_entry is owned by the config and should not be freed by the\nuser.</p>\n","group":"config"},"git_config_get_int32":{"type":"function","file":"config.h","line":280,"lineto":280,"args":[{"name":"out","type":"int32_t *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int32_t *out, const git_config *cfg, const char *name","sig":"int32_t *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of an integer config variable.</p>\n","comments":"<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurence of the variable will be returned here.</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_get_int32-25"]}},"git_config_get_int64":{"type":"function","file":"config.h","line":294,"lineto":294,"args":[{"name":"out","type":"int64_t *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int64_t *out, const git_config *cfg, const char *name","sig":"int64_t *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a long integer config variable.</p>\n","comments":"<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config"},"git_config_get_bool":{"type":"function","file":"config.h","line":311,"lineto":311,"args":[{"name":"out","type":"int *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int *out, const git_config *cfg, const char *name","sig":"int *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a boolean config variable.</p>\n","comments":"<p>This function uses the usual C convention of 0 being false and\nanything else true.</p>\n\n<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config"},"git_config_get_string":{"type":"function","file":"config.h","line":328,"lineto":328,"args":[{"name":"out","type":"const char **","comment":"pointer to the variable's value"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"const char **out, const git_config *cfg, const char *name","sig":"const char **::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a string config variable.</p>\n","comments":"<p>The string is owned by the variable and should not be freed by the\nuser.</p>\n\n<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_get_string-26"]}},"git_config_get_multivar_foreach":{"type":"function","file":"config.h","line":342,"lineto":342,"args":[{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"regular expression to filter which variables we're interested in. Use NULL to indicate all"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to be called on each value of the variable"},{"name":"payload","type":"void *","comment":"opaque pointer to pass to the callback"}],"argline":"const git_config *cfg, const char *name, const char *regexp, git_config_foreach_cb callback, void *payload","sig":"const git_config *::const char *::const char *::git_config_foreach_cb::void *","return":{"type":"int"},"description":"<p>Get each value of a multivar in a foreach callback</p>\n","comments":"<p>The callback will be called on each variable found</p>\n","group":"config"},"git_config_multivar_iterator_new":{"type":"function","file":"config.h","line":353,"lineto":353,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"regular expression to filter which variables we're interested in. Use NULL to indicate all"}],"argline":"git_config_iterator **out, const git_config *cfg, const char *name, const char *regexp","sig":"git_config_iterator **::const git_config *::const char *::const char *","return":{"type":"int"},"description":"<p>Get each value of a multivar</p>\n","comments":"","group":"config"},"git_config_next":{"type":"function","file":"config.h","line":362,"lineto":362,"args":[{"name":"entry","type":"git_config_entry **","comment":"pointer to store the entry"},{"name":"iter","type":"git_config_iterator *","comment":"the iterator"}],"argline":"git_config_entry **entry, git_config_iterator *iter","sig":"git_config_entry **::git_config_iterator *","return":{"type":"int","comment":"0 or an error code. GIT_ITEROVER if the iteration has completed"},"description":"<p>Return the current entry and advance the iterator</p>\n","comments":"","group":"config"},"git_config_iterator_free":{"type":"function","file":"config.h","line":369,"lineto":369,"args":[{"name":"iter","type":"git_config_iterator *","comment":"the iterator to free"}],"argline":"git_config_iterator *iter","sig":"git_config_iterator *","return":{"type":"void"},"description":"<p>Free a config iterator</p>\n","comments":"","group":"config"},"git_config_set_int32":{"type":"function","file":"config.h","line":380,"lineto":380,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int32_t","comment":"Integer value for the variable"}],"argline":"git_config *cfg, const char *name, int32_t value","sig":"git_config *::const char *::int32_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of an integer config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_int64":{"type":"function","file":"config.h","line":391,"lineto":391,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int64_t","comment":"Long integer value for the variable"}],"argline":"git_config *cfg, const char *name, int64_t value","sig":"git_config *::const char *::int64_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a long integer config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_bool":{"type":"function","file":"config.h","line":402,"lineto":402,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int","comment":"the value to store"}],"argline":"git_config *cfg, const char *name, int value","sig":"git_config *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a boolean config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_string":{"type":"function","file":"config.h","line":416,"lineto":416,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"const char *","comment":"the string to store."}],"argline":"git_config *cfg, const char *name, const char *value","sig":"git_config *::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a string config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"<p>A copy of the string is made and the user is free to use it\nafterwards.</p>\n","group":"config"},"git_config_set_multivar":{"type":"function","file":"config.h","line":426,"lineto":426,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"a regular expression to indicate which values to replace"},{"name":"value","type":"const char *","comment":"the new value."}],"argline":"git_config *cfg, const char *name, const char *regexp, const char *value","sig":"git_config *::const char *::const char *::const char *","return":{"type":"int"},"description":"<p>Set a multivar in the local config file.</p>\n","comments":"","group":"config"},"git_config_delete_entry":{"type":"function","file":"config.h","line":435,"lineto":435,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration"},{"name":"name","type":"const char *","comment":"the variable to delete"}],"argline":"git_config *cfg, const char *name","sig":"git_config *::const char *","return":{"type":"int"},"description":"<p>Delete a config variable from the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_foreach":{"type":"function","file":"config.h","line":450,"lineto":453,"args":[{"name":"cfg","type":"const git_config *","comment":"where to get the variables from"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to call on each variable"},{"name":"payload","type":"void *","comment":"the data to pass to the callback"}],"argline":"const git_config *cfg,\n\tgit_config_foreach_cb callback,\n\tvoid *payload","sig":"const git_config *::git_config_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform an operation on each config variable.</p>\n","comments":"<p>The callback receives the normalized name and value of each variable\nin the config backend, and the data pointer passed to this function.\nAs soon as one of the callback functions returns something other than 0,\nthis function stops iterating and returns <code>GIT_EUSER</code>.</p>\n","group":"config"},"git_config_iterator_new":{"type":"function","file":"config.h","line":464,"lineto":464,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to ge the variables from"}],"argline":"git_config_iterator **out, const git_config *cfg","sig":"git_config_iterator **::const git_config *","return":{"type":"int"},"description":"<p>Iterate over all the config variables</p>\n","comments":"<p>Use <code>git_config_next</code> to advance the iteration and\n<code>git_config_iterator_free</code> when done.</p>\n","group":"config"},"git_config_iterator_glob_new":{"type":"function","file":"config.h","line":476,"lineto":476,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to ge the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match the names"}],"argline":"git_config_iterator **out, const git_config *cfg, const char *regexp","sig":"git_config_iterator **::const git_config *::const char *","return":{"type":"int"},"description":"<p>Iterate over all the config variables whose name matches a pattern</p>\n","comments":"<p>Use <code>git_config_next</code> to advance the iteration and\n<code>git_config_iterator_free</code> when done.</p>\n","group":"config"},"git_config_foreach_match":{"type":"function","file":"config.h","line":491,"lineto":495,"args":[{"name":"cfg","type":"const git_config *","comment":"where to get the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match against config names"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to call on each variable"},{"name":"payload","type":"void *","comment":"the data to pass to the callback"}],"argline":"const git_config *cfg,\n\tconst char *regexp,\n\tgit_config_foreach_cb callback,\n\tvoid *payload","sig":"const git_config *::const char *::git_config_foreach_cb::void *","return":{"type":"int","comment":"0 or the return value of the callback which didn't return 0"},"description":"<p>Perform an operation on each config variable matching a regular expression.</p>\n","comments":"<p>This behaviors like <code>git_config_foreach</code> with an additional filter of a\nregular expression that filters which config keys are passed to the\ncallback.</p>\n","group":"config"},"git_config_get_mapped":{"type":"function","file":"config.h","line":531,"lineto":536,"args":[{"name":"out","type":"int *","comment":"place to store the result of the mapping"},{"name":"cfg","type":"const git_config *","comment":"config file to get the variables from"},{"name":"name","type":"const char *","comment":"name of the config variable to lookup"},{"name":"maps","type":"const git_cvar_map *","comment":"array of `git_cvar_map` objects specifying the possible mappings"},{"name":"map_n","type":"size_t","comment":"number of mapping objects in `maps`"}],"argline":"int *out,\n\tconst git_config *cfg,\n\tconst char *name,\n\tconst git_cvar_map *maps,\n\tsize_t map_n","sig":"int *::const git_config *::const char *::const git_cvar_map *::size_t","return":{"type":"int","comment":"0 on success, error code otherwise"},"description":"<p>Query the value of a config variable and return it mapped to\nan integer constant.</p>\n","comments":"<p>This is a helper method to easily map different possible values\nto a variable to integer constants that easily identify them.</p>\n\n<p>A mapping array looks as follows:</p>\n\n<p>git_cvar_map autocrlf_mapping[] = {\n {GIT_CVAR_FALSE, NULL, GIT_AUTO_CRLF_FALSE},\n {GIT_CVAR_TRUE, NULL, GIT_AUTO_CRLF_TRUE},\n {GIT_CVAR_STRING, &quot;input&quot;, GIT_AUTO_CRLF_INPUT},\n {GIT_CVAR_STRING, &quot;default&quot;, GIT_AUTO_CRLF_DEFAULT}};</p>\n\n<p>On any &quot;false&quot; value for the variable (e.g. &quot;false&quot;, &quot;FALSE&quot;, &quot;no&quot;), the\nmapping will store <code>GIT_AUTO_CRLF_FALSE</code> in the <code>out</code> parameter.</p>\n\n<p>The same thing applies for any &quot;true&quot; value such as &quot;true&quot;, &quot;yes&quot; or &quot;1&quot;, storing\nthe <code>GIT_AUTO_CRLF_TRUE</code> variable.</p>\n\n<p>Otherwise, if the value matches the string &quot;input&quot; (with case insensitive comparison),\nthe given constant will be stored in <code>out</code>, and likewise for &quot;default&quot;.</p>\n\n<p>If not a single match can be made to store in <code>out</code>, an error code will be\nreturned.</p>\n","group":"config"},"git_config_lookup_map_value":{"type":"function","file":"config.h","line":546,"lineto":550,"args":[{"name":"out","type":"int *","comment":"place to store the result of the parsing"},{"name":"maps","type":"const git_cvar_map *","comment":"array of `git_cvar_map` objects specifying the possible mappings"},{"name":"map_n","type":"size_t","comment":"number of mapping objects in `maps`"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int *out,\n\tconst git_cvar_map *maps,\n\tsize_t map_n,\n\tconst char *value","sig":"int *::const git_cvar_map *::size_t::const char *","return":{"type":"int"},"description":"<p>Maps a string value to an integer constant</p>\n","comments":"","group":"config"},"git_config_parse_bool":{"type":"function","file":"config.h","line":562,"lineto":562,"args":[{"name":"out","type":"int *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int *out, const char *value","sig":"int *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as a bool.</p>\n","comments":"<p>Valid values for true are: &#39;true&#39;, &#39;yes&#39;, &#39;on&#39;, 1 or any\n number different from 0\nValid values for false are: &#39;false&#39;, &#39;no&#39;, &#39;off&#39;, 0</p>\n","group":"config"},"git_config_parse_int32":{"type":"function","file":"config.h","line":574,"lineto":574,"args":[{"name":"out","type":"int32_t *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int32_t *out, const char *value","sig":"int32_t *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as an int32.</p>\n","comments":"<p>An optional value suffix of &#39;k&#39;, &#39;m&#39;, or &#39;g&#39; will\ncause the value to be multiplied by 1024, 1048576,\nor 1073741824 prior to output.</p>\n","group":"config"},"git_config_parse_int64":{"type":"function","file":"config.h","line":586,"lineto":586,"args":[{"name":"out","type":"int64_t *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int64_t *out, const char *value","sig":"int64_t *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as an int64.</p>\n","comments":"<p>An optional value suffix of &#39;k&#39;, &#39;m&#39;, or &#39;g&#39; will\ncause the value to be multiplied by 1024, 1048576,\nor 1073741824 prior to output.</p>\n","group":"config"},"git_config_backend_foreach_match":{"type":"function","file":"config.h","line":601,"lineto":605,"args":[{"name":"backend","type":"git_config_backend *","comment":"where to get the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match against config names (can be NULL)"},{"name":"fn","type":"int (*)(const git_config_entry *, void *)"},{"name":"data","type":"void *"}],"argline":"git_config_backend *backend,\n\tconst char *regexp,\n\tint (*fn)(const git_config_entry *, void *),\n\tvoid *data","sig":"git_config_backend *::const char *::int (*)(const git_config_entry *, void *)::void *","return":{"type":"int"},"description":"<p>Perform an operation on each config variable in given config backend\nmatching a regular expression.</p>\n","comments":"<p>This behaviors like <code>git_config_foreach_match</code> except instead of all config\nentries it just enumerates through the given backend entry.</p>\n","group":"config"},"git_cred_userpass":{"type":"function","file":"cred_helpers.h","line":43,"lineto":48,"args":[{"name":"cred","type":"git_cred **","comment":"The newly created credential object."},{"name":"url","type":"const char *","comment":"The resource for which we are demanding a credential."},{"name":"user_from_url","type":"const char *","comment":"The username that was embedded in a \"user@host\" remote url, or NULL if not included."},{"name":"allowed_types","type":"unsigned int","comment":"A bitmask stating which cred types are OK to return."},{"name":"payload","type":"void *","comment":"The payload provided when specifying this callback. (This is interpreted as a `git_cred_userpass_payload*`.)"}],"argline":"git_cred **cred,\n\t\tconst char *url,\n\t\tconst char *user_from_url,\n\t\tunsigned int allowed_types,\n\t\tvoid *payload","sig":"git_cred **::const char *::const char *::unsigned int::void *","return":{"type":"int"},"description":"<p>Stock callback usable as a git_cred_acquire_cb. This calls\ngit_cred_userpass_plaintext_new unless the protocol has not specified\n<code>GIT_CREDTYPE_USERPASS_PLAINTEXT</code> as an allowed type.</p>\n","comments":"","group":"cred"},"git_diff_list_free":{"type":"function","file":"diff.h","line":536,"lineto":536,"args":[{"name":"diff","type":"git_diff_list *","comment":"The previously created diff list; cannot be used after free."}],"argline":"git_diff_list *diff","sig":"git_diff_list *","return":{"type":"void"},"description":"<p>Deallocate a diff list.</p>\n","comments":"","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_list_free-2","ex/HEAD/diff.html#git_diff_list_free-3"],"log.c":["ex/HEAD/log.html#git_diff_list_free-21","ex/HEAD/log.html#git_diff_list_free-22"]}},"git_diff_tree_to_tree":{"type":"function","file":"diff.h","line":554,"lineto":559,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the trees."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"new_tree","type":"git_tree *","comment":"A git_tree object to diff to, or NULL for empty tree."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tgit_tree *new_tree,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::git_tree *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list with the difference between two tree objects.</p>\n","comments":"<p>This is equivalent to <code>git diff &lt;old-tree&gt; &lt;new-tree&gt;</code></p>\n\n<p>The first tree will be used for the &quot;old_file&quot; side of the delta and the\nsecond tree will be used for the &quot;new_file&quot; side of the delta. You can\npass NULL to indicate an empty tree, although it is an error to pass\nNULL for both the <code>old_tree</code> and <code>new_tree</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_tree_to_tree-4"],"log.c":["ex/HEAD/log.html#git_diff_tree_to_tree-23","ex/HEAD/log.html#git_diff_tree_to_tree-24"]}},"git_diff_tree_to_index":{"type":"function","file":"diff.h","line":576,"lineto":581,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the tree and index."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"index","type":"git_index *","comment":"The index to diff with; repo index used if NULL."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tgit_index *index,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::git_index *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between a tree and repository index.</p>\n","comments":"<p>This is equivalent to <code>git diff --cached &lt;treeish&gt;</code> or if you pass\nthe HEAD tree, then like <code>git diff --cached</code>.</p>\n\n<p>The tree you pass will be used for the &quot;old_file&quot; side of the delta, and\nthe index will be used for the &quot;new_file&quot; side of the delta.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_tree_to_index-5","ex/HEAD/diff.html#git_diff_tree_to_index-6","ex/HEAD/diff.html#git_diff_tree_to_index-7"]}},"git_diff_index_to_workdir":{"type":"function","file":"diff.h","line":599,"lineto":603,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository."},{"name":"index","type":"git_index *","comment":"The index to diff from; repo index used if NULL."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_index *index,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_index *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between the repository index and the workdir directory.</p>\n","comments":"<p>This matches the <code>git diff</code> command. See the note below on\n<code>git_diff_tree_to_workdir</code> for a discussion of the difference between\n<code>git diff</code> and <code>git diff HEAD</code> and how to emulate a <code>git diff &lt;treeish&gt;</code>\nusing libgit2.</p>\n\n<p>The index will be used for the &quot;old_file&quot; side of the delta, and the\nworking directory will be used for the &quot;new_file&quot; side of the delta.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_index_to_workdir-8","ex/HEAD/diff.html#git_diff_index_to_workdir-9"]}},"git_diff_tree_to_workdir":{"type":"function","file":"diff.h","line":634,"lineto":638,"args":[{"name":"diff","type":"git_diff_list **","comment":"A pointer to a git_diff_list pointer that will be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the tree."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between a tree and the working directory.</p>\n","comments":"<p>The tree you provide will be used for the &quot;old_file&quot; side of the delta,\nand the working directory will be used for the &quot;new_file&quot; side.</p>\n\n<p>Please note: this is <em>NOT</em> the same as <code>git diff &lt;treeish&gt;</code>. Running\n<code>git diff HEAD</code> or the like actually uses information from the index,\nalong with the tree and working directory info.</p>\n\n<p>This function returns strictly the differences between the tree and the\nfiles contained in the working directory, regardless of the state of\nfiles in the index. It may come as a surprise, but there is no direct\nequivalent in core git.</p>\n\n<p>To emulate <code>git diff &lt;treeish&gt;</code>, call both <code>git_diff_tree_to_index</code> and\n<code>git_diff_index_to_workdir</code>, then call <code>git_diff_merge</code> on the results.\nThat will yield a <code>git_diff_list</code> that matches the git output.</p>\n\n<p>If this seems confusing, take the case of a file with a staged deletion\nwhere the file has then been put back into the working dir and modified.\nThe tree-to-workdir diff for that file is &#39;modified&#39;, but core git would\nshow status &#39;deleted&#39; since there is a pending deletion in the index.</p>\n","group":"diff"},"git_diff_merge":{"type":"function","file":"diff.h","line":653,"lineto":655,"args":[{"name":"onto","type":"git_diff_list *","comment":"Diff to merge into."},{"name":"from","type":"const git_diff_list *","comment":"Diff to merge."}],"argline":"git_diff_list *onto,\n\tconst git_diff_list *from","sig":"git_diff_list *::const git_diff_list *","return":{"type":"int"},"description":"<p>Merge one diff list into another.</p>\n","comments":"<p>This merges items from the &quot;from&quot; list into the &quot;onto&quot; list. The\nresulting diff list will have all items that appear in either list.\nIf an item appears in both lists, then it will be &quot;merged&quot; to appear\nas if the old version was from the &quot;onto&quot; list and the new version\nis from the &quot;from&quot; list (with the exception that if the item has a\npending DELETE in the middle, then it will show as deleted).</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_merge-10"]}},"git_diff_find_similar":{"type":"function","file":"diff.h","line":669,"lineto":671,"args":[{"name":"diff","type":"git_diff_list *","comment":"Diff list to run detection algorithms on"},{"name":"options","type":"git_diff_find_options *","comment":"Control how detection should be run, NULL for defaults"}],"argline":"git_diff_list *diff,\n\tgit_diff_find_options *options","sig":"git_diff_list *::git_diff_find_options *","return":{"type":"int","comment":"0 on success, -1 on failure"},"description":"<p>Transform a diff list marking file renames, copies, etc.</p>\n","comments":"<p>This modifies a diff list in place, replacing old entries that look\nlike renames or copies with new entries reflecting those changes.\nThis also will, if requested, break modified files into add/remove\npairs if the amount of change is above a threshold.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_find_similar-11"]}},"git_diff_foreach":{"type":"function","file":"diff.h","line":708,"lineto":713,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback function to make per file in the diff."},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Optional callback to make per hunk of text diff. This callback is called to describe a range of lines in the diff. It will not be issued for binary files."},{"name":"line_cb","type":"git_diff_data_cb","comment":"Optional callback to make per line of diff text. This same callback will be made for context lines, added, and removed lines, and even for a deleted trailing newline."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_list *diff,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb line_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all deltas in a diff list issuing callbacks.</p>\n","comments":"<p>This will iterate through all of the files described in a diff. You\nshould provide a file callback to learn about each file.</p>\n\n<p>The &quot;hunk&quot; and &quot;line&quot; callbacks are optional, and the text diff of the\nfiles will only be calculated if they are not NULL. Of course, these\ncallbacks will not be invoked for binary files on the diff list or for\nfiles whose only changed is a file mode change.</p>\n\n<p>Returning a non-zero value from any of the callbacks will terminate\nthe iteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff"},"git_diff_print_compact":{"type":"function","file":"diff.h","line":726,"lineto":729,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback to make per line of diff text."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callback."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff --name-status&quot;.</p>\n","comments":"<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_compact-12"]}},"git_diff_print_raw":{"type":"function","file":"diff.h","line":742,"lineto":745,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback to make per line of diff text."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callback."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff --raw&quot;.</p>\n","comments":"<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_raw-13"]}},"git_diff_status_char":{"type":"function","file":"diff.h","line":759,"lineto":759,"args":[{"name":"status","type":"git_delta_t","comment":"The git_delta_t value to look up"}],"argline":"git_delta_t status","sig":"git_delta_t","return":{"type":"char","comment":"The single character label for that code"},"description":"<p>Look up the single character abbreviation for a delta status code.</p>\n","comments":"<p>When you call <code>git_diff_print_compact</code> it prints single letter codes into\nthe output such as &#39;A&#39; for added, &#39;D&#39; for deleted, &#39;M&#39; for modified, etc.\nIt is sometimes convenient to convert a git_delta_t value into these\nletters for your own purposes. This function does just that. By the\nway, unmodified will return a space (i.e. &#39; &#39;).</p>\n","group":"diff"},"git_diff_print_patch":{"type":"function","file":"diff.h","line":778,"lineto":781,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback function to output lines of the diff. This same function will be called for file headers, hunk headers, and diff lines. Fortunately, you can probably use various GIT_DIFF_LINE constants to determine what text you are given."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff&quot;.</p>\n","comments":"<p>This is a super easy way to generate a patch from a diff.</p>\n\n<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_patch-14"],"log.c":["ex/HEAD/log.html#git_diff_print_patch-25"]}},"git_diff_num_deltas":{"type":"function","file":"diff.h","line":789,"lineto":789,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions"}],"argline":"git_diff_list *diff","sig":"git_diff_list *","return":{"type":"size_t","comment":"Count of number of deltas in the list"},"description":"<p>Query how many diff records are there in a diff list.</p>\n","comments":"","group":"diff","examples":{"log.c":["ex/HEAD/log.html#git_diff_num_deltas-26"]}},"git_diff_num_deltas_of_type":{"type":"function","file":"diff.h","line":802,"lineto":804,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions"},{"name":"type","type":"git_delta_t","comment":"A git_delta_t value to filter the count"}],"argline":"git_diff_list *diff,\n\tgit_delta_t type","sig":"git_diff_list *::git_delta_t","return":{"type":"size_t","comment":"Count of number of deltas matching delta_t type"},"description":"<p>Query how many diff deltas are there in a diff list filtered by type.</p>\n","comments":"<p>This works just like <code>git_diff_entrycount()</code> with an extra parameter\nthat is a <code>git_delta_t</code> and returns just the count of how many deltas\nmatch that particular type.</p>\n","group":"diff"},"git_diff_is_sorted_icase":{"type":"function","file":"diff.h","line":812,"lineto":812,"args":[{"name":"diff","type":"const git_diff_list *","comment":"Diff list to check"}],"argline":"const git_diff_list *diff","sig":"const git_diff_list *","return":{"type":"int","comment":"0 if case sensitive, 1 if case is ignored"},"description":"<p>Check if deltas are sorted case sensitively or insensitively.</p>\n","comments":"","group":"diff"},"git_diff_get_patch":{"type":"function","file":"diff.h","line":839,"lineto":843,"args":[{"name":"patch_out","type":"git_diff_patch **","comment":"Output parameter for the delta patch object"},{"name":"delta_out","type":"const git_diff_delta **","comment":"Output parameter for the delta object"},{"name":"diff","type":"git_diff_list *","comment":"Diff list object"},{"name":"idx","type":"size_t","comment":"Index into diff list"}],"argline":"git_diff_patch **patch_out,\n\tconst git_diff_delta **delta_out,\n\tgit_diff_list *diff,\n\tsize_t idx","sig":"git_diff_patch **::const git_diff_delta **::git_diff_list *::size_t","return":{"type":"int","comment":"0 on success, other value < 0 on error"},"description":"<p>Return the diff delta and patch for an entry in the diff list.</p>\n","comments":"<p>The <code>git_diff_patch</code> is a newly created object contains the text diffs\nfor the delta. You have to call <code>git_diff_patch_free()</code> when you are\ndone with it. You can use the patch object to loop over all the hunks\nand lines in the diff of the one delta.</p>\n\n<p>For an unchanged file or a binary file, no <code>git_diff_patch</code> will be\ncreated, the output will be set to NULL, and the <code>binary</code> flag will be\nset true in the <code>git_diff_delta</code> structure.</p>\n\n<p>The <code>git_diff_delta</code> pointer points to internal data and you do not have\nto release it when you are done with it. It will go away when the\n<code>git_diff_list</code> and <code>git_diff_patch</code> go away.</p>\n\n<p>It is okay to pass NULL for either of the output parameters; if you pass\nNULL for the <code>git_diff_patch</code>, then the text diff will not be calculated.</p>\n","group":"diff"},"git_diff_patch_free":{"type":"function","file":"diff.h","line":848,"lineto":849,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"void"},"description":"<p>Free a git_diff_patch object.</p>\n","comments":"","group":"diff"},"git_diff_patch_delta":{"type":"function","file":"diff.h","line":854,"lineto":855,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"const git_diff_delta *"},"description":"<p>Get the delta associated with a patch</p>\n","comments":"","group":"diff"},"git_diff_patch_num_hunks":{"type":"function","file":"diff.h","line":860,"lineto":861,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"size_t"},"description":"<p>Get the number of hunks in a patch</p>\n","comments":"","group":"diff"},"git_diff_patch_line_stats":{"type":"function","file":"diff.h","line":879,"lineto":883,"args":[{"name":"total_context","type":"size_t *","comment":"Count of context lines in output, can be NULL."},{"name":"total_additions","type":"size_t *","comment":"Count of addition lines in output, can be NULL."},{"name":"total_deletions","type":"size_t *","comment":"Count of deletion lines in output, can be NULL."},{"name":"patch","type":"const git_diff_patch *","comment":"The git_diff_patch object"}],"argline":"size_t *total_context,\n\tsize_t *total_additions,\n\tsize_t *total_deletions,\n\tconst git_diff_patch *patch","sig":"size_t *::size_t *::size_t *::const git_diff_patch *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get line counts of each type in a patch.</p>\n","comments":"<p>This helps imitate a diff --numstat type of output. For that purpose,\nyou only need the <code>total_additions</code> and <code>total_deletions</code> values, but we\ninclude the <code>total_context</code> line count in case you want the total number\nof lines of diff output that will be generated.</p>\n\n<p>All outputs are optional. Pass NULL if you don&#39;t need a particular count.</p>\n","group":"diff"},"git_diff_patch_get_hunk":{"type":"function","file":"diff.h","line":901,"lineto":907,"args":[{"name":"range","type":"const git_diff_range **","comment":"Output pointer to git_diff_range of hunk"},{"name":"header","type":"const char **","comment":"Output pointer to header string for hunk. Unlike the content pointer for each line, this will be NUL-terminated"},{"name":"header_len","type":"size_t *","comment":"Output value of characters in header string"},{"name":"lines_in_hunk","type":"size_t *","comment":"Output count of total lines in this hunk"},{"name":"patch","type":"git_diff_patch *","comment":"Input pointer to patch object"},{"name":"hunk_idx","type":"size_t","comment":"Input index of hunk to get information about"}],"argline":"const git_diff_range **range,\n\tconst char **header,\n\tsize_t *header_len,\n\tsize_t *lines_in_hunk,\n\tgit_diff_patch *patch,\n\tsize_t hunk_idx","sig":"const git_diff_range **::const char **::size_t *::size_t *::git_diff_patch *::size_t","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if hunk_idx out of range, <0 on error"},"description":"<p>Get the information about a hunk in a patch</p>\n","comments":"<p>Given a patch and a hunk index into the patch, this returns detailed\ninformation about that hunk. Any of the output pointers can be passed\nas NULL if you don&#39;t care about that particular piece of information.</p>\n","group":"diff"},"git_diff_patch_num_lines_in_hunk":{"type":"function","file":"diff.h","line":916,"lineto":918,"args":[{"name":"patch","type":"git_diff_patch *","comment":"The git_diff_patch object"},{"name":"hunk_idx","type":"size_t","comment":"Index of the hunk"}],"argline":"git_diff_patch *patch,\n\tsize_t hunk_idx","sig":"git_diff_patch *::size_t","return":{"type":"int","comment":"Number of lines in hunk or -1 if invalid hunk index"},"description":"<p>Get the number of lines in a hunk.</p>\n","comments":"","group":"diff"},"git_diff_patch_get_line_in_hunk":{"type":"function","file":"diff.h","line":938,"lineto":946,"args":[{"name":"line_origin","type":"char *","comment":"A GIT_DIFF_LINE constant from above"},{"name":"content","type":"const char **","comment":"Pointer to content of diff line, not NUL-terminated"},{"name":"content_len","type":"size_t *","comment":"Number of characters in content"},{"name":"old_lineno","type":"int *","comment":"Line number in old file or -1 if line is added"},{"name":"new_lineno","type":"int *","comment":"Line number in new file or -1 if line is deleted"},{"name":"patch","type":"git_diff_patch *","comment":"The patch to look in"},{"name":"hunk_idx","type":"size_t","comment":"The index of the hunk"},{"name":"line_of_hunk","type":"size_t","comment":"The index of the line in the hunk"}],"argline":"char *line_origin,\n\tconst char **content,\n\tsize_t *content_len,\n\tint *old_lineno,\n\tint *new_lineno,\n\tgit_diff_patch *patch,\n\tsize_t hunk_idx,\n\tsize_t line_of_hunk","sig":"char *::const char **::size_t *::int *::int *::git_diff_patch *::size_t::size_t","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Get data about a line in a hunk of a patch.</p>\n","comments":"<p>Given a patch, a hunk index, and a line index in the hunk, this\nwill return a lot of details about that line. If you pass a hunk\nindex larger than the number of hunks or a line index larger than\nthe number of lines in the hunk, this will return -1.</p>\n","group":"diff"},"git_diff_patch_size":{"type":"function","file":"diff.h","line":964,"lineto":968,"args":[{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"},{"name":"include_context","type":"int","comment":"Include context lines in size if non-zero"},{"name":"include_hunk_headers","type":"int","comment":"Include hunk header lines if non-zero"},{"name":"include_file_headers","type":"int","comment":"Include file header lines if non-zero"}],"argline":"git_diff_patch *patch,\n\tint include_context,\n\tint include_hunk_headers,\n\tint include_file_headers","sig":"git_diff_patch *::int::int::int","return":{"type":"size_t","comment":"The number of bytes of data"},"description":"<p>Look up size of patch diff data in bytes</p>\n","comments":"<p>This returns the raw size of the patch data. This only includes the\nactual data from the lines of the diff, not the file or hunk headers.</p>\n\n<p>If you pass <code>include_context</code> as true (non-zero), this will be the size\nof all of the diff output; if you pass it as false (zero), this will\nonly include the actual changed lines (as if <code>context_lines</code> was 0).</p>\n","group":"diff"},"git_diff_patch_print":{"type":"function","file":"diff.h","line":982,"lineto":985,"args":[{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback function to output lines of the patch. Will be called for file headers, hunk headers, and diff lines."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_patch *patch,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_patch *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Serialize the patch to text via callback.</p>\n","comments":"<p>Returning a non-zero value from the callback will terminate the iteration\nand cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff"},"git_diff_patch_to_str":{"type":"function","file":"diff.h","line":994,"lineto":996,"args":[{"name":"string","type":"char **","comment":"Allocated string; caller must free."},{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"}],"argline":"char **string,\n\tgit_diff_patch *patch","sig":"char **::git_diff_patch *","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Get the content of a patch as a single diff text.</p>\n","comments":"","group":"diff"},"git_diff_blobs":{"type":"function","file":"diff.h","line":1032,"lineto":1041,"args":[{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"new_blob","type":"const git_blob *","comment":"Blob for new side of diff, or NULL for empty blob"},{"name":"new_as_path","type":"const char *","comment":"Treat new blob as if it had this filename; can be NULL"},{"name":"options","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback for \"file\"; made once if there is a diff; can be NULL"},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Callback for each hunk in diff; can be NULL"},{"name":"line_cb","type":"git_diff_data_cb","comment":"Callback for each line in diff; can be NULL"},{"name":"payload","type":"void *","comment":"Payload passed to each callback function"}],"argline":"const git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst git_blob *new_blob,\n\tconst char *new_as_path,\n\tconst git_diff_options *options,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb line_cb,\n\tvoid *payload","sig":"const git_blob *::const char *::const git_blob *::const char *::const git_diff_options *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback return, or error code"},"description":"<p>Directly run a diff on two blobs.</p>\n","comments":"<p>Compared to a file, a blob lacks some contextual information. As such,\nthe <code>git_diff_file</code> given to the callback will have some fake data; i.e.\n<code>mode</code> will be 0 and <code>path</code> will be NULL.</p>\n\n<p>NULL is allowed for either <code>old_blob</code> or <code>new_blob</code> and will be treated\nas an empty blob, with the <code>oid</code> set to NULL in the <code>git_diff_file</code> data.\nPassing NULL for both blobs is a noop; no callbacks will be made at all.</p>\n\n<p>We do run a binary content check on the blob content and if either blob\nlooks like binary data, the <code>git_diff_delta</code> binary attribute will be set\nto 1 and no call to the hunk_cb nor line_cb will be made (unless you pass\n<code>GIT_DIFF_FORCE_TEXT</code> of course).</p>\n","group":"diff"},"git_diff_patch_from_blobs":{"type":"function","file":"diff.h","line":1059,"lineto":1065,"args":[{"name":"out","type":"git_diff_patch **","comment":"The generated patch; NULL on error"},{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"new_blob","type":"const git_blob *","comment":"Blob for new side of diff, or NULL for empty blob"},{"name":"new_as_path","type":"const char *","comment":"Treat new blob as if it had this filename; can be NULL"},{"name":"opts","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"}],"argline":"git_diff_patch **out,\n\tconst git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst git_blob *new_blob,\n\tconst char *new_as_path,\n\tconst git_diff_options *opts","sig":"git_diff_patch **::const git_blob *::const char *::const git_blob *::const char *::const git_diff_options *","return":{"type":"int","comment":"0 on success or error code < 0"},"description":"<p>Directly generate a patch from the difference between two blobs.</p>\n","comments":"<p>This is just like <code>git_diff_blobs()</code> except it generates a patch object\nfor the difference instead of directly making callbacks. You can use the\nstandard <code>git_diff_patch</code> accessor functions to read the patch data, and\nyou must call <code>git_diff_patch_free()</code> on the patch when done.</p>\n","group":"diff"},"git_diff_blob_to_buffer":{"type":"function","file":"diff.h","line":1091,"lineto":1101,"args":[{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"buffer","type":"const char *","comment":"Raw data for new side of diff, or NULL for empty"},{"name":"buffer_len","type":"size_t","comment":"Length of raw data for new side of diff"},{"name":"buffer_as_path","type":"const char *","comment":"Treat buffer as if it had this filename; can be NULL"},{"name":"options","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback for \"file\"; made once if there is a diff; can be NULL"},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Callback for each hunk in diff; can be NULL"},{"name":"data_cb","type":"git_diff_data_cb","comment":"Callback for each line in diff; can be NULL"},{"name":"payload","type":"void *","comment":"Payload passed to each callback function"}],"argline":"const git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst char *buffer,\n\tsize_t buffer_len,\n\tconst char *buffer_as_path,\n\tconst git_diff_options *options,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb data_cb,\n\tvoid *payload","sig":"const git_blob *::const char *::const char *::size_t::const char *::const git_diff_options *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback return, or error code"},"description":"<p>Directly run a diff between a blob and a buffer.</p>\n","comments":"<p>As with <code>git_diff_blobs</code>, comparing a blob and buffer lacks some context,\nso the <code>git_diff_file</code> parameters to the callbacks will be faked a la the\nrules for <code>git_diff_blobs()</code>.</p>\n\n<p>Passing NULL for <code>old_blob</code> will be treated as an empty blob (i.e. the\n<code>file_cb</code> will be invoked with GIT_DELTA_ADDED and the diff will be the\nentire content of the buffer added). Passing NULL to the buffer will do\nthe reverse, with GIT_DELTA_REMOVED and blob content removed.</p>\n","group":"diff"},"git_diff_patch_from_blob_and_buffer":{"type":"function","file":"diff.h","line":1120,"lineto":1130,"args":[{"name":"out","type":"git_diff_patch **","comment":"The generated patch; NULL on error"},{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"buffer","type":"const char *","comment":"Raw data for new side of diff, or NULL for empty"},{"name":"buffer_len","type":"size_t","comment":"Length of raw data for new side of diff"},{"name":"buffer_as_path","type":"const char *","comment":"Treat buffer as if it had this filename; can be NULL"},{"name":"opts","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"}],"argline":"git_diff_patch **out,\n\tconst git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst char *buffer,\n\tsize_t buffer_len,\n\tconst char *buffer_as_path,\n\tconst git_diff_options *opts","sig":"git_diff_patch **::const git_blob *::const char *::const char *::size_t::const char *::const git_diff_options *","return":{"type":"int","comment":"0 on success or error code < 0"},"description":"<p>Directly generate a patch from the difference between a blob and a buffer.</p>\n","comments":"<p>This is just like <code>git_diff_blob_to_buffer()</code> except it generates a patch\nobject for the difference instead of directly making callbacks. You can\nuse the standard <code>git_diff_patch</code> accessor functions to read the patch\ndata, and you must call <code>git_diff_patch_free()</code> on the patch when done.</p>\n","group":"diff"},"giterr_last":{"type":"function","file":"errors.h","line":78,"lineto":78,"args":[],"argline":"void","sig":"","return":{"type":"const git_error *","comment":"A git_error object."},"description":"<p>Return the last <code>git_error</code> object that was generated for the\ncurrent thread or NULL if no error has occurred.</p>\n","comments":"","group":"giterr","examples":{"general.c":["ex/HEAD/general.html#giterr_last-27"],"network/clone.c":["ex/HEAD/network/clone.html#giterr_last-2"],"network/git2.c":["ex/HEAD/network/git2.html#giterr_last-1","ex/HEAD/network/git2.html#giterr_last-2"],"rev-list.c":["ex/HEAD/rev-list.html#giterr_last-1"],"status.c":["ex/HEAD/status.html#giterr_last-1"]}},"giterr_clear":{"type":"function","file":"errors.h","line":83,"lineto":83,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Clear the last library error that occurred for this thread.</p>\n","comments":"","group":"giterr"},"giterr_set_str":{"type":"function","file":"errors.h","line":106,"lineto":106,"args":[{"name":"error_class","type":"int","comment":"One of the `git_error_t` enum above describing the general subsystem that is responsible for the error."},{"name":"string","type":"const char *","comment":"The formatted error message to keep"}],"argline":"int error_class, const char *string","sig":"int::const char *","return":{"type":"void"},"description":"<p>Set the error message string for this thread.</p>\n","comments":"<p>This function is public so that custom ODB backends and the like can\nrelay an error message through libgit2. Most regular users of libgit2\nwill never need to call this function -- actually, calling it in most\ncircumstances (for example, calling from within a callback function)\nwill just end up having the value overwritten by libgit2 internals.</p>\n\n<p>This error message is stored in thread-local storage and only applies\nto the particular thread that this libgit2 call is made from.</p>\n\n<p>NOTE: Passing the <code>error_class</code> as GITERR_OS has a special behavior: we\nattempt to append the system default error message for the last OS error\nthat occurred and then clear the last error. The specific implementation\nof looking up and clearing this last OS error will vary by platform.</p>\n","group":"giterr"},"giterr_set_oom":{"type":"function","file":"errors.h","line":117,"lineto":117,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Set the error message to a special value for memory allocation failure.</p>\n","comments":"<p>The normal <code>giterr_set_str()</code> function attempts to <code>strdup()</code> the string\nthat is passed in. This is not a good idea when the error in question\nis a memory allocation failure. That circumstance has a special setter\nfunction that sets the error string to a known and statically allocated\ninternal value.</p>\n","group":"giterr"},"git_graph_ahead_behind":{"type":"function","file":"graph.h","line":37,"lineto":37,"args":[{"name":"ahead","type":"size_t *","comment":"number of unique from commits in `upstream`"},{"name":"behind","type":"size_t *","comment":"number of unique from commits in `local`"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"local","type":"const git_oid *","comment":"the commit for local"},{"name":"upstream","type":"const git_oid *","comment":"the commit for upstream"}],"argline":"size_t *ahead, size_t *behind, git_repository *repo, const git_oid *local, const git_oid *upstream","sig":"size_t *::size_t *::git_repository *::const git_oid *::const git_oid *","return":{"type":"int"},"description":"<p>Count the number of unique commits between two commit objects</p>\n","comments":"<p>There is no need for branches containing the commits to have any\nupstream relationship, but it helps to think of one as a branch and\nthe other as its upstream, the <code>ahead</code> and <code>behind</code> values will be\nwhat git would report for the branches.</p>\n","group":"graph"},"git_ignore_add_rule":{"type":"function","file":"ignore.h","line":37,"lineto":39,"args":[{"name":"repo","type":"git_repository *","comment":"The repository to add ignore rules to."},{"name":"rules","type":"const char *","comment":"Text of rules, a la the contents of a .gitignore file. It is okay to have multiple rules in the text; if so, each rule should be terminated with a newline."}],"argline":"git_repository *repo,\n\tconst char *rules","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success"},"description":"<p>Add ignore rules for a repository.</p>\n","comments":"<p>Excludesfile rules (i.e. .gitignore rules) are generally read from\n.gitignore files in the repository tree or from a shared system file\nonly if a &quot;core.excludesfile&quot; config value is set. The library also\nkeeps a set of per-repository internal ignores that can be configured\nin-memory and will not persist. This function allows you to add to\nthat internal rules list.</p>\n\n<p>Example usage:</p>\n\n<pre><code>error = git_ignore_add_rule(myrepo, &quot;*.c\\ndir/\\nFile with space\\n&quot;);\n</code></pre>\n\n<p>This would add three rules to the ignores.</p>\n","group":"ignore"},"git_ignore_clear_internal_rules":{"type":"function","file":"ignore.h","line":52,"lineto":53,"args":[{"name":"repo","type":"git_repository *","comment":"The repository to remove ignore rules from."}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"0 on success"},"description":"<p>Clear ignore rules that were explicitly added.</p>\n","comments":"<p>Resets to the default internal ignore rules. This will not turn off\nrules in .gitignore files that actually exist in the filesystem.</p>\n\n<p>The default internal ignores ignore &quot;.&quot;, &quot;..&quot; and &quot;.git&quot; entries.</p>\n","group":"ignore"},"git_ignore_path_is_ignored":{"type":"function","file":"ignore.h","line":71,"lineto":78,"args":[{"name":"ignored","type":"int *","comment":"boolean returning 0 if the file is not ignored, 1 if it is"},{"name":"repo","type":"git_repository *","comment":"a repository object"},{"name":"path","type":"const char *","comment":"the file to check ignores for, relative to the repo's workdir."}],"argline":"int *ignored,\n\tgit_repository *repo,\n\tconst char *path","sig":"int *::git_repository *::const char *","return":{"type":"int","comment":"0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not."},"description":"<p>Test if the ignore rules apply to a given path.</p>\n","comments":"<p>This function checks the ignore rules to see if they would apply to the\ngiven file. This indicates if the file would be ignored regardless of\nwhether the file is already in the index or committed to the repository.</p>\n\n<p>One way to think of this is if you were to do &quot;git add .&quot; on the\ndirectory containing the file, would it be added or not?</p>\n","group":"ignore"},"git_index_open":{"type":"function","file":"index.h","line":173,"lineto":173,"args":[{"name":"out","type":"git_index **","comment":"the pointer for the new index"},{"name":"index_path","type":"const char *","comment":"the path to the index file in disk"}],"argline":"git_index **out, const char *index_path","sig":"git_index **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new bare Git index object as a memory representation\nof the Git index file in &#39;index_path&#39;, without a repository\nto back it.</p>\n","comments":"<p>Since there is no ODB or working directory behind this index,\nany Index methods which rely on these (e.g. index_add) will\nfail with the GIT_EBAREINDEX error code.</p>\n\n<p>If you need to access the index of an actual repository,\nuse the <code>git_repository_index</code> wrapper.</p>\n\n<p>The index must be freed once it&#39;s no longer in use.</p>\n","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_open-1"]}},"git_index_new":{"type":"function","file":"index.h","line":186,"lineto":186,"args":[{"name":"out","type":"git_index **","comment":"the pointer for the new index"}],"argline":"git_index **out","sig":"git_index **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an in-memory index object.</p>\n","comments":"<p>This index object cannot be read/written to the filesystem,\nbut may be used to perform in-memory index operations.</p>\n\n<p>The index must be freed once it&#39;s no longer in use.</p>\n","group":"index"},"git_index_free":{"type":"function","file":"index.h","line":193,"lineto":193,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Free an existing index object.</p>\n","comments":"","group":"index","examples":{"general.c":["ex/HEAD/general.html#git_index_free-28"],"init.c":["ex/HEAD/init.html#git_index_free-2"],"showindex.c":["ex/HEAD/showindex.html#git_index_free-2"]}},"git_index_owner":{"type":"function","file":"index.h","line":201,"lineto":201,"args":[{"name":"index","type":"const git_index *","comment":"The index"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"git_repository *","comment":"A pointer to the repository"},"description":"<p>Get the repository this index relates to</p>\n","comments":"","group":"index"},"git_index_caps":{"type":"function","file":"index.h","line":209,"lineto":209,"args":[{"name":"index","type":"const git_index *","comment":"An existing index object"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"unsigned int","comment":"A combination of GIT_INDEXCAP values"},"description":"<p>Read index capabilities flags.</p>\n","comments":"","group":"index"},"git_index_set_caps":{"type":"function","file":"index.h","line":222,"lineto":222,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"caps","type":"unsigned int","comment":"A combination of GIT_INDEXCAP values"}],"argline":"git_index *index, unsigned int caps","sig":"git_index *::unsigned int","return":{"type":"int","comment":"0 on success, -1 on failure"},"description":"<p>Set index capabilities flags.</p>\n","comments":"<p>If you pass <code>GIT_INDEXCAP_FROM_OWNER</code> for the caps, then the\ncapabilities will be read from the config of the owner object,\nlooking at <code>core.ignorecase</code>, <code>core.filemode</code>, <code>core.symlinks</code>.</p>\n","group":"index"},"git_index_read":{"type":"function","file":"index.h","line":231,"lineto":231,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update the contents of an existing index object in memory\nby reading from the hard disk.</p>\n","comments":"","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_read-3"]}},"git_index_write":{"type":"function","file":"index.h","line":240,"lineto":240,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an existing index object from memory back to disk\nusing an atomic file lock.</p>\n","comments":"","group":"index"},"git_index_path":{"type":"function","file":"index.h","line":248,"lineto":248,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"const char *","comment":"path to index file or NULL for in-memory index"},"description":"<p>Get the full path to the index file on disk.</p>\n","comments":"","group":"index"},"git_index_read_tree":{"type":"function","file":"index.h","line":259,"lineto":259,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"tree","type":"const git_tree *","comment":"tree to read"}],"argline":"git_index *index, const git_tree *tree","sig":"git_index *::const git_tree *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a tree into the index file with stats</p>\n","comments":"<p>The current index contents will be replaced by the specified tree.</p>\n","group":"index"},"git_index_write_tree":{"type":"function","file":"index.h","line":280,"lineto":280,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store the OID of the written tree"},{"name":"index","type":"git_index *","comment":"Index to write"}],"argline":"git_oid *out, git_index *index","sig":"git_oid *::git_index *","return":{"type":"int","comment":"0 on success, GIT_EUNMERGED when the index is not clean or an error code"},"description":"<p>Write the index as a tree</p>\n","comments":"<p>This method will scan the index and write a representation\nof its current state back to disk; it recursively creates\ntree objects for each of the subtrees stored in the index,\nbut only returns the OID of the root tree. This is the OID\nthat can be used e.g. to create a commit.</p>\n\n<p>The index instance cannot be bare, and needs to be associated\nto an existing repository.</p>\n\n<p>The index must not contain any file in conflict.</p>\n","group":"index","examples":{"init.c":["ex/HEAD/init.html#git_index_write_tree-3"]}},"git_index_write_tree_to":{"type":"function","file":"index.h","line":297,"lineto":297,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store OID of the the written tree"},{"name":"index","type":"git_index *","comment":"Index to write"},{"name":"repo","type":"git_repository *","comment":"Repository where to write the tree"}],"argline":"git_oid *out, git_index *index, git_repository *repo","sig":"git_oid *::git_index *::git_repository *","return":{"type":"int","comment":"0 on success, GIT_EUNMERGED when the index is not clean or an error code"},"description":"<p>Write the index as a tree to the given repository</p>\n","comments":"<p>This method will do the same as <code>git_index_write_tree</code>, but\nletting the user choose the repository where the tree will\nbe written.</p>\n\n<p>The index must not contain any file in conflict.</p>\n","group":"index"},"git_index_entrycount":{"type":"function","file":"index.h","line":316,"lineto":316,"args":[{"name":"index","type":"const git_index *","comment":"an existing index object"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"size_t","comment":"integer of count of current entries"},"description":"<p>Get the count of entries currently in the index</p>\n","comments":"","group":"index","examples":{"general.c":["ex/HEAD/general.html#git_index_entrycount-29"],"showindex.c":["ex/HEAD/showindex.html#git_index_entrycount-4"]}},"git_index_clear":{"type":"function","file":"index.h","line":325,"lineto":325,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Clear the contents (all the entries) of an index object.\nThis clears the index object in memory; changes must be manually\nwritten to disk for them to take effect.</p>\n","comments":"","group":"index"},"git_index_get_byindex":{"type":"function","file":"index.h","line":338,"lineto":339,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_entry *","comment":"a pointer to the entry; NULL if out of bounds"},"description":"<p>Get a pointer to one of the entries in the index</p>\n","comments":"<p>The entry is not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index","examples":{"general.c":["ex/HEAD/general.html#git_index_get_byindex-30"],"showindex.c":["ex/HEAD/showindex.html#git_index_get_byindex-5"]}},"git_index_get_bypath":{"type":"function","file":"index.h","line":353,"lineto":354,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *path, int stage","sig":"git_index *::const char *::int","return":{"type":"const git_index_entry *","comment":"a pointer to the entry; NULL if it was not found"},"description":"<p>Get a pointer to one of the entries in the index</p>\n","comments":"<p>The entry is not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index"},"git_index_remove":{"type":"function","file":"index.h","line":364,"lineto":364,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *path, int stage","sig":"git_index *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an entry from the index</p>\n","comments":"","group":"index"},"git_index_remove_directory":{"type":"function","file":"index.h","line":374,"lineto":375,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"dir","type":"const char *","comment":"container directory path"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *dir, int stage","sig":"git_index *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove all entries from the index under a given directory</p>\n","comments":"","group":"index"},"git_index_add":{"type":"function","file":"index.h","line":391,"lineto":391,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"source_entry","type":"const git_index_entry *","comment":"new entry object"}],"argline":"git_index *index, const git_index_entry *source_entry","sig":"git_index *::const git_index_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an index entry from an in-memory struct</p>\n","comments":"<p>If a previous index entry exists that has the same path and stage\nas the given &#39;source_entry&#39;, it will be replaced. Otherwise, the\n&#39;source_entry&#39; will be added.</p>\n\n<p>A full copy (including the &#39;path&#39; string) of the given\n&#39;source_entry&#39; will be inserted on the index.</p>\n","group":"index"},"git_index_entry_stage":{"type":"function","file":"index.h","line":403,"lineto":403,"args":[{"name":"entry","type":"const git_index_entry *","comment":"The entry"}],"argline":"const git_index_entry *entry","sig":"const git_index_entry *","return":{"type":"int"},"description":"<p>Return the stage number from a git index entry</p>\n","comments":"<p>This entry is calculated from the entry&#39;s flag attribute like this:</p>\n\n<p>(entry-&gt;flags &amp; GIT_IDXENTRY_STAGEMASK) &gt;&gt; GIT_IDXENTRY_STAGESHIFT</p>\n","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_entry_stage-6"]}},"git_index_add_bypath":{"type":"function","file":"index.h","line":434,"lineto":434,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to add"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an index entry from a file on disk</p>\n","comments":"<p>The file <code>path</code> must be relative to the repository&#39;s\nworking folder and must be readable.</p>\n\n<p>This method will fail in bare index instances.</p>\n\n<p>This forces the file to be added to the index, not looking\nat gitignore rules. Those rules can be evaluated through\nthe git_status APIs (in status.h) before calling this.</p>\n\n<p>If this file currently is the result of a merge conflict, this\nfile will no longer be marked as conflicting. The data about\nthe conflict will be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n","group":"index","examples":{"init.c":["ex/HEAD/init.html#git_index_add_bypath-4"]}},"git_index_remove_bypath":{"type":"function","file":"index.h","line":450,"lineto":450,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to remove"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an index entry corresponding to a file on disk</p>\n","comments":"<p>The file <code>path</code> must be relative to the repository&#39;s\nworking folder. It may exist.</p>\n\n<p>If this file currently is the result of a merge conflict, this\nfile will no longer be marked as conflicting. The data about\nthe conflict will be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n","group":"index"},"git_index_add_all":{"type":"function","file":"index.h","line":497,"lineto":502,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"flags","type":"unsigned int","comment":"combination of git_index_add_option_t flags"},{"name":"callback","type":"git_index_matched_path_cb","comment":"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."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tunsigned int flags,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::unsigned int::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update index entries matching files in the working directory.</p>\n","comments":"<p>This method will fail in bare index instances.</p>\n\n<p>The <code>pathspec</code> is a list of file names or shell glob patterns that will\nmatched against files in the repository&#39;s working directory. Each file\nthat matches will be added to the index (either updating an existing\nentry or adding a new entry). You can disable glob expansion and force\nexact matching with the <code>GIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH</code> flag.</p>\n\n<p>Files that are ignored will be skipped (unlike <code>git_index_add_bypath</code>).\nIf a file is already tracked in the index, then it <em>will</em> be updated\neven if it is ignored. Pass the <code>GIT_INDEX_ADD_FORCE</code> flag to\nskip the checking of ignore rules.</p>\n\n<p>To emulate <code>git add -A</code> and generate an error if the pathspec contains\nthe exact path of an ignored file (when not using FORCE), add the\n<code>GIT_INDEX_ADD_CHECK_PATHSPEC</code> flag. This checks that each entry\nin the <code>pathspec</code> that is an exact match to a filename on disk is\neither not ignored or already in the index. If this check fails, the\nfunction will return GIT_EINVALIDSPEC.</p>\n\n<p>To emulate <code>git add -A</code> with the &quot;dry-run&quot; option, just use a callback\nfunction that always returns a positive value. See below for details.</p>\n\n<p>If any files are currently the result of a merge conflict, those files\nwill no longer be marked as conflicting. The data about the conflicts\nwill be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n\n<p>If you provide a callback function, it will be invoked on each matching\nitem in the working directory immediately <em>before</em> it is added to /\nupdated in the index. Returning zero will add the item to the index,\ngreater than zero will skip the item, and less than zero will abort the\nscan and cause GIT_EUSER to be returned.</p>\n","group":"index"},"git_index_remove_all":{"type":"function","file":"index.h","line":519,"lineto":523,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"callback","type":"git_index_matched_path_cb","comment":"notification callback for each removed path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove all matching index entries.</p>\n","comments":"<p>If you provide a callback function, it will be invoked on each matching\nitem in the index immediately <em>before</em> it is removed. Return 0 to\nremove the item, &gt; 0 to skip the item, and &lt; 0 to abort the scan.</p>\n","group":"index"},"git_index_update_all":{"type":"function","file":"index.h","line":548,"lineto":552,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"callback","type":"git_index_matched_path_cb","comment":"notification callback for each updated path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update all index entries to match the working directory</p>\n","comments":"<p>This method will fail in bare index instances.</p>\n\n<p>This scans the existing index entries and synchronizes them with the\nworking directory, deleting them if the corresponding working directory\nfile no longer exists otherwise updating the information (including\nadding the latest version of file to the ODB if needed).</p>\n\n<p>If you provide a callback function, it will be invoked on each matching\nitem in the index immediately <em>before</em> it is updated (either refreshed\nor removed depending on working directory state). Return 0 to proceed\nwith updating the item, &gt; 0 to skip the item, and &lt; 0 to abort the scan.</p>\n","group":"index"},"git_index_find":{"type":"function","file":"index.h","line":564,"lineto":564,"args":[{"name":"at_pos","type":"size_t *","comment":"the address to which the position of the index entry is written (optional)"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"size_t *at_pos, git_index *index, const char *path","sig":"size_t *::git_index *::const char *","return":{"type":"int","comment":"a zero-based position in the index if found; GIT_ENOTFOUND otherwise"},"description":"<p>Find the first position of any entries which point to given\npath in the Git index.</p>\n","comments":"","group":"index"},"git_index_conflict_add":{"type":"function","file":"index.h","line":588,"lineto":592,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"ancestor_entry","type":"const git_index_entry *","comment":"the entry data for the ancestor of the conflict"},{"name":"our_entry","type":"const git_index_entry *","comment":"the entry data for our side of the merge conflict"},{"name":"their_entry","type":"const git_index_entry *","comment":"the entry data for their side of the merge conflict"}],"argline":"git_index *index,\n\tconst git_index_entry *ancestor_entry,\n\tconst git_index_entry *our_entry,\n\tconst git_index_entry *their_entry","sig":"git_index *::const git_index_entry *::const git_index_entry *::const git_index_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update index entries to represent a conflict</p>\n","comments":"<p>The entries are the entries from the tree included in the merge. Any\nentry may be null to indicate that that file was not present in the\ntrees during the merge. For example, ancestor_entry may be NULL to\nindicate that a file was added in both branches and must be resolved.</p>\n","group":"index"},"git_index_conflict_get":{"type":"function","file":"index.h","line":607,"lineto":612,"args":[{"name":"ancestor_out","type":"const git_index_entry **","comment":"Pointer to store the ancestor entry"},{"name":"our_out","type":"const git_index_entry **","comment":"Pointer to store the our entry"},{"name":"their_out","type":"const git_index_entry **","comment":"Pointer to store the their entry"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"const git_index_entry **ancestor_out,\n\tconst git_index_entry **our_out,\n\tconst git_index_entry **their_out,\n\tgit_index *index,\n\tconst char *path","sig":"const git_index_entry **::const git_index_entry **::const git_index_entry **::git_index *::const char *","return":{"type":"int"},"description":"<p>Get the index entries that represent a conflict of a single file.</p>\n","comments":"<p>The entries are not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index"},"git_index_conflict_remove":{"type":"function","file":"index.h","line":620,"lineto":620,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"to search"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int"},"description":"<p>Removes the index entries that represent a conflict of a single file.</p>\n","comments":"","group":"index"},"git_index_conflict_cleanup":{"type":"function","file":"index.h","line":627,"lineto":627,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all conflicts in the index (entries with a stage greater than 0.)</p>\n","comments":"","group":"index"},"git_index_has_conflicts":{"type":"function","file":"index.h","line":634,"lineto":634,"args":[{"name":"index","type":"const git_index *"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"int","comment":"1 if at least one conflict is found, 0 otherwise."},"description":"<p>Determine if the index contains entries representing file conflicts.</p>\n","comments":"","group":"index"},"git_index_conflict_iterator_new":{"type":"function","file":"index.h","line":642,"lineto":644,"args":[{"name":"iterator_out","type":"git_index_conflict_iterator **"},{"name":"index","type":"git_index *"}],"argline":"git_index_conflict_iterator **iterator_out,\n\tgit_index *index","sig":"git_index_conflict_iterator **::git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the conflicts in the index. You may not modify the\nindex while iterating, the results are undefined.</p>\n","comments":"","group":"index"},"git_index_conflict_next":{"type":"function","file":"index.h","line":656,"lineto":660,"args":[{"name":"ancestor_out","type":"const git_index_entry **","comment":"Pointer to store the ancestor side of the conflict"},{"name":"our_out","type":"const git_index_entry **","comment":"Pointer to store our side of the conflict"},{"name":"their_out","type":"const git_index_entry **","comment":"Pointer to store their side of the conflict"},{"name":"iterator","type":"git_index_conflict_iterator *"}],"argline":"const git_index_entry **ancestor_out,\n\tconst git_index_entry **our_out,\n\tconst git_index_entry **their_out,\n\tgit_index_conflict_iterator *iterator","sig":"const git_index_entry **::const git_index_entry **::const git_index_entry **::git_index_conflict_iterator *","return":{"type":"int","comment":"0 (no error), GIT_ITEROVER (iteration is done) or an error code (negative value)"},"description":"<p>Returns the current conflict (ancestor, ours and theirs entry) and\nadvance the iterator internally to the next value.</p>\n","comments":"","group":"index"},"git_index_conflict_iterator_free":{"type":"function","file":"index.h","line":667,"lineto":668,"args":[{"name":"iterator","type":"git_index_conflict_iterator *","comment":"pointer to the iterator"}],"argline":"git_index_conflict_iterator *iterator","sig":"git_index_conflict_iterator *","return":{"type":"void"},"description":"<p>Frees a <code>git_index_conflict_iterator</code>.</p>\n","comments":"","group":"index"},"git_indexer_stream_new":{"type":"function","file":"indexer.h","line":26,"lineto":30,"args":[{"name":"out","type":"git_indexer_stream **","comment":"where to store the indexer instance"},{"name":"path","type":"const char *","comment":"to the directory where the packfile should be stored"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information"},{"name":"progress_cb_payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_indexer_stream **out,\n\t\tconst char *path,\n\t\tgit_transfer_progress_callback progress_cb,\n\t\tvoid *progress_cb_payload","sig":"git_indexer_stream **::const char *::git_transfer_progress_callback::void *","return":{"type":"int"},"description":"<p>Create a new streaming indexer instance</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_new-1"]}},"git_indexer_stream_add":{"type":"function","file":"indexer.h","line":40,"lineto":40,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer"},{"name":"data","type":"const void *","comment":"the data to add"},{"name":"size","type":"size_t","comment":"the size of the data in bytes"},{"name":"stats","type":"git_transfer_progress *","comment":"stat storage"}],"argline":"git_indexer_stream *idx, const void *data, size_t size, git_transfer_progress *stats","sig":"git_indexer_stream *::const void *::size_t::git_transfer_progress *","return":{"type":"int"},"description":"<p>Add data to the indexer</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_add-2"]}},"git_indexer_stream_finalize":{"type":"function","file":"indexer.h","line":49,"lineto":49,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer"},{"name":"stats","type":"git_transfer_progress *"}],"argline":"git_indexer_stream *idx, git_transfer_progress *stats","sig":"git_indexer_stream *::git_transfer_progress *","return":{"type":"int"},"description":"<p>Finalize the pack and index</p>\n","comments":"<p>Resolve any pending deltas and write out the index file</p>\n","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_finalize-3"]}},"git_indexer_stream_hash":{"type":"function","file":"indexer.h","line":59,"lineto":59,"args":[{"name":"idx","type":"const git_indexer_stream *","comment":"the indexer instance"}],"argline":"const git_indexer_stream *idx","sig":"const git_indexer_stream *","return":{"type":"const git_oid *"},"description":"<p>Get the packfile&#39;s hash</p>\n","comments":"<p>A packfile&#39;s name is derived from the sorted hashing of all object\nnames. This is only correct after the index has been finalized.</p>\n","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_hash-4"]}},"git_indexer_stream_free":{"type":"function","file":"indexer.h","line":66,"lineto":70,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer to free"}],"argline":"git_indexer_stream *idx","sig":"git_indexer_stream *","return":{"type":"void"},"description":"<p>Free the indexer and its resources</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_free-5"]}},"git_merge_base":{"type":"function","file":"merge.h","line":77,"lineto":81,"args":[{"name":"out","type":"git_oid *","comment":"the OID of a merge base between 'one' and 'two'"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"one","type":"const git_oid *","comment":"one of the commits"},{"name":"two","type":"const git_oid *","comment":"the other commit"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_oid *one,\n\tconst git_oid *two","sig":"git_oid *::git_repository *::const git_oid *::const git_oid *","return":{"type":"int","comment":"Zero on success; GIT_ENOTFOUND or -1 on failure."},"description":"<p>Find a merge base between two commits</p>\n","comments":"","group":"merge","examples":{"log.c":["ex/HEAD/log.html#git_merge_base-27"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_merge_base-1"]}},"git_merge_base_many":{"type":"function","file":"merge.h","line":92,"lineto":96,"args":[{"name":"out","type":"git_oid *","comment":"the OID of a merge base considering all the commits"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"length","type":"size_t","comment":"The number of commits in the provided `input_array`"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_oid input_array[],\n\tsize_t length","sig":"git_oid *::git_repository *::size_t","return":{"type":"int","comment":"Zero on success; GIT_ENOTFOUND or -1 on failure."},"description":"<p>Find a merge base given a list of commits</p>\n","comments":"","group":"merge"},"git_merge_head_from_ref":{"type":"function","file":"merge.h","line":106,"lineto":109,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given reference"},{"name":"ref","type":"git_reference *","comment":"reference to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tgit_reference *ref","sig":"git_merge_head **::git_repository *::git_reference *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given reference</p>\n","comments":"","group":"merge"},"git_merge_head_from_fetchhead":{"type":"function","file":"merge.h","line":121,"lineto":126,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given commit"},{"name":"branch_name","type":"const char *","comment":"name of the (remote) branch"},{"name":"remote_url","type":"const char *","comment":"url of the remote"},{"name":"oid","type":"const git_oid *","comment":"the commit object id to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tconst char *remote_url,\n\tconst git_oid *oid","sig":"git_merge_head **::git_repository *::const char *::const char *::const git_oid *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given fetch head data</p>\n","comments":"","group":"merge"},"git_merge_head_from_oid":{"type":"function","file":"merge.h","line":136,"lineto":139,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given commit"},{"name":"oid","type":"const git_oid *","comment":"the commit object id to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tconst git_oid *oid","sig":"git_merge_head **::git_repository *::const git_oid *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given commit id</p>\n","comments":"","group":"merge"},"git_merge_head_free":{"type":"function","file":"merge.h","line":146,"lineto":147,"args":[{"name":"head","type":"git_merge_head *","comment":"merge head to free"}],"argline":"git_merge_head *head","sig":"git_merge_head *","return":{"type":"void"},"description":"<p>Frees a <code>git_merge_head</code></p>\n","comments":"","group":"merge"},"git_merge_trees":{"type":"function","file":"merge.h","line":163,"lineto":169,"args":[{"name":"out","type":"git_index **","comment":"pointer to store the index result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given trees"},{"name":"ancestor_tree","type":"const git_tree *","comment":"the common ancestor between the trees (or null if none)"},{"name":"our_tree","type":"const git_tree *","comment":"the tree that reflects the destination tree"},{"name":"their_tree","type":"const git_tree *","comment":"the tree to merge in to `our_tree`"},{"name":"opts","type":"const git_merge_tree_opts *","comment":"the merge tree options (or null for defaults)"}],"argline":"git_index **out,\n\tgit_repository *repo,\n\tconst git_tree *ancestor_tree,\n\tconst git_tree *our_tree,\n\tconst git_tree *their_tree,\n\tconst git_merge_tree_opts *opts","sig":"git_index **::git_repository *::const git_tree *::const git_tree *::const git_tree *::const git_merge_tree_opts *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Merge two trees, producing a <code>git_index</code> that reflects the result of\nthe merge.</p>\n","comments":"<p>The returned index must be freed explicitly with <code>git_index_free</code>.</p>\n","group":"merge"},"git_message_prettify":{"type":"function","file":"message.h","line":40,"lineto":44,"args":[{"name":"out","type":"char *","comment":"The user-allocated buffer which will be filled with the cleaned up message. Pass NULL if you just want to get the needed size of the prettified message as the output value."},{"name":"out_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"message","type":"const char *","comment":"The message to be prettified."},{"name":"strip_comments","type":"int","comment":"Non-zero to remove lines starting with \"#\", 0 to leave them in."}],"argline":"char *out,\n\tsize_t out_size,\n\tconst char *message,\n\tint strip_comments","sig":"char *::size_t::const char *::int","return":{"type":"int","comment":"-1 on error, else number of characters in prettified message including the trailing NUL byte"},"description":"<p>Clean up message from excess whitespace and make sure that the last line\nends with a &#39;\\n&#39;.</p>\n","comments":"<p>Optionally, can remove lines starting with a &quot;#&quot;.</p>\n","group":"message"},"git_note_iterator_new":{"type":"function","file":"notes.h","line":49,"lineto":52,"args":[{"name":"out","type":"git_note_iterator **","comment":"pointer to the iterator"},{"name":"repo","type":"git_repository *","comment":"repository where to look up the note"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""}],"argline":"git_note_iterator **out,\n\tgit_repository *repo,\n\tconst char *notes_ref","sig":"git_note_iterator **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Creates a new iterator for notes</p>\n","comments":"<p>The iterator must be freed manually by the user.</p>\n","group":"note"},"git_note_iterator_free":{"type":"function","file":"notes.h","line":59,"lineto":59,"args":[{"name":"it","type":"git_note_iterator *","comment":"pointer to the iterator"}],"argline":"git_note_iterator *it","sig":"git_note_iterator *","return":{"type":"void"},"description":"<p>Frees an git_note_iterator</p>\n","comments":"","group":"note"},"git_note_next":{"type":"function","file":"notes.h","line":74,"lineto":77,"args":[{"name":"note_id","type":"git_oid*","comment":"id of blob containing the message"},{"name":"annotated_id","type":"git_oid*","comment":"id of the git object being annotated"},{"name":"it","type":"git_note_iterator *","comment":"pointer to the iterator"}],"argline":"git_oid* note_id,\n\tgit_oid* annotated_id,\n\tgit_note_iterator *it","sig":"git_oid*::git_oid*::git_note_iterator *","return":{"type":"int","comment":"0 (no error), GIT_ITEROVER (iteration is done) or an error code (negative value)"},"description":"<p>Returns the current item (note_id and annotated_id) and advance the iterator\ninternally to the next value</p>\n","comments":"<p>The notes must not be freed manually by the user.</p>\n","group":"note"},"git_note_read":{"type":"function","file":"notes.h","line":93,"lineto":97,"args":[{"name":"out","type":"git_note **","comment":"pointer to the read note; NULL in case of error"},{"name":"repo","type":"git_repository *","comment":"repository where to look up the note"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to read the note from"}],"argline":"git_note **out,\n\tgit_repository *repo,\n\tconst char *notes_ref,\n\tconst git_oid *oid","sig":"git_note **::git_repository *::const char *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read the note for an object</p>\n","comments":"<p>The note must be freed manually by the user.</p>\n","group":"note"},"git_note_message":{"type":"function","file":"notes.h","line":105,"lineto":105,"args":[{"name":"note","type":"const git_note *","comment":"the note"}],"argline":"const git_note *note","sig":"const git_note *","return":{"type":"const char *","comment":"the note message"},"description":"<p>Get the note message</p>\n","comments":"","group":"note"},"git_note_oid":{"type":"function","file":"notes.h","line":114,"lineto":114,"args":[{"name":"note","type":"const git_note *","comment":"the note"}],"argline":"const git_note *note","sig":"const git_note *","return":{"type":"const git_oid *","comment":"the note object OID"},"description":"<p>Get the note object OID</p>\n","comments":"","group":"note"},"git_note_create":{"type":"function","file":"notes.h","line":131,"lineto":139,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the OID (optional); NULL in case of error"},{"name":"repo","type":"git_repository *","comment":"repository where to store the note"},{"name":"author","type":"const git_signature *","comment":"signature of the notes commit author"},{"name":"committer","type":"const git_signature *","comment":"signature of the notes commit committer"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to decorate"},{"name":"note","type":"const char *","comment":"s_ref canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"force","type":"int","comment":"Overwrite existing note"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *notes_ref,\n\tconst git_oid *oid,\n\tconst char *note,\n\tint force","sig":"git_oid *::git_repository *::const git_signature *::const git_signature *::const char *::const git_oid *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a note for an object</p>\n","comments":"","group":"note"},"git_note_remove":{"type":"function","file":"notes.h","line":154,"lineto":159,"args":[{"name":"repo","type":"git_repository *","comment":"repository where the note lives"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"author","type":"const git_signature *","comment":"signature of the notes commit author"},{"name":"committer","type":"const git_signature *","comment":"signature of the notes commit committer"},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to remove the note from"}],"argline":"git_repository *repo,\n\tconst char *notes_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst git_oid *oid","sig":"git_repository *::const char *::const git_signature *::const git_signature *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove the note for an object</p>\n","comments":"","group":"note"},"git_note_free":{"type":"function","file":"notes.h","line":166,"lineto":166,"args":[{"name":"note","type":"git_note *","comment":"git_note object"}],"argline":"git_note *note","sig":"git_note *","return":{"type":"void"},"description":"<p>Free a git_note object</p>\n","comments":"","group":"note"},"git_note_default_ref":{"type":"function","file":"notes.h","line":176,"lineto":176,"args":[{"name":"out","type":"const char **","comment":"Pointer to the default notes reference"},{"name":"repo","type":"git_repository *","comment":"The Git repository"}],"argline":"const char **out, git_repository *repo","sig":"const char **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the default notes reference for a repository</p>\n","comments":"","group":"note"},"git_note_foreach":{"type":"function","file":"notes.h","line":194,"lineto":198,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the notes."},{"name":"notes_ref","type":"const char *","comment":"Reference to read from (optional); defaults to \"refs/notes/commits\"."},{"name":"note_cb","type":"git_note_foreach_cb","comment":"Callback to invoke per found annotation. Return non-zero to stop looping."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tconst char *notes_ref,\n\tgit_note_foreach_cb note_cb,\n\tvoid *payload","sig":"git_repository *::const char *::git_note_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the notes within a specified namespace\nand issue a callback for each one.</p>\n","comments":"","group":"note"},"git_object_lookup":{"type":"function","file":"object.h","line":41,"lineto":45,"args":[{"name":"object","type":"git_object **","comment":"pointer to the looked-up object"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the object"},{"name":"id","type":"const git_oid *","comment":"the unique identifier for the object"},{"name":"type","type":"git_otype","comment":"the type of the object"}],"argline":"git_object **object,\n\t\tgit_repository *repo,\n\t\tconst git_oid *id,\n\t\tgit_otype type","sig":"git_object **::git_repository *::const git_oid *::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference to one of the objects in a repository.</p>\n","comments":"<p>The generated reference is owned by the repository and\nshould be closed with the <code>git_object_free</code> method\ninstead of free&#39;d manually.</p>\n\n<p>The &#39;type&#39; parameter must match the type of the object\nin the odb; the method will fail otherwise.\nThe special value &#39;GIT_OBJ_ANY&#39; may be passed to let\nthe method guess the object&#39;s type.</p>\n","group":"object","examples":{"log.c":["ex/HEAD/log.html#git_object_lookup-28"]}},"git_object_lookup_prefix":{"type":"function","file":"object.h","line":74,"lineto":79,"args":[{"name":"object_out","type":"git_object **","comment":"pointer where to store the looked-up object"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the object"},{"name":"id","type":"const git_oid *","comment":"a short identifier for the object"},{"name":"len","type":"size_t","comment":"the length of the short identifier"},{"name":"type","type":"git_otype","comment":"the type of the object"}],"argline":"git_object **object_out,\n\t\tgit_repository *repo,\n\t\tconst git_oid *id,\n\t\tsize_t len,\n\t\tgit_otype type","sig":"git_object **::git_repository *::const git_oid *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference to one of the objects in a repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>The object obtained will be so that its identifier\nmatches the first &#39;len&#39; hexadecimal characters\n(packets of 4 bits) of the given &#39;id&#39;.\n&#39;len&#39; must be at least GIT_OID_MINPREFIXLEN, and\nlong enough to identify a unique object matching\nthe prefix; otherwise the method will fail.</p>\n\n<p>The generated reference is owned by the repository and\nshould be closed with the <code>git_object_free</code> method\ninstead of free&#39;d manually.</p>\n\n<p>The &#39;type&#39; parameter must match the type of the object\nin the odb; the method will fail otherwise.\nThe special value &#39;GIT_OBJ_ANY&#39; may be passed to let\nthe method guess the object&#39;s type.</p>\n","group":"object"},"git_object_id":{"type":"function","file":"object.h","line":87,"lineto":87,"args":[{"name":"obj","type":"const git_object *","comment":"the repository object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"const git_oid *","comment":"the SHA1 id"},"description":"<p>Get the id (SHA1) of a repository object</p>\n","comments":"","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_id-10","ex/HEAD/cat-file.html#git_object_id-11"],"log.c":["ex/HEAD/log.html#git_object_id-29","ex/HEAD/log.html#git_object_id-30","ex/HEAD/log.html#git_object_id-31","ex/HEAD/log.html#git_object_id-32"],"rev-list.c":["ex/HEAD/rev-list.html#git_object_id-2","ex/HEAD/rev-list.html#git_object_id-3","ex/HEAD/rev-list.html#git_object_id-4"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_object_id-2","ex/HEAD/rev-parse.html#git_object_id-3","ex/HEAD/rev-parse.html#git_object_id-4","ex/HEAD/rev-parse.html#git_object_id-5","ex/HEAD/rev-parse.html#git_object_id-6"]}},"git_object_type":{"type":"function","file":"object.h","line":95,"lineto":95,"args":[{"name":"obj","type":"const git_object *","comment":"the repository object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"git_otype","comment":"the object's type"},"description":"<p>Get the object type of an object</p>\n","comments":"","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_type-12","ex/HEAD/cat-file.html#git_object_type-13","ex/HEAD/cat-file.html#git_object_type-14"],"diff.c":["ex/HEAD/diff.html#git_object_type-15"]}},"git_object_owner":{"type":"function","file":"object.h","line":109,"lineto":109,"args":[{"name":"obj","type":"const git_object *","comment":"the object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"git_repository *","comment":"the repository who owns this object"},"description":"<p>Get the repository that owns this object</p>\n","comments":"<p>Freeing or calling <code>git_repository_close</code> on the\nreturned pointer will invalidate the actual object.</p>\n\n<p>Any other operation may be run on the repository without\naffecting the object.</p>\n","group":"object"},"git_object_free":{"type":"function","file":"object.h","line":126,"lineto":126,"args":[{"name":"object","type":"git_object *","comment":"the object to close"}],"argline":"git_object *object","sig":"git_object *","return":{"type":"void"},"description":"<p>Close an open object</p>\n","comments":"<p>This method instructs the library to close an existing\nobject; note that git_objects are owned and cached by the repository\nso the object may or may not be freed after this library call,\ndepending on how aggressive is the caching mechanism used\nby the repository.</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop using\nan object. Failure to do so will cause a memory leak.</p>\n","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_free-15"],"diff.c":["ex/HEAD/diff.html#git_object_free-16"],"general.c":["ex/HEAD/general.html#git_object_free-31"],"log.c":["ex/HEAD/log.html#git_object_free-33"],"rev-list.c":["ex/HEAD/rev-list.html#git_object_free-5","ex/HEAD/rev-list.html#git_object_free-6","ex/HEAD/rev-list.html#git_object_free-7"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_object_free-7","ex/HEAD/rev-parse.html#git_object_free-8","ex/HEAD/rev-parse.html#git_object_free-9"]}},"git_object_type2string":{"type":"function","file":"object.h","line":137,"lineto":137,"args":[{"name":"type","type":"git_otype","comment":"object type to convert."}],"argline":"git_otype type","sig":"git_otype","return":{"type":"const char *","comment":"the corresponding string representation."},"description":"<p>Convert an object type to it&#39;s string representation.</p>\n","comments":"<p>The result is a pointer to a string in static memory and\nshould not be free()&#39;ed.</p>\n","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_type2string-16","ex/HEAD/cat-file.html#git_object_type2string-17","ex/HEAD/cat-file.html#git_object_type2string-18","ex/HEAD/cat-file.html#git_object_type2string-19"],"general.c":["ex/HEAD/general.html#git_object_type2string-32"]}},"git_object_string2type":{"type":"function","file":"object.h","line":145,"lineto":145,"args":[{"name":"str","type":"const char *","comment":"the string to convert."}],"argline":"const char *str","sig":"const char *","return":{"type":"git_otype","comment":"the corresponding git_otype."},"description":"<p>Convert a string object type representation to it&#39;s git_otype.</p>\n","comments":"","group":"object"},"git_object_typeisloose":{"type":"function","file":"object.h","line":154,"lineto":154,"args":[{"name":"type","type":"git_otype","comment":"object type to test."}],"argline":"git_otype type","sig":"git_otype","return":{"type":"int","comment":"true if the type represents a valid loose object type, false otherwise."},"description":"<p>Determine if the given git_otype is a valid loose object type.</p>\n","comments":"","group":"object"},"git_object__size":{"type":"function","file":"object.h","line":168,"lineto":168,"args":[{"name":"type","type":"git_otype","comment":"object type to get its size"}],"argline":"git_otype type","sig":"git_otype","return":{"type":"size_t","comment":"size in bytes of the object"},"description":"<p>Get the size in bytes for the structure which\nacts as an in-memory representation of any given\nobject type.</p>\n","comments":"<p>For all the core types, this would the equivalent\nof calling <code>sizeof(git_commit)</code> if the core types\nwere not opaque on the external API.</p>\n","group":"object"},"git_object_peel":{"type":"function","file":"object.h","line":186,"lineto":189,"args":[{"name":"peeled","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"object","type":"const git_object *","comment":"The object to be processed"},{"name":"target_type","type":"git_otype","comment":"The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."}],"argline":"git_object **peeled,\n\tconst git_object *object,\n\tgit_otype target_type","sig":"git_object **::const git_object *::git_otype","return":{"type":"int","comment":"0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code"},"description":"<p>Recursively peel an object until an object of the specified type is met.</p>\n","comments":"<p>The retrieved <code>peeled</code> object is owned by the repository and should be\nclosed with the <code>git_object_free</code> method.</p>\n\n<p>If you pass <code>GIT_OBJ_ANY</code> as the target type, then the object will be\npeeled until the type changes (e.g. a tag will be chased until the\nreferenced object is no longer a tag).</p>\n","group":"object"},"git_object_dup":{"type":"function","file":"object.h","line":198,"lineto":198,"args":[{"name":"dest","type":"git_object **","comment":"Pointer to store the copy of the object"},{"name":"source","type":"git_object *","comment":"Original object to copy"}],"argline":"git_object **dest, git_object *source","sig":"git_object **::git_object *","return":{"type":"int"},"description":"<p>Create an in-memory copy of a Git object. The copy must be\nexplicitly free&#39;d or it will leak.</p>\n","comments":"","group":"object"},"git_odb_new":{"type":"function","file":"odb.h","line":38,"lineto":38,"args":[{"name":"out","type":"git_odb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."}],"argline":"git_odb **out","sig":"git_odb **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new object database with no backends.</p>\n","comments":"<p>Before the ODB can be used for read/writing, a custom database\nbackend must be manually added using <code>git_odb_add_backend()</code></p>\n","group":"odb"},"git_odb_open":{"type":"function","file":"odb.h","line":56,"lineto":56,"args":[{"name":"out","type":"git_odb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"objects_dir","type":"const char *","comment":"path of the backends' \"objects\" directory."}],"argline":"git_odb **out, const char *objects_dir","sig":"git_odb **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new object database and automatically add\nthe two default backends:</p>\n","comments":"<ul>\n<li><p>git_odb_backend_loose: read and write loose object files\nfrom disk, assuming <code>objects_dir</code> as the Objects folder</p></li>\n<li><p>git_odb_backend_pack: read objects from packfiles,\nassuming <code>objects_dir</code> as the Objects folder which\ncontains a &#39;pack/&#39; folder with the corresponding data</p></li>\n</ul>\n","group":"odb"},"git_odb_add_disk_alternate":{"type":"function","file":"odb.h","line":73,"lineto":73,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"path","type":"const char *","comment":"path to the objects folder for the alternate"}],"argline":"git_odb *odb, const char *path","sig":"git_odb *::const char *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add an on-disk alternate to an existing Object DB.</p>\n","comments":"<p>Note that the added path must point to an <code>objects</code>, not\nto a full repository, to use it as an alternate store.</p>\n\n<p>Alternate backends are always checked for objects <em>after</em>\nall the main backends have been exhausted.</p>\n\n<p>Writing is disabled on alternate backends.</p>\n","group":"odb"},"git_odb_free":{"type":"function","file":"odb.h","line":80,"lineto":80,"args":[{"name":"db","type":"git_odb *","comment":"database pointer to close. If NULL no action is taken."}],"argline":"git_odb *db","sig":"git_odb *","return":{"type":"void"},"description":"<p>Close an open object database.</p>\n","comments":"","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_free-20"]}},"git_odb_read":{"type":"function","file":"odb.h","line":99,"lineto":99,"args":[{"name":"out","type":"git_odb_object **","comment":"pointer where to store the read object"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"id","type":"const git_oid *","comment":"identity of the object to read."}],"argline":"git_odb_object **out, git_odb *db, const git_oid *id","sig":"git_odb_object **::git_odb *::const git_oid *","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database."},"description":"<p>Read an object from the database.</p>\n","comments":"<p>This method queries all available ODB backends\ntrying to read the given OID.</p>\n\n<p>The returned object is reference counted and\ninternally cached, so it should be closed\nby the user once it&#39;s no longer in use.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_read-21"],"general.c":["ex/HEAD/general.html#git_odb_read-33"]}},"git_odb_read_prefix":{"type":"function","file":"odb.h","line":128,"lineto":128,"args":[{"name":"out","type":"git_odb_object **","comment":"pointer where to store the read object"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"short_id","type":"const git_oid *","comment":"a prefix of the id of the object to read."},{"name":"len","type":"size_t","comment":"the length of the prefix"}],"argline":"git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len","sig":"git_odb_object **::git_odb *::const git_oid *::size_t","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database. - GIT_EAMBIGUOUS if the prefix is ambiguous (several objects match the prefix)"},"description":"<p>Read an object from the database, given a prefix\nof its identifier.</p>\n","comments":"<p>This method queries all available ODB backends\ntrying to match the &#39;len&#39; first hexadecimal\ncharacters of the &#39;short_id&#39;.\nThe remaining (GIT_OID_HEXSZ-len)*4 bits of\n&#39;short_id&#39; must be 0s.\n&#39;len&#39; must be at least GIT_OID_MINPREFIXLEN,\nand the prefix must be long enough to identify\na unique object in all the backends; the\nmethod will fail otherwise.</p>\n\n<p>The returned object is reference counted and\ninternally cached, so it should be closed\nby the user once it&#39;s no longer in use.</p>\n","group":"odb"},"git_odb_read_header":{"type":"function","file":"odb.h","line":148,"lineto":148,"args":[{"name":"len_out","type":"size_t *","comment":"pointer where to store the length"},{"name":"type_out","type":"git_otype *","comment":"pointer where to store the type"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"id","type":"const git_oid *","comment":"identity of the object to read."}],"argline":"size_t *len_out, git_otype *type_out, git_odb *db, const git_oid *id","sig":"size_t *::git_otype *::git_odb *::const git_oid *","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database."},"description":"<p>Read the header of an object from the database, without\nreading its full contents.</p>\n","comments":"<p>The header includes the length and the type of an object.</p>\n\n<p>Note that most backends do not support reading only the header\nof an object, so the whole object will be read and then the\nheader will be returned.</p>\n","group":"odb"},"git_odb_exists":{"type":"function","file":"odb.h","line":159,"lineto":159,"args":[{"name":"db","type":"git_odb *","comment":"database to be searched for the given object."},{"name":"id","type":"const git_oid *","comment":"the object to search for."}],"argline":"git_odb *db, const git_oid *id","sig":"git_odb *::const git_oid *","return":{"type":"int","comment":"- 1, if the object was found - 0, otherwise"},"description":"<p>Determine if the given object can be found in the object database.</p>\n","comments":"","group":"odb"},"git_odb_refresh":{"type":"function","file":"odb.h","line":179,"lineto":179,"args":[{"name":"db","type":"struct git_odb *","comment":"database to refresh"}],"argline":"struct git_odb *db","sig":"struct git_odb *","return":{"type":"int","comment":"0 on success, error code otherwise"},"description":"<p>Refresh the object database to load newly added files.</p>\n","comments":"<p>If the object databases have changed on disk while the library\nis running, this function will force a reload of the underlying\nindexes.</p>\n\n<p>Use this function when you&#39;re confident that an external\napplication has tampered with the ODB.</p>\n\n<p>NOTE that it is not necessary to call this function at all. The\nlibrary will automatically attempt to refresh the ODB\nwhen a lookup fails, to see if the looked up object exists\non disk but hasn&#39;t been loaded yet.</p>\n","group":"odb"},"git_odb_foreach":{"type":"function","file":"odb.h","line":194,"lineto":194,"args":[{"name":"db","type":"git_odb *","comment":"database to use"},{"name":"cb","type":"git_odb_foreach_cb","comment":"the callback to call for each object"},{"name":"payload","type":"void *","comment":"data to pass to the callback"}],"argline":"git_odb *db, git_odb_foreach_cb cb, void *payload","sig":"git_odb *::git_odb_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>List all objects available in the database</p>\n","comments":"<p>The callback will be called for each object available in the\ndatabase. Note that the objects are likely to be returned in the index\norder, which would make accessing the objects in that order inefficient.\nReturn a non-zero value from the callback to stop looping.</p>\n","group":"odb"},"git_odb_write":{"type":"function","file":"odb.h","line":214,"lineto":214,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the OID result of the write"},{"name":"odb","type":"git_odb *","comment":"object database where to store the object"},{"name":"data","type":"const void *","comment":"buffer with the data to store"},{"name":"len","type":"size_t","comment":"size of the buffer"},{"name":"type","type":"git_otype","comment":"type of the data to store"}],"argline":"git_oid *out, git_odb *odb, const void *data, size_t len, git_otype type","sig":"git_oid *::git_odb *::const void *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an object directly into the ODB</p>\n","comments":"<p>This method writes a full object straight into the ODB.\nFor most cases, it is preferred to write objects through a write\nstream, which is both faster and less memory intensive, specially\nfor big objects.</p>\n\n<p>This method is provided for compatibility with custom backends\nwhich are not able to support streaming writes</p>\n","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_write-34"]}},"git_odb_open_wstream":{"type":"function","file":"odb.h","line":236,"lineto":236,"args":[{"name":"out","type":"git_odb_stream **","comment":"pointer where to store the stream"},{"name":"db","type":"git_odb *","comment":"object database where the stream will write"},{"name":"size","type":"size_t","comment":"final size of the object that will be written"},{"name":"type","type":"git_otype","comment":"type of the object that will be written"}],"argline":"git_odb_stream **out, git_odb *db, size_t size, git_otype type","sig":"git_odb_stream **::git_odb *::size_t::git_otype","return":{"type":"int","comment":"0 if the stream was created; error code otherwise"},"description":"<p>Open a stream to write an object into the ODB</p>\n","comments":"<p>The type and final length of the object must be specified\nwhen opening the stream.</p>\n\n<p>The returned stream will be of type <code>GIT_STREAM_WRONLY</code>, and it\nwon&#39;t be effective until <code>git_odb_stream_finalize_write</code> is called\nand returns without an error</p>\n\n<p>The stream must always be free&#39;d or will leak memory.</p>\n\n<p>@see git_odb_stream</p>\n","group":"odb"},"git_odb_stream_write":{"type":"function","file":"odb.h","line":246,"lineto":246,"args":[{"name":"stream","type":"git_odb_stream *","comment":"the stream"},{"name":"buffer","type":"const char *","comment":"the data to write"},{"name":"len","type":"size_t","comment":"the buffer's length"}],"argline":"git_odb_stream *stream, const char *buffer, size_t len","sig":"git_odb_stream *::const char *::size_t","return":{"type":"int","comment":"0 if the write succeeded; error code otherwise"},"description":"<p>Write to an odb stream</p>\n","comments":"","group":"odb"},"git_odb_stream_finalize_write":{"type":"function","file":"odb.h","line":258,"lineto":258,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the resulting object's id"},{"name":"stream","type":"git_odb_stream *","comment":"the stream"}],"argline":"git_oid *out, git_odb_stream *stream","sig":"git_oid *::git_odb_stream *","return":{"type":"int","comment":"0 on success; an error code otherwise"},"description":"<p>Finish writing to an odb stream</p>\n","comments":"<p>The object will take its final name and will be available to the\nodb.</p>\n","group":"odb"},"git_odb_stream_read":{"type":"function","file":"odb.h","line":265,"lineto":265,"args":[{"name":"stream","type":"git_odb_stream *"},{"name":"buffer","type":"char *"},{"name":"len","type":"size_t"}],"argline":"git_odb_stream *stream, char *buffer, size_t len","sig":"git_odb_stream *::char *::size_t","return":{"type":"int"},"description":"<p>Read from an odb stream</p>\n","comments":"<p>Most backends don&#39;t implement streaming reads</p>\n","group":"odb"},"git_odb_stream_free":{"type":"function","file":"odb.h","line":272,"lineto":272,"args":[{"name":"stream","type":"git_odb_stream *","comment":"the stream to free"}],"argline":"git_odb_stream *stream","sig":"git_odb_stream *","return":{"type":"void"},"description":"<p>Free an odb stream</p>\n","comments":"","group":"odb"},"git_odb_open_rstream":{"type":"function","file":"odb.h","line":298,"lineto":298,"args":[{"name":"out","type":"git_odb_stream **","comment":"pointer where to store the stream"},{"name":"db","type":"git_odb *","comment":"object database where the stream will read from"},{"name":"oid","type":"const git_oid *","comment":"oid of the object the stream will read from"}],"argline":"git_odb_stream **out, git_odb *db, const git_oid *oid","sig":"git_odb_stream **::git_odb *::const git_oid *","return":{"type":"int","comment":"0 if the stream was created; error code otherwise"},"description":"<p>Open a stream to read an object from the ODB</p>\n","comments":"<p>Note that most backends do <em>not</em> support streaming reads\nbecause they store their objects as compressed/delta&#39;ed blobs.</p>\n\n<p>It&#39;s recommended to use <code>git_odb_read</code> instead, which is\nassured to work on all backends.</p>\n\n<p>The returned stream will be of type <code>GIT_STREAM_RDONLY</code> and\nwill have the following methods:</p>\n\n<pre><code>- stream-&gt;read: read `n` bytes from the stream\n- stream-&gt;free: free the stream\n</code></pre>\n\n<p>The stream must always be free&#39;d or will leak memory.</p>\n\n<p>@see git_odb_stream</p>\n","group":"odb"},"git_odb_write_pack":{"type":"function","file":"odb.h","line":318,"lineto":322,"args":[{"name":"out","type":"git_odb_writepack **","comment":"pointer to the writepack functions"},{"name":"db","type":"git_odb *","comment":"object database where the stream will read from"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."},{"name":"progress_payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_odb_writepack **out,\n\tgit_odb *db,\n\tgit_transfer_progress_callback progress_cb,\n\tvoid *progress_payload","sig":"git_odb_writepack **::git_odb *::git_transfer_progress_callback::void *","return":{"type":"int"},"description":"<p>Open a stream for writing a pack file to the ODB.</p>\n","comments":"<p>If the ODB layer understands pack files, then the given\npackfile will likely be streamed directly to disk (and a\ncorresponding index created). If the ODB layer does not\nunderstand pack files, the objects will be stored in whatever\nformat the ODB layer uses.</p>\n\n<p>@see git_odb_writepack</p>\n","group":"odb"},"git_odb_hash":{"type":"function","file":"odb.h","line":336,"lineto":336,"args":[{"name":"out","type":"git_oid *","comment":"the resulting object-ID."},{"name":"data","type":"const void *","comment":"data to hash"},{"name":"len","type":"size_t","comment":"size of the data"},{"name":"type","type":"git_otype","comment":"of the data to hash"}],"argline":"git_oid *out, const void *data, size_t len, git_otype type","sig":"git_oid *::const void *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Determine the object-ID (sha1 hash) of a data buffer</p>\n","comments":"<p>The resulting SHA-1 OID will be the identifier for the data\nbuffer as if the data buffer it were to written to the ODB.</p>\n","group":"odb"},"git_odb_hashfile":{"type":"function","file":"odb.h","line":351,"lineto":351,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"path","type":"const char *","comment":"file to read and determine object id for"},{"name":"type","type":"git_otype","comment":"the type of the object that will be hashed"}],"argline":"git_oid *out, const char *path, git_otype type","sig":"git_oid *::const char *::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from disk and fill a git_oid with the object id\nthat the file would have if it were written to the Object\nDatabase as an object of the given type (w/o applying filters).\nSimilar functionality to git.git&#39;s <code>git hash-object</code> without\nthe <code>-w</code> flag, however, with the --no-filters flag.\nIf you need filters, see git_repository_hashfile.</p>\n","comments":"","group":"odb"},"git_odb_object_free":{"type":"function","file":"odb.h","line":361,"lineto":361,"args":[{"name":"object","type":"git_odb_object *","comment":"object to close"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"void"},"description":"<p>Close an ODB object</p>\n","comments":"<p>This method must always be called once a <code>git_odb_object</code> is no\nlonger needed, otherwise memory will leak.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_object_free-22"],"general.c":["ex/HEAD/general.html#git_odb_object_free-35"]}},"git_odb_object_id":{"type":"function","file":"odb.h","line":371,"lineto":371,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"const git_oid *","comment":"a pointer to the OID"},"description":"<p>Return the OID of an ODB object</p>\n","comments":"<p>This is the OID from which the object was read from</p>\n","group":"odb"},"git_odb_object_data":{"type":"function","file":"odb.h","line":384,"lineto":384,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"const void *","comment":"a pointer to the data"},"description":"<p>Return the data of an ODB object</p>\n","comments":"<p>This is the uncompressed, raw data as read from the ODB,\nwithout the leading header.</p>\n\n<p>This pointer is owned by the object and shall not be free&#39;d.</p>\n","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_object_data-36"]}},"git_odb_object_size":{"type":"function","file":"odb.h","line":395,"lineto":395,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"size_t","comment":"the size"},"description":"<p>Return the size of an ODB object</p>\n","comments":"<p>This is the real size of the <code>data</code> buffer, not the\nactual size of the object.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_object_size-23"],"general.c":["ex/HEAD/general.html#git_odb_object_size-37"]}},"git_odb_object_type":{"type":"function","file":"odb.h","line":403,"lineto":403,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"git_otype","comment":"the type"},"description":"<p>Return the type of an ODB object</p>\n","comments":"","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_object_type-38"]}},"git_odb_add_backend":{"type":"function","file":"odb.h","line":418,"lineto":418,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"backend","type":"git_odb_backend *","comment":"pointer to a git_odb_backend instance"},{"name":"priority","type":"int","comment":"Value for ordering the backends queue"}],"argline":"git_odb *odb, git_odb_backend *backend, int priority","sig":"git_odb *::git_odb_backend *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add a custom backend to an existing Object DB</p>\n","comments":"<p>The backends are checked in relative ordering, based on the\nvalue of the <code>priority</code> parameter.</p>\n\n<p>Read <odb_backends.h> for more information.</p>\n","group":"odb"},"git_odb_add_alternate":{"type":"function","file":"odb.h","line":439,"lineto":439,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"backend","type":"git_odb_backend *","comment":"pointer to a git_odb_backend instance"},{"name":"priority","type":"int","comment":"Value for ordering the backends queue"}],"argline":"git_odb *odb, git_odb_backend *backend, int priority","sig":"git_odb *::git_odb_backend *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add a custom backend to an existing Object DB; this\nbackend will work as an alternate.</p>\n","comments":"<p>Alternate backends are always checked for objects <em>after</em>\nall the main backends have been exhausted.</p>\n\n<p>The backends are checked in relative ordering, based on the\nvalue of the <code>priority</code> parameter.</p>\n\n<p>Writing is disabled on alternate backends.</p>\n\n<p>Read <odb_backends.h> for more information.</p>\n","group":"odb"},"git_odb_num_backends":{"type":"function","file":"odb.h","line":447,"lineto":447,"args":[{"name":"odb","type":"git_odb *","comment":"object database"}],"argline":"git_odb *odb","sig":"git_odb *","return":{"type":"size_t","comment":"number of backends in the ODB"},"description":"<p>Get the number of ODB backend objects</p>\n","comments":"","group":"odb"},"git_odb_get_backend":{"type":"function","file":"odb.h","line":457,"lineto":457,"args":[{"name":"out","type":"git_odb_backend **","comment":"output pointer to ODB backend at pos"},{"name":"odb","type":"git_odb *","comment":"object database"},{"name":"pos","type":"size_t","comment":"index into object database backend list"}],"argline":"git_odb_backend **out, git_odb *odb, size_t pos","sig":"git_odb_backend **::git_odb *::size_t","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if pos is invalid; other errors < 0"},"description":"<p>Lookup an ODB backend object by index</p>\n","comments":"","group":"odb"},"git_odb_backend_pack":{"type":"function","file":"odb_backend.h","line":34,"lineto":34,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"objects_dir","type":"const char *","comment":"the Git repository's objects directory"}],"argline":"git_odb_backend **out, const char *objects_dir","sig":"git_odb_backend **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend for the packfiles.</p>\n","comments":"","group":"odb"},"git_odb_backend_loose":{"type":"function","file":"odb_backend.h","line":46,"lineto":46,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"objects_dir","type":"const char *","comment":"the Git repository's objects directory"},{"name":"compression_level","type":"int","comment":"zlib compression level to use"},{"name":"do_fsync","type":"int","comment":"whether to do an fsync() after writing (currently ignored)"}],"argline":"git_odb_backend **out, const char *objects_dir, int compression_level, int do_fsync","sig":"git_odb_backend **::const char *::int::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend for loose objects</p>\n","comments":"","group":"odb"},"git_odb_backend_one_pack":{"type":"function","file":"odb_backend.h","line":59,"lineto":59,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"index_file","type":"const char *","comment":"path to the packfile's .idx file"}],"argline":"git_odb_backend **out, const char *index_file","sig":"git_odb_backend **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend out of a single packfile</p>\n","comments":"<p>This can be useful for inspecting the contents of a single\npackfile.</p>\n","group":"odb"},"git_oid_fromstr":{"type":"function","file":"oid.h","line":47,"lineto":47,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes)."}],"argline":"git_oid *out, const char *str","sig":"git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse a hex formatted object id into a git_oid.</p>\n","comments":"","group":"oid","examples":{"general.c":["ex/HEAD/general.html#git_oid_fromstr-39","ex/HEAD/general.html#git_oid_fromstr-40","ex/HEAD/general.html#git_oid_fromstr-41","ex/HEAD/general.html#git_oid_fromstr-42","ex/HEAD/general.html#git_oid_fromstr-43","ex/HEAD/general.html#git_oid_fromstr-44","ex/HEAD/general.html#git_oid_fromstr-45","ex/HEAD/general.html#git_oid_fromstr-46"]}},"git_oid_fromstrp":{"type":"function","file":"oid.h","line":57,"lineto":57,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string; must be at least 4 characters long and null-terminated."}],"argline":"git_oid *out, const char *str","sig":"git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse a hex formatted null-terminated string into a git_oid.</p>\n","comments":"","group":"oid"},"git_oid_fromstrn":{"type":"function","file":"oid.h","line":70,"lineto":70,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string of at least size `length`"},{"name":"length","type":"size_t","comment":"length of the input string"}],"argline":"git_oid *out, const char *str, size_t length","sig":"git_oid *::const char *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse N characters of a hex formatted object id into a git_oid</p>\n","comments":"<p>If N is odd, N-1 characters will be parsed instead.\nThe remaining space in the git_oid will be set to zero.</p>\n","group":"oid"},"git_oid_fromraw":{"type":"function","file":"oid.h","line":78,"lineto":78,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"raw","type":"const unsigned char *","comment":"the raw input bytes to be copied."}],"argline":"git_oid *out, const unsigned char *raw","sig":"git_oid *::const unsigned char *","return":{"type":"void"},"description":"<p>Copy an already raw oid into a git_oid structure.</p>\n","comments":"","group":"oid"},"git_oid_fmt":{"type":"function","file":"oid.h","line":90,"lineto":90,"args":[{"name":"out","type":"char *","comment":"output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, const git_oid *id","sig":"char *::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a hex string.</p>\n","comments":"","group":"oid","examples":{"general.c":["ex/HEAD/general.html#git_oid_fmt-47","ex/HEAD/general.html#git_oid_fmt-48","ex/HEAD/general.html#git_oid_fmt-49","ex/HEAD/general.html#git_oid_fmt-50","ex/HEAD/general.html#git_oid_fmt-51"],"network/fetch.c":["ex/HEAD/network/fetch.html#git_oid_fmt-1","ex/HEAD/network/fetch.html#git_oid_fmt-2"],"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_oid_fmt-6"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_oid_fmt-1"],"rev-list.c":["ex/HEAD/rev-list.html#git_oid_fmt-8"],"showindex.c":["ex/HEAD/showindex.html#git_oid_fmt-7"]}},"git_oid_nfmt":{"type":"function","file":"oid.h","line":101,"lineto":101,"args":[{"name":"out","type":"char *","comment":"output hex string; you say how many bytes to write. If the number of bytes is > GIT_OID_HEXSZ, extra bytes will be zeroed; if not, a '\\0' terminator is NOT added."},{"name":"n","type":"size_t","comment":"number of characters to write into out string"},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, size_t n, const git_oid *id","sig":"char *::size_t::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a partial hex string.</p>\n","comments":"","group":"oid"},"git_oid_pathfmt":{"type":"function","file":"oid.h","line":116,"lineto":116,"args":[{"name":"out","type":"char *","comment":"output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (41 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, const git_oid *id","sig":"char *::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a loose-object path string.</p>\n","comments":"<p>The resulting string is &quot;aa/...&quot;, where &quot;aa&quot; is the first two\nhex digits of the oid and &quot;...&quot; is the remaining 38 digits.</p>\n","group":"oid"},"git_oid_allocfmt":{"type":"function","file":"oid.h","line":125,"lineto":125,"args":[{"name":"id","type":"const git_oid *","comment":"the oid structure to format"}],"argline":"const git_oid *id","sig":"const git_oid *","return":{"type":"char *","comment":"the c-string; NULL if memory is exhausted. Caller must deallocate the string with git__free()."},"description":"<p>Format a git_oid into a newly allocated c-string.</p>\n","comments":"","group":"oid"},"git_oid_tostr":{"type":"function","file":"oid.h","line":144,"lineto":144,"args":[{"name":"out","type":"char *","comment":"the buffer into which the oid string is output."},{"name":"n","type":"size_t","comment":"the size of the out buffer."},{"name":"id","type":"const git_oid *","comment":"the oid structure to format."}],"argline":"char *out, size_t n, const git_oid *id","sig":"char *::size_t::const git_oid *","return":{"type":"char *","comment":"the out buffer pointer, assuming no input parameter errors, otherwise a pointer to an empty string."},"description":"<p>Format a git_oid into a buffer as a hex format c-string.</p>\n","comments":"<p>If the buffer is smaller than GIT_OID_HEXSZ+1, then the resulting\noid c-string will be truncated to n-1 characters (but will still be\nNUL-byte terminated).</p>\n\n<p>If there are any input parameter errors (out == NULL, n == 0, oid ==\nNULL), then a pointer to an empty string is returned, so that the\nreturn value can always be printed.</p>\n","group":"oid","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_oid_tostr-24","ex/HEAD/cat-file.html#git_oid_tostr-25","ex/HEAD/cat-file.html#git_oid_tostr-26","ex/HEAD/cat-file.html#git_oid_tostr-27","ex/HEAD/cat-file.html#git_oid_tostr-28"],"log.c":["ex/HEAD/log.html#git_oid_tostr-34","ex/HEAD/log.html#git_oid_tostr-35"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_oid_tostr-10","ex/HEAD/rev-parse.html#git_oid_tostr-11","ex/HEAD/rev-parse.html#git_oid_tostr-12","ex/HEAD/rev-parse.html#git_oid_tostr-13"]}},"git_oid_cpy":{"type":"function","file":"oid.h","line":152,"lineto":152,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"src","type":"const git_oid *","comment":"oid structure to copy from."}],"argline":"git_oid *out, const git_oid *src","sig":"git_oid *::const git_oid *","return":{"type":"void"},"description":"<p>Copy an oid from one structure to another.</p>\n","comments":"","group":"oid"},"git_oid_cmp":{"type":"function","file":"oid.h","line":161,"lineto":161,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."}],"argline":"const git_oid *a, const git_oid *b","sig":"const git_oid *::const git_oid *","return":{"type":"int","comment":"<0, 0, >0 if a < b, a == b, a > b."},"description":"<p>Compare two oid structures.</p>\n","comments":"","group":"oid"},"git_oid_equal":{"type":"function","file":"oid.h","line":170,"lineto":173,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."}],"argline":"const git_oid *a, const git_oid *b","sig":"const git_oid *::const git_oid *","return":{"type":"int","comment":"true if equal, false otherwise"},"description":"<p>Compare two oid structures for equality</p>\n","comments":"","group":"oid"},"git_oid_ncmp":{"type":"function","file":"oid.h","line":184,"lineto":184,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."},{"name":"len","type":"size_t","comment":"the number of hex chars to compare"}],"argline":"const git_oid *a, const git_oid *b, size_t len","sig":"const git_oid *::const git_oid *::size_t","return":{"type":"int","comment":"0 in case of a match"},"description":"<p>Compare the first &#39;len&#39; hexadecimal characters (packets of 4 bits)\nof two oid structures.</p>\n","comments":"","group":"oid"},"git_oid_streq":{"type":"function","file":"oid.h","line":193,"lineto":193,"args":[{"name":"id","type":"const git_oid *","comment":"oid structure."},{"name":"str","type":"const char *","comment":"input hex string of an object id."}],"argline":"const git_oid *id, const char *str","sig":"const git_oid *::const char *","return":{"type":"int","comment":"0 in case of a match, -1 otherwise."},"description":"<p>Check if an oid equals an hex formatted object id.</p>\n","comments":"","group":"oid"},"git_oid_strcmp":{"type":"function","file":"oid.h","line":203,"lineto":203,"args":[{"name":"id","type":"const git_oid *","comment":"oid structure."},{"name":"str","type":"const char *","comment":"input hex string of an object id."}],"argline":"const git_oid *id, const char *str","sig":"const git_oid *::const char *","return":{"type":"int","comment":"-1 if str is not valid, <0 if id sorts before str, 0 if id matches str, >0 if id sorts after str."},"description":"<p>Compare an oid to an hex formatted object id.</p>\n","comments":"","group":"oid"},"git_oid_iszero":{"type":"function","file":"oid.h","line":210,"lineto":210,"args":[{"name":"id","type":"const git_oid *"}],"argline":"const git_oid *id","sig":"const git_oid *","return":{"type":"int","comment":"1 if all zeros, 0 otherwise."},"description":"<p>Check is an oid is all zeros.</p>\n","comments":"","group":"oid","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_oid_iszero-3"]}},"git_oid_shorten_new":{"type":"function","file":"oid.h","line":231,"lineto":231,"args":[{"name":"min_length","type":"size_t","comment":"The minimal length for all identifiers, which will be used even if shorter OIDs would still be unique."}],"argline":"size_t min_length","sig":"size_t","return":{"type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance, NULL if OOM"},"description":"<p>Create a new OID shortener.</p>\n","comments":"<p>The OID shortener is used to process a list of OIDs\nin text form and return the shortest length that would\nuniquely identify all of them.</p>\n\n<p>E.g. look at the result of <code>git log --abbrev</code>.</p>\n","group":"oid"},"git_oid_shorten_add":{"type":"function","file":"oid.h","line":257,"lineto":257,"args":[{"name":"os","type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance"},{"name":"text_id","type":"const char *","comment":"an OID in text form"}],"argline":"git_oid_shorten *os, const char *text_id","sig":"git_oid_shorten *::const char *","return":{"type":"int","comment":"the minimal length to uniquely identify all OIDs added so far to the set; or an error code (<0) if an error occurs."},"description":"<p>Add a new OID to set of shortened OIDs and calculate\nthe minimal length to uniquely identify all the OIDs in\nthe set.</p>\n","comments":"<p>The OID is expected to be a 40-char hexadecimal string.\nThe OID is owned by the user and will not be modified\nor freed.</p>\n\n<p>For performance reasons, there is a hard-limit of how many\nOIDs can be added to a single set (around ~32000, assuming\na mostly randomized distribution), which should be enough\nfor any kind of program, and keeps the algorithm fast and\nmemory-efficient.</p>\n\n<p>Attempting to add more than those OIDs will result in a\nGITERR_INVALID error</p>\n","group":"oid"},"git_oid_shorten_free":{"type":"function","file":"oid.h","line":264,"lineto":264,"args":[{"name":"os","type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance"}],"argline":"git_oid_shorten *os","sig":"git_oid_shorten *","return":{"type":"void"},"description":"<p>Free an OID shortener instance</p>\n","comments":"","group":"oid"},"git_packbuilder_new":{"type":"function","file":"pack.h","line":56,"lineto":56,"args":[{"name":"out","type":"git_packbuilder **","comment":"The new packbuilder object"},{"name":"repo","type":"git_repository *","comment":"The repository"}],"argline":"git_packbuilder **out, git_repository *repo","sig":"git_packbuilder **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Initialize a new packbuilder</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_set_threads":{"type":"function","file":"pack.h","line":69,"lineto":69,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"n","type":"unsigned int","comment":"Number of threads to spawn"}],"argline":"git_packbuilder *pb, unsigned int n","sig":"git_packbuilder *::unsigned int","return":{"type":"unsigned int","comment":"number of actual threads to be used"},"description":"<p>Set number of threads to spawn</p>\n","comments":"<p>By default, libgit2 won&#39;t spawn any threads at all;\nwhen set to 0, libgit2 will autodetect the number of\nCPUs.</p>\n","group":"packbuilder"},"git_packbuilder_insert":{"type":"function","file":"pack.h","line":83,"lineto":83,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the commit"},{"name":"name","type":"const char *","comment":"The name; might be NULL"}],"argline":"git_packbuilder *pb, const git_oid *id, const char *name","sig":"git_packbuilder *::const git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a single object</p>\n","comments":"<p>For an optimal pack it&#39;s mandatory to insert objects in recency order,\ncommits followed by trees and blobs.</p>\n","group":"packbuilder"},"git_packbuilder_insert_tree":{"type":"function","file":"pack.h","line":95,"lineto":95,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the root tree"}],"argline":"git_packbuilder *pb, const git_oid *id","sig":"git_packbuilder *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a root tree object</p>\n","comments":"<p>This will add the tree as well as all referenced trees and blobs.</p>\n","group":"packbuilder"},"git_packbuilder_insert_commit":{"type":"function","file":"pack.h","line":107,"lineto":107,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the commit"}],"argline":"git_packbuilder *pb, const git_oid *id","sig":"git_packbuilder *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a commit object</p>\n","comments":"<p>This will add a commit as well as the completed referenced tree.</p>\n","group":"packbuilder"},"git_packbuilder_write":{"type":"function","file":"pack.h","line":119,"lineto":125,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"path","type":"const char *","comment":"to the directory where the packfile and index should be stored"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information from the indexer (optional)"},{"name":"progress_cb_payload","type":"void *","comment":"payload for the progress callback (optional)"}],"argline":"git_packbuilder *pb,\n\tconst char *path,\n\tgit_transfer_progress_callback progress_cb,\n\tvoid *progress_cb_payload","sig":"git_packbuilder *::const char *::git_transfer_progress_callback::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write the new pack and corresponding index file to path.</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_foreach":{"type":"function","file":"pack.h","line":134,"lineto":134,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"},{"name":"cb","type":"git_packbuilder_foreach_cb","comment":"the callback to call with each packed object's buffer"},{"name":"payload","type":"void *","comment":"the callback's data"}],"argline":"git_packbuilder *pb, git_packbuilder_foreach_cb cb, void *payload","sig":"git_packbuilder *::git_packbuilder_foreach_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create the new pack and pass each object to the callback</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_object_count":{"type":"function","file":"pack.h","line":142,"lineto":142,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"uint32_t","comment":"the number of objects in the packfile"},"description":"<p>Get the total number of objects the packbuilder will write out</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_written":{"type":"function","file":"pack.h","line":150,"lineto":150,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"uint32_t","comment":"the number of objects which have already been written"},"description":"<p>Get the number of objects the packbuilder has already written out</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_free":{"type":"function","file":"pack.h","line":157,"lineto":157,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"void"},"description":"<p>Free the packbuilder and all associated data</p>\n","comments":"","group":"packbuilder"},"git_pathspec_new":{"type":"function","file":"pathspec.h","line":63,"lineto":64,"args":[{"name":"out","type":"git_pathspec **","comment":"Output of the compiled pathspec"},{"name":"pathspec","type":"const git_strarray *","comment":"A git_strarray of the paths to match"}],"argline":"git_pathspec **out, const git_strarray *pathspec","sig":"git_pathspec **::const git_strarray *","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Compile a pathspec</p>\n","comments":"","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_new-36"]}},"git_pathspec_free":{"type":"function","file":"pathspec.h","line":71,"lineto":71,"args":[{"name":"ps","type":"git_pathspec *","comment":"The compiled pathspec"}],"argline":"git_pathspec *ps","sig":"git_pathspec *","return":{"type":"void"},"description":"<p>Free a pathspec</p>\n","comments":"","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_free-37"]}},"git_pathspec_matches_path":{"type":"function","file":"pathspec.h","line":86,"lineto":87,"args":[{"name":"ps","type":"const git_pathspec *","comment":"The compiled pathspec"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"path","type":"const char *","comment":"The pathname to attempt to match"}],"argline":"const git_pathspec *ps, uint32_t flags, const char *path","sig":"const git_pathspec *::uint32_t::const char *","return":{"type":"int","comment":"1 is path matches spec, 0 if it does not"},"description":"<p>Try to match a path against a pathspec</p>\n","comments":"<p>Unlike most of the other pathspec matching functions, this will not\nfall back on the native case-sensitivity for your platform. You must\nexplicitly pass flags to control case sensitivity or else this will\nfall back on being case sensitive.</p>\n","group":"pathspec"},"git_pathspec_match_workdir":{"type":"function","file":"pathspec.h","line":111,"lineto":115,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"repo","type":"git_repository *","comment":"The repository in which to match; bare repo is an error"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_repository *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag was given"},"description":"<p>Match a pathspec against the working directory of a repository.</p>\n","comments":"<p>This matches the pathspec against the current files in the working\ndirectory of the repository. It is an error to invoke this on a bare\nrepo. This handles git ignores (i.e. ignored files will not be\nconsidered to match the <code>pathspec</code> unless the file is tracked in the\nindex).</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_index":{"type":"function","file":"pathspec.h","line":140,"lineto":144,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"index","type":"git_index *","comment":"The index to match against"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_index *index,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_index *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against entries in an index.</p>\n","comments":"<p>This matches the pathspec against the files in the repository index.</p>\n\n<p>NOTE: At the moment, the case sensitivity of this match is controlled\nby the current case-sensitivity of the index object itself and the\nUSE_CASE and IGNORE_CASE flags will have no effect. This behavior will\nbe corrected in a future release.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_tree":{"type":"function","file":"pathspec.h","line":164,"lineto":168,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"tree","type":"git_tree *","comment":"The root-level tree to match against"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_tree *tree,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_tree *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against files in a tree.</p>\n","comments":"<p>This matches the pathspec against the files in the given tree.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_match_tree-38"]}},"git_pathspec_match_diff":{"type":"function","file":"pathspec.h","line":188,"lineto":192,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"diff","type":"git_diff_list *","comment":"A generated diff list"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_diff_list *diff,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_diff_list *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against files in a diff list.</p>\n","comments":"<p>This matches the pathspec against the files in the given diff list.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_list_free":{"type":"function","file":"pathspec.h","line":199,"lineto":199,"args":[{"name":"m","type":"git_pathspec_match_list *","comment":"The git_pathspec_match_list to be freed"}],"argline":"git_pathspec_match_list *m","sig":"git_pathspec_match_list *","return":{"type":"void"},"description":"<p>Free memory associates with a git_pathspec_match_list</p>\n","comments":"","group":"pathspec"},"git_pathspec_match_list_entrycount":{"type":"function","file":"pathspec.h","line":207,"lineto":208,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"}],"argline":"const git_pathspec_match_list *m","sig":"const git_pathspec_match_list *","return":{"type":"size_t","comment":"Number of items in match list"},"description":"<p>Get the number of items in a match list.</p>\n","comments":"","group":"pathspec"},"git_pathspec_match_list_entry":{"type":"function","file":"pathspec.h","line":220,"lineto":221,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the list"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const char *","comment":"The filename of the match"},"description":"<p>Get a matching filename by position.</p>\n","comments":"<p>This routine cannot be used if the match list was generated by\n<code>git_pathspec_match_diff</code>. If so, it will always return NULL.</p>\n","group":"pathspec"},"git_pathspec_match_list_diff_entry":{"type":"function","file":"pathspec.h","line":233,"lineto":234,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the list"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const git_diff_delta *","comment":"The filename of the match"},"description":"<p>Get a matching diff delta by position.</p>\n","comments":"<p>This routine can only be used if the match list was generated by\n<code>git_pathspec_match_diff</code>. Otherwise it will always return NULL.</p>\n","group":"pathspec"},"git_pathspec_match_list_failed_entrycount":{"type":"function","file":"pathspec.h","line":245,"lineto":246,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"}],"argline":"const git_pathspec_match_list *m","sig":"const git_pathspec_match_list *","return":{"type":"size_t","comment":"Number of items in original pathspec that had no matches"},"description":"<p>Get the number of pathspec items that did not match.</p>\n","comments":"<p>This will be zero unless you passed GIT_PATHSPEC_FIND_FAILURES when\ngenerating the git_pathspec_match_list.</p>\n","group":"pathspec"},"git_pathspec_match_list_failed_entry":{"type":"function","file":"pathspec.h","line":257,"lineto":260,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the failed items"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const char *","comment":"The pathspec pattern that didn't match anything"},"description":"<p>Get an original pathspec string that had no matches.</p>\n","comments":"<p>This will be return NULL for positions out of range.</p>\n","group":"pathspec"},"git_push_new":{"type":"function","file":"push.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_push **","comment":"New push object"},{"name":"remote","type":"git_remote *","comment":"Remote instance"}],"argline":"git_push **out, git_remote *remote","sig":"git_push **::git_remote *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new push object</p>\n","comments":"","group":"push"},"git_push_set_options":{"type":"function","file":"push.h","line":59,"lineto":61,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"opts","type":"const git_push_options *","comment":"The options to set on the push object"}],"argline":"git_push *push,\n\tconst git_push_options *opts","sig":"git_push *::const git_push_options *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set options on a push object</p>\n","comments":"","group":"push"},"git_push_add_refspec":{"type":"function","file":"push.h","line":71,"lineto":71,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"refspec","type":"const char *","comment":"Refspec string"}],"argline":"git_push *push, const char *refspec","sig":"git_push *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a refspec to be pushed</p>\n","comments":"","group":"push"},"git_push_update_tips":{"type":"function","file":"push.h","line":80,"lineto":80,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update remote tips after a push</p>\n","comments":"","group":"push"},"git_push_finish":{"type":"function","file":"push.h","line":94,"lineto":94,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Actually push all given refspecs</p>\n","comments":"<p>Note: To check if the push was successful (i.e. all remote references\nhave been updated as requested), you need to call both\n<code>git_push_unpack_ok</code> and <code>git_push_status_foreach</code>. The remote\nrepository might have refused to update some or all of the references.</p>\n","group":"push"},"git_push_unpack_ok":{"type":"function","file":"push.h","line":103,"lineto":103,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"true if remote side successfully unpacked, false otherwise"},"description":"<p>Check if remote side successfully unpacked</p>\n","comments":"","group":"push"},"git_push_status_foreach":{"type":"function","file":"push.h","line":118,"lineto":120,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"cb","type":"int (*)(const char *ref, const char *msg, void *data)","comment":"The callback to call on each object"},{"name":"data","type":"void *"}],"argline":"git_push *push,\n\t\t\tint (*cb)(const char *ref, const char *msg, void *data),\n\t\t\tvoid *data","sig":"git_push *::int (*)(const char *ref, const char *msg, void *data)::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Call callback `cb&#39; on each status</p>\n","comments":"<p>For each of the updated references, we receive a status report in the\nform of <code>ok refs/heads/master</code> or <code>ng refs/heads/master &lt;msg&gt;</code>.\n<code>msg != NULL</code> means the reference has not been updated for the given\nreason.</p>\n","group":"push"},"git_push_free":{"type":"function","file":"push.h","line":127,"lineto":127,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"void"},"description":"<p>Free the given push object</p>\n","comments":"","group":"push"},"git_refdb_new":{"type":"function","file":"refdb.h","line":35,"lineto":35,"args":[{"name":"out","type":"git_refdb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference database with no backends.</p>\n","comments":"<p>Before the Ref DB can be used for read/writing, a custom database\nbackend must be manually set using <code>git_refdb_set_backend()</code></p>\n","group":"refdb"},"git_refdb_open":{"type":"function","file":"refdb.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_refdb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference database and automatically add\nthe default backends:</p>\n","comments":"<ul>\n<li>git_refdb_dir: read and write loose and packed refs\n from disk, assuming the repository dir as the folder</li>\n</ul>\n","group":"refdb"},"git_refdb_compress":{"type":"function","file":"refdb.h","line":56,"lineto":56,"args":[{"name":"refdb","type":"git_refdb *"}],"argline":"git_refdb *refdb","sig":"git_refdb *","return":{"type":"int"},"description":"<p>Suggests that the given refdb compress or optimize its references.\nThis mechanism is implementation specific. For on-disk reference\ndatabases, for example, this may pack all loose references.</p>\n","comments":"","group":"refdb"},"git_refdb_free":{"type":"function","file":"refdb.h","line":63,"lineto":63,"args":[{"name":"refdb","type":"git_refdb *","comment":"reference database pointer or NULL"}],"argline":"git_refdb *refdb","sig":"git_refdb *","return":{"type":"void"},"description":"<p>Close an open reference database.</p>\n","comments":"","group":"refdb"},"git_reflog_read":{"type":"function","file":"reflog.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_reflog **","comment":"pointer to reflog"},{"name":"ref","type":"const git_reference *","comment":"reference to read the reflog for"}],"argline":"git_reflog **out, const git_reference *ref","sig":"git_reflog **::const git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read the reflog for the given reference</p>\n","comments":"<p>If there is no reflog file for the given\nreference yet, an empty reflog object will\nbe returned.</p>\n\n<p>The reflog must be freed manually by using\ngit_reflog_free().</p>\n","group":"reflog"},"git_reflog_write":{"type":"function","file":"reflog.h","line":46,"lineto":46,"args":[{"name":"reflog","type":"git_reflog *","comment":"an existing reflog object"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an existing in-memory reflog object back to disk\nusing an atomic file lock.</p>\n","comments":"","group":"reflog"},"git_reflog_append":{"type":"function","file":"reflog.h","line":59,"lineto":59,"args":[{"name":"reflog","type":"git_reflog *","comment":"an existing reflog object"},{"name":"id","type":"const git_oid *","comment":"the OID the reference is now pointing to"},{"name":"committer","type":"const git_signature *","comment":"the signature of the committer"},{"name":"msg","type":"const char *","comment":"the reflog message"}],"argline":"git_reflog *reflog, const git_oid *id, const git_signature *committer, const char *msg","sig":"git_reflog *::const git_oid *::const git_signature *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a new entry to the reflog.</p>\n","comments":"<p><code>msg</code> is optional and can be NULL.</p>\n","group":"reflog"},"git_reflog_rename":{"type":"function","file":"reflog.h","line":73,"lineto":73,"args":[{"name":"ref","type":"git_reference *","comment":"the reference"},{"name":"name","type":"const char *","comment":"the new name of the reference"}],"argline":"git_reference *ref, const char *name","sig":"git_reference *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Rename the reflog for the given reference</p>\n","comments":"<p>The reflog to be renamed is expected to already exist</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reflog"},"git_reflog_delete":{"type":"function","file":"reflog.h","line":81,"lineto":81,"args":[{"name":"ref","type":"git_reference *","comment":"the reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Delete the reflog for the given reference</p>\n","comments":"","group":"reflog"},"git_reflog_entrycount":{"type":"function","file":"reflog.h","line":89,"lineto":89,"args":[{"name":"reflog","type":"git_reflog *","comment":"the previously loaded reflog"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"size_t","comment":"the number of log entries"},"description":"<p>Get the number of log entries in a reflog</p>\n","comments":"","group":"reflog"},"git_reflog_entry_byindex":{"type":"function","file":"reflog.h","line":102,"lineto":102,"args":[{"name":"reflog","type":"git_reflog *","comment":"a previously loaded reflog"},{"name":"idx","type":"size_t","comment":"the position of the entry to lookup. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."}],"argline":"git_reflog *reflog, size_t idx","sig":"git_reflog *::size_t","return":{"type":"const git_reflog_entry *","comment":"the entry; NULL if not found"},"description":"<p>Lookup an entry by its index</p>\n","comments":"<p>Requesting the reflog entry with an index of 0 (zero) will\nreturn the most recently created entry.</p>\n","group":"reflog"},"git_reflog_drop":{"type":"function","file":"reflog.h","line":121,"lineto":124,"args":[{"name":"reflog","type":"git_reflog *","comment":"a previously loaded reflog."},{"name":"idx","type":"size_t","comment":"the position of the entry to remove. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."},{"name":"rewrite_previous_entry","type":"int","comment":"1 to rewrite the history; 0 otherwise."}],"argline":"git_reflog *reflog,\n\tsize_t idx,\n\tint rewrite_previous_entry","sig":"git_reflog *::size_t::int","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if the entry doesn't exist or an error code."},"description":"<p>Remove an entry from the reflog by its index</p>\n","comments":"<p>To ensure there&#39;s no gap in the log history, set <code>rewrite_previous_entry</code>\nparam value to 1. When deleting entry <code>n</code>, member old_oid of entry <code>n-1</code>\n(if any) will be updated with the value of member new_oid of entry <code>n+1</code>.</p>\n","group":"reflog"},"git_reflog_entry_id_old":{"type":"function","file":"reflog.h","line":132,"lineto":132,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_oid *","comment":"the old oid"},"description":"<p>Get the old oid</p>\n","comments":"","group":"reflog"},"git_reflog_entry_id_new":{"type":"function","file":"reflog.h","line":140,"lineto":140,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_oid *","comment":"the new oid at this time"},"description":"<p>Get the new oid</p>\n","comments":"","group":"reflog"},"git_reflog_entry_committer":{"type":"function","file":"reflog.h","line":148,"lineto":148,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_signature *","comment":"the committer"},"description":"<p>Get the committer of this entry</p>\n","comments":"","group":"reflog"},"git_reflog_entry_message":{"type":"function","file":"reflog.h","line":156,"lineto":156,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const char *","comment":"the log msg"},"description":"<p>Get the log message</p>\n","comments":"","group":"reflog"},"git_reflog_free":{"type":"function","file":"reflog.h","line":163,"lineto":163,"args":[{"name":"reflog","type":"git_reflog *","comment":"reflog to free"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"void"},"description":"<p>Free the reflog</p>\n","comments":"","group":"reflog"},"git_reference_lookup":{"type":"function","file":"refs.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the looked-up reference"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the reference"},{"name":"name","type":"const char *","comment":"the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"}],"argline":"git_reference **out, git_repository *repo, const char *name","sig":"git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code."},"description":"<p>Lookup a reference by name in a repository.</p>\n","comments":"<p>The returned reference must be freed by the user.</p>\n\n<p>The name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_lookup-52"]}},"git_reference_name_to_id":{"type":"function","file":"refs.h","line":54,"lineto":55,"args":[{"name":"out","type":"git_oid *","comment":"Pointer to oid to be filled in"},{"name":"repo","type":"git_repository *","comment":"The repository in which to look up the reference"},{"name":"name","type":"const char *","comment":"The long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"}],"argline":"git_oid *out, git_repository *repo, const char *name","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code."},"description":"<p>Lookup a reference by name and resolve immediately to OID.</p>\n","comments":"<p>This function provides a quick way to resolve a reference name straight\nthrough to the object id that it refers to. This avoids having to\nallocate or free any <code>git_reference</code> objects for simple situations.</p>\n\n<p>The name will be checked for validity.\nSee <code>git_reference_symbolic_create()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_dwim":{"type":"function","file":"refs.h","line":68,"lineto":68,"args":[{"name":"out","type":"git_reference **","comment":"pointer in which to store the reference"},{"name":"repo","type":"git_repository *","comment":"the repository in which to look"},{"name":"shorthand","type":"const char *","comment":"the short name for the reference"}],"argline":"git_reference **out, git_repository *repo, const char *shorthand","sig":"git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference by DWIMing its short name</p>\n","comments":"<p>Apply the git precendence rules to the given shorthand to determine\nwhich reference the user is refering to.</p>\n","group":"reference"},"git_reference_symbolic_create":{"type":"function","file":"refs.h","line":99,"lineto":99,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"repo","type":"git_repository *","comment":"Repository where that reference will live"},{"name":"name","type":"const char *","comment":"The name of the reference"},{"name":"target","type":"const char *","comment":"The target of the reference"},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_reference **out, git_repository *repo, const char *name, const char *target, int force","sig":"git_reference **::git_repository *::const char *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new symbolic reference.</p>\n","comments":"<p>A symbolic reference is a reference name that refers to another\nreference name. If the other name moves, the symbolic name will move,\ntoo. As a simple example, the &quot;HEAD&quot; reference might refer to\n&quot;refs/heads/master&quot; while on the &quot;master&quot; branch of a repository.</p>\n\n<p>The symbolic reference will be created in the repository and written to\nthe disk. The generated reference object must be freed by the user.</p>\n\n<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n\n<p>This function will return an error if a reference already exists with the\ngiven name unless <code>force</code> is true, in which case it will be overwritten.</p>\n","group":"reference"},"git_reference_create":{"type":"function","file":"refs.h","line":131,"lineto":131,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"repo","type":"git_repository *","comment":"Repository where that reference will live"},{"name":"name","type":"const char *","comment":"The name of the reference"},{"name":"id","type":"const git_oid *","comment":"The object id pointed to by the reference."},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_reference **out, git_repository *repo, const char *name, const git_oid *id, int force","sig":"git_reference **::git_repository *::const char *::const git_oid *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new direct reference.</p>\n","comments":"<p>A direct reference (also called an object id reference) refers directly\nto a specific object id (a.k.a. OID or SHA) in the repository. The id\npermanently refers to the object (although the reference itself can be\nmoved). For example, in libgit2 the direct ref &quot;refs/tags/v0.17.0&quot;\nrefers to OID 5b9fac39d8a76b9139667c26a63e6b3f204b3977.</p>\n\n<p>The direct reference will be created in the repository and written to\nthe disk. The generated reference object must be freed by the user.</p>\n\n<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n\n<p>This function will return an error if a reference already exists with the\ngiven name unless <code>force</code> is true, in which case it will be overwritten.</p>\n","group":"reference"},"git_reference_target":{"type":"function","file":"refs.h","line":146,"lineto":146,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const git_oid *","comment":"a pointer to the oid if available, NULL otherwise"},"description":"<p>Get the OID pointed to by a direct reference.</p>\n","comments":"<p>Only available if the reference is direct (i.e. an object id reference,\nnot a symbolic one).</p>\n\n<p>To find the OID of a symbolic ref, call <code>git_reference_resolve()</code> and\nthen this function (or maybe use <code>git_reference_name_to_id()</code> to\ndirectly resolve a reference name all the way through to an OID).</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_target-53"]}},"git_reference_target_peel":{"type":"function","file":"refs.h","line":157,"lineto":157,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const git_oid *","comment":"a pointer to the oid if available, NULL otherwise"},"description":"<p>Return the peeled OID target of this reference.</p>\n","comments":"<p>This peeled OID only applies to direct references that point to\na hard Tag object: it is the result of peeling such Tag.</p>\n","group":"reference"},"git_reference_symbolic_target":{"type":"function","file":"refs.h","line":167,"lineto":167,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const char *","comment":"a pointer to the name if available, NULL otherwise"},"description":"<p>Get full name to the reference pointed to by a symbolic reference.</p>\n","comments":"<p>Only available if the reference is symbolic.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_symbolic_target-54"]}},"git_reference_type":{"type":"function","file":"refs.h","line":177,"lineto":177,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"git_ref_t","comment":"the type"},"description":"<p>Get the type of a reference.</p>\n","comments":"<p>Either direct (GIT_REF_OID) or symbolic (GIT_REF_SYMBOLIC)</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_type-55"]}},"git_reference_name":{"type":"function","file":"refs.h","line":187,"lineto":187,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const char *","comment":"the full name for the ref"},"description":"<p>Get the full name of a reference.</p>\n","comments":"<p>See <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference","examples":{"status.c":["ex/HEAD/status.html#git_reference_name-2"]}},"git_reference_resolve":{"type":"function","file":"refs.h","line":205,"lineto":205,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the peeled reference"},{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"git_reference **out, const git_reference *ref","sig":"git_reference **::const git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Resolve a symbolic reference to a direct reference.</p>\n","comments":"<p>This method iteratively peels a symbolic reference until it resolves to\na direct reference to an OID.</p>\n\n<p>The peeled reference is returned in the <code>resolved_ref</code> argument, and\nmust be freed manually once it&#39;s no longer needed.</p>\n\n<p>If a direct reference is passed as an argument, a copy of that\nreference is returned. This copy must be manually freed too.</p>\n","group":"reference"},"git_reference_owner":{"type":"function","file":"refs.h","line":213,"lineto":213,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"git_repository *","comment":"a pointer to the repo"},"description":"<p>Get the repository where a reference resides.</p>\n","comments":"","group":"reference"},"git_reference_symbolic_set_target":{"type":"function","file":"refs.h","line":230,"lineto":233,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"ref","type":"git_reference *","comment":"The reference"},{"name":"target","type":"const char *","comment":"The new target for the reference"}],"argline":"git_reference **out,\n\tgit_reference *ref,\n\tconst char *target","sig":"git_reference **::git_reference *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new reference with the same name as the given reference but a\ndifferent symbolic target. The reference must be a symbolic reference,\notherwise this will fail.</p>\n","comments":"<p>The new reference will be written to disk, overwriting the given reference.</p>\n\n<p>The target name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_set_target":{"type":"function","file":"refs.h","line":247,"lineto":250,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"ref","type":"git_reference *","comment":"The reference"},{"name":"id","type":"const git_oid *","comment":"The new target OID for the reference"}],"argline":"git_reference **out,\n\tgit_reference *ref,\n\tconst git_oid *id","sig":"git_reference **::git_reference *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference with the same name as the given reference but a\ndifferent OID target. The reference must be a direct reference, otherwise\nthis will fail.</p>\n","comments":"<p>The new reference will be written to disk, overwriting the given reference.</p>\n","group":"reference"},"git_reference_rename":{"type":"function","file":"refs.h","line":274,"lineto":278,"args":[{"name":"new_ref","type":"git_reference **"},{"name":"ref","type":"git_reference *","comment":"The reference to rename"},{"name":"new_name","type":"const char *","comment":"The new name for the reference"},{"name":"force","type":"int","comment":"Overwrite an existing reference"}],"argline":"git_reference **new_ref,\n\tgit_reference *ref,\n\tconst char *new_name,\n\tint force","sig":"git_reference **::git_reference *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Rename an existing reference.</p>\n","comments":"<p>This method works for both direct and symbolic references.</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n\n<p>If the <code>force</code> flag is not enabled, and there&#39;s already\na reference with the given name, the renaming will fail.</p>\n\n<p>IMPORTANT:\nThe user needs to write a proper reflog entry if the\nreflog is enabled for the repository. We only rename\nthe reflog if it exists.</p>\n","group":"reference"},"git_reference_delete":{"type":"function","file":"refs.h","line":290,"lineto":290,"args":[{"name":"ref","type":"git_reference *","comment":"The reference to remove"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Delete an existing reference.</p>\n","comments":"<p>This method works for both direct and symbolic references. The reference\nwill be immediately removed on disk but the memory will not be freed.\nCallers must call <code>git_reference_free</code>.</p>\n","group":"reference"},"git_reference_list":{"type":"function","file":"refs.h","line":304,"lineto":307,"args":[{"name":"array","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the reference names will be stored"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"}],"argline":"git_strarray *array, git_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the references that can be found in a repository.</p>\n","comments":"<p>The string array will be filled with the names of all references; these\nvalues are owned by the user and should be free&#39;d manually when no\nlonger needed, using <code>git_strarray_free()</code>.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_list-56"]}},"git_reference_foreach":{"type":"function","file":"refs.h","line":322,"lineto":330,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"},{"name":"callback","type":"git_reference_foreach_cb","comment":"Function which will be called for every listed ref"},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_repository *repo,\n\tgit_reference_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_reference_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform a callback on each reference in the repository.</p>\n","comments":"<p>The <code>callback</code> function will be called for each reference in the\nrepository, receiving the name of the reference and the <code>payload</code> value\npassed to this method. Returning a non-zero value from the callback\nwill terminate the iteration.</p>\n","group":"reference"},"git_reference_free":{"type":"function","file":"refs.h","line":337,"lineto":337,"args":[{"name":"ref","type":"git_reference *","comment":"git_reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"void"},"description":"<p>Free the given reference.</p>\n","comments":"","group":"reference","examples":{"status.c":["ex/HEAD/status.html#git_reference_free-3"]}},"git_reference_cmp":{"type":"function","file":"refs.h","line":346,"lineto":346,"args":[{"name":"ref1","type":"git_reference *","comment":"The first git_reference"},{"name":"ref2","type":"git_reference *","comment":"The second git_reference"}],"argline":"git_reference *ref1, git_reference *ref2","sig":"git_reference *::git_reference *","return":{"type":"int","comment":"0 if the same, else a stable but meaningless ordering."},"description":"<p>Compare two references.</p>\n","comments":"","group":"reference"},"git_reference_iterator_new":{"type":"function","file":"refs.h","line":355,"lineto":357,"args":[{"name":"out","type":"git_reference_iterator **","comment":"pointer in which to store the iterator"},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_reference_iterator **out,\n\tgit_repository *repo","sig":"git_reference_iterator **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the repo&#39;s references</p>\n","comments":"","group":"reference"},"git_reference_iterator_glob_new":{"type":"function","file":"refs.h","line":368,"lineto":371,"args":[{"name":"out","type":"git_reference_iterator **","comment":"pointer in which to store the iterator"},{"name":"repo","type":"git_repository *","comment":"the repository"},{"name":"glob","type":"const char *","comment":"the glob to match against the reference names"}],"argline":"git_reference_iterator **out,\n\tgit_repository *repo,\n\tconst char *glob","sig":"git_reference_iterator **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the repo&#39;s references that match the\nspecified glob</p>\n","comments":"","group":"reference"},"git_reference_next":{"type":"function","file":"refs.h","line":380,"lineto":382,"args":[{"name":"out","type":"git_reference **","comment":"pointer in which to store the reference"},{"name":"iter","type":"git_reference_iterator *","comment":"the iterator"}],"argline":"git_reference **out, git_reference_iterator *iter","sig":"git_reference **::git_reference_iterator *","return":{"type":"int","comment":"0, GIT_ITEROVER if there are no more; or an error code"},"description":"<p>Get the next reference</p>\n","comments":"","group":"reference"},"git_reference_iterator_free":{"type":"function","file":"refs.h","line":389,"lineto":389,"args":[{"name":"iter","type":"git_reference_iterator *","comment":"the iterator to free"}],"argline":"git_reference_iterator *iter","sig":"git_reference_iterator *","return":{"type":"void"},"description":"<p>Free the iterator and its associated resources</p>\n","comments":"","group":"reference"},"git_reference_foreach_glob":{"type":"function","file":"refs.h","line":409,"lineto":413,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"},{"name":"glob","type":"const char *","comment":"Pattern to match (fnmatch-style) against reference name."},{"name":"callback","type":"git_reference_foreach_name_cb","comment":"Function which will be called for every listed ref"},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_repository *repo,\n\tconst char *glob,\n\tgit_reference_foreach_name_cb callback,\n\tvoid *payload","sig":"git_repository *::const char *::git_reference_foreach_name_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform a callback on each reference in the repository whose name\nmatches the given pattern.</p>\n","comments":"<p>This function acts like <code>git_reference_foreach()</code> with an additional\npattern match being applied to the reference name before issuing the\ncallback function. See that function for more information.</p>\n\n<p>The pattern is matched using fnmatch or &quot;glob&quot; style where a &#39;*&#39; matches\nany sequence of letters, a &#39;?&#39; matches any letter, and square brackets\ncan be used to define character ranges (such as &quot;[0-9]&quot; for digits).</p>\n","group":"reference"},"git_reference_has_log":{"type":"function","file":"refs.h","line":423,"lineto":423,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 when no reflog can be found, 1 when it exists; otherwise an error code."},"description":"<p>Check if a reflog exists for the specified reference.</p>\n","comments":"","group":"reference"},"git_reference_is_branch":{"type":"function","file":"refs.h","line":433,"lineto":433,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/heads namespace; 0 otherwise."},"description":"<p>Check if a reference is a local branch.</p>\n","comments":"","group":"reference"},"git_reference_is_remote":{"type":"function","file":"refs.h","line":443,"lineto":443,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/remotes namespace; 0 otherwise."},"description":"<p>Check if a reference is a remote tracking branch</p>\n","comments":"","group":"reference"},"git_reference_is_tag":{"type":"function","file":"refs.h","line":453,"lineto":456,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/tags namespace; 0 otherwise."},"description":"<p>Check if a reference is a tag</p>\n","comments":"","group":"reference"},"git_reference_normalize_name":{"type":"function","file":"refs.h","line":503,"lineto":507,"args":[{"name":"buffer_out","type":"char *","comment":"User allocated buffer to store normalized name"},{"name":"buffer_size","type":"size_t","comment":"Size of buffer_out"},{"name":"name","type":"const char *","comment":"Reference name to be checked."},{"name":"flags","type":"unsigned int","comment":"Flags to constrain name validation rules - see the GIT_REF_FORMAT constants above."}],"argline":"char *buffer_out,\n\tsize_t buffer_size,\n\tconst char *name,\n\tunsigned int flags","sig":"char *::size_t::const char *::unsigned int","return":{"type":"int","comment":"0 on success, GIT_EBUFS if buffer is too small, GIT_EINVALIDSPEC or an error code."},"description":"<p>Normalize reference name and check validity.</p>\n","comments":"<p>This will normalize the reference name by removing any leading slash\n&#39;/&#39; characters and collapsing runs of adjacent slashes between name\ncomponents into a single slash.</p>\n\n<p>Once normalized, if the reference name is valid, it will be returned in\nthe user allocated buffer.</p>\n\n<p>See <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_peel":{"type":"function","file":"refs.h","line":524,"lineto":527,"args":[{"name":"out","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"ref","type":"git_reference *","comment":"The reference to be processed"},{"name":"type","type":"git_otype","comment":"The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."}],"argline":"git_object **out,\n\tgit_reference *ref,\n\tgit_otype type","sig":"git_object **::git_reference *::git_otype","return":{"type":"int","comment":"0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code"},"description":"<p>Recursively peel reference until object of the specified type is found.</p>\n","comments":"<p>The retrieved <code>peeled</code> object is owned by the repository\nand should be closed with the <code>git_object_free</code> method.</p>\n\n<p>If you pass <code>GIT_OBJ_ANY</code> as the target type, then the object\nwill be peeled until a non-tag object is met.</p>\n","group":"reference"},"git_reference_is_valid_name":{"type":"function","file":"refs.h","line":543,"lineto":543,"args":[{"name":"refname","type":"const char *","comment":"name to be checked."}],"argline":"const char *refname","sig":"const char *","return":{"type":"int","comment":"1 if the reference name is acceptable; 0 if it isn't"},"description":"<p>Ensure the reference name is well-formed.</p>\n","comments":"<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n","group":"reference"},"git_reference_shorthand":{"type":"function","file":"refs.h","line":557,"lineto":557,"args":[{"name":"ref","type":"git_reference *","comment":"a reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"const char *","comment":"the human-readable version of the name"},"description":"<p>Get the reference&#39;s short name</p>\n","comments":"<p>This will transform the reference name into a name &quot;human-readable&quot;\nversion. If no shortname is appropriate, it will return the full\nname.</p>\n\n<p>The memory is owned by the reference and must not be freed.</p>\n","group":"reference"},"git_refspec_src":{"type":"function","file":"refspec.h","line":29,"lineto":29,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *","comment":"the refspec's source specifier"},"description":"<p>Get the source specifier</p>\n","comments":"","group":"refspec"},"git_refspec_dst":{"type":"function","file":"refspec.h","line":37,"lineto":37,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *","comment":"the refspec's destination specifier"},"description":"<p>Get the destination specifier</p>\n","comments":"","group":"refspec"},"git_refspec_string":{"type":"function","file":"refspec.h","line":45,"lineto":45,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *"},"description":"<p>Get the refspec&#39;s string</p>\n","comments":"","group":"refspec"},"git_refspec_force":{"type":"function","file":"refspec.h","line":53,"lineto":53,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"int","comment":"1 if force update has been set, 0 otherwise"},"description":"<p>Get the force update setting</p>\n","comments":"","group":"refspec"},"git_refspec_direction":{"type":"function","file":"refspec.h","line":61,"lineto":61,"args":[{"name":"spec","type":"const git_refspec *","comment":"refspec"}],"argline":"const git_refspec *spec","sig":"const git_refspec *","return":{"type":"git_direction","comment":"GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH"},"description":"<p>Get the refspec&#39;s direction.</p>\n","comments":"","group":"refspec"},"git_refspec_src_matches":{"type":"function","file":"refspec.h","line":70,"lineto":70,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"},{"name":"refname","type":"const char *","comment":"the name of the reference to check"}],"argline":"const git_refspec *refspec, const char *refname","sig":"const git_refspec *::const char *","return":{"type":"int","comment":"1 if the refspec matches, 0 otherwise"},"description":"<p>Check if a refspec&#39;s source descriptor matches a reference</p>\n","comments":"","group":"refspec"},"git_refspec_dst_matches":{"type":"function","file":"refspec.h","line":79,"lineto":79,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"},{"name":"refname","type":"const char *","comment":"the name of the reference to check"}],"argline":"const git_refspec *refspec, const char *refname","sig":"const git_refspec *::const char *","return":{"type":"int","comment":"1 if the refspec matches, 0 otherwise"},"description":"<p>Check if a refspec&#39;s destination descriptor matches a reference</p>\n","comments":"","group":"refspec"},"git_refspec_transform":{"type":"function","file":"refspec.h","line":90,"lineto":90,"args":[{"name":"out","type":"char *","comment":"where to store the target name"},{"name":"outlen","type":"size_t","comment":"the size of the `out` buffer"},{"name":"spec","type":"const git_refspec *","comment":"the refspec"},{"name":"name","type":"const char *","comment":"the name of the reference to transform"}],"argline":"char *out, size_t outlen, const git_refspec *spec, const char *name","sig":"char *::size_t::const git_refspec *::const char *","return":{"type":"int","comment":"0, GIT_EBUFS or another error"},"description":"<p>Transform a reference to its target following the refspec&#39;s rules</p>\n","comments":"","group":"refspec"},"git_refspec_rtransform":{"type":"function","file":"refspec.h","line":101,"lineto":105,"args":[{"name":"out","type":"char *","comment":"where to store the source reference name"},{"name":"outlen","type":"size_t","comment":"the size of the `out` buffer"},{"name":"spec","type":"const git_refspec *","comment":"the refspec"},{"name":"name","type":"const char *","comment":"the name of the reference to transform"}],"argline":"char *out, size_t outlen, const git_refspec *spec, const char *name","sig":"char *::size_t::const git_refspec *::const char *","return":{"type":"int","comment":"0, GIT_EBUFS or another error"},"description":"<p>Transform a target reference to its source reference following the refspec&#39;s rules</p>\n","comments":"","group":"refspec"},"git_remote_create":{"type":"function","file":"remote.h","line":39,"lineto":43,"args":[{"name":"out","type":"git_remote **","comment":"the resulting remote"},{"name":"repo","type":"git_repository *","comment":"the repository in which to create the remote"},{"name":"name","type":"const char *","comment":"the remote's name"},{"name":"url","type":"const char *","comment":"the remote's url"}],"argline":"git_remote **out,\n\t\tgit_repository *repo,\n\t\tconst char *name,\n\t\tconst char *url","sig":"git_remote **::git_repository *::const char *::const char *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Add a remote with the default fetch refspec to the repository&#39;s configuration. This\ncalls git_remote_save before returning.</p>\n","comments":"","group":"remote"},"git_remote_create_inmemory":{"type":"function","file":"remote.h","line":61,"lineto":65,"args":[{"name":"out","type":"git_remote **","comment":"pointer to the new remote object"},{"name":"repo","type":"git_repository *","comment":"the associated repository"},{"name":"fetch","type":"const char *","comment":"the fetch refspec to use for this remote. May be NULL for defaults."},{"name":"url","type":"const char *","comment":"the remote repository's URL"}],"argline":"git_remote **out,\n\t\tgit_repository *repo,\n\t\tconst char *fetch,\n\t\tconst char *url","sig":"git_remote **::git_repository *::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a remote in memory</p>\n","comments":"<p>Create a remote with the given refspec in memory. You can use\nthis when you have a URL instead of a remote&#39;s name. Note that in-memory\nremotes cannot be converted to persisted remotes.</p>\n\n<p>The name, when provided, will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_create_inmemory-4"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_create_inmemory-2"]}},"git_remote_load":{"type":"function","file":"remote.h","line":78,"lineto":78,"args":[{"name":"out","type":"git_remote **","comment":"pointer to the new remote object"},{"name":"repo","type":"git_repository *","comment":"the associated repository"},{"name":"name","type":"const char *","comment":"the remote's name"}],"argline":"git_remote **out, git_repository *repo, const char *name","sig":"git_remote **::git_repository *::const char *","return":{"type":"int","comment":"0, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code"},"description":"<p>Get the information for a particular remote</p>\n","comments":"<p>The name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_load-5"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_load-3"]}},"git_remote_save":{"type":"function","file":"remote.h","line":89,"lineto":89,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote to save to config"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC or an error code"},"description":"<p>Save a remote to its repository&#39;s configuration</p>\n","comments":"<p>One can&#39;t save a in-memory remote. Doing so will\nresult in a GIT_EINVALIDSPEC being returned.</p>\n","group":"remote"},"git_remote_owner":{"type":"function","file":"remote.h","line":97,"lineto":97,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"git_repository *","comment":"a pointer to the repository"},"description":"<p>Get the remote&#39;s repository</p>\n","comments":"","group":"remote"},"git_remote_name":{"type":"function","file":"remote.h","line":105,"lineto":105,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the name or NULL for in-memory remotes"},"description":"<p>Get the remote&#39;s name</p>\n","comments":"","group":"remote"},"git_remote_url":{"type":"function","file":"remote.h","line":113,"lineto":113,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the url"},"description":"<p>Get the remote&#39;s url</p>\n","comments":"","group":"remote"},"git_remote_pushurl":{"type":"function","file":"remote.h","line":121,"lineto":121,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the url or NULL if no special url for pushing is set"},"description":"<p>Get the remote&#39;s url for pushing</p>\n","comments":"","group":"remote"},"git_remote_set_url":{"type":"function","file":"remote.h","line":132,"lineto":132,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"url","type":"const char*","comment":"the url to set"}],"argline":"git_remote *remote, const char* url","sig":"git_remote *::const char*","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Set the remote&#39;s url</p>\n","comments":"<p>Existing connections will not be updated.</p>\n","group":"remote"},"git_remote_set_pushurl":{"type":"function","file":"remote.h","line":143,"lineto":143,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"url","type":"const char*","comment":"the url to set or NULL to clear the pushurl"}],"argline":"git_remote *remote, const char* url","sig":"git_remote *::const char*","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Set the remote&#39;s url for pushing</p>\n","comments":"<p>Existing connections will not be updated.</p>\n","group":"remote"},"git_remote_add_fetch":{"type":"function","file":"remote.h","line":152,"lineto":152,"args":[{"name":"remote","type":"git_remote *","comment":"the remote @apram refspec the new fetch refspec"},{"name":"refspec","type":"const char *"}],"argline":"git_remote *remote, const char *refspec","sig":"git_remote *::const char *","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Add a fetch refspec to the remote</p>\n","comments":"","group":"remote"},"git_remote_get_fetch_refspecs":{"type":"function","file":"remote.h","line":163,"lineto":163,"args":[{"name":"array","type":"git_strarray *","comment":"pointer to the array in which to store the strings"},{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_strarray *array, git_remote *remote","sig":"git_strarray *::git_remote *","return":{"type":"int"},"description":"<p>Get the remote&#39;s list of fetch refspecs</p>\n","comments":"<p>The memory is owned by the user and should be freed with\n<code>git_strarray_free</code>.</p>\n","group":"remote"},"git_remote_add_push":{"type":"function","file":"remote.h","line":172,"lineto":172,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"refspec","type":"const char *","comment":"the new push refspec"}],"argline":"git_remote *remote, const char *refspec","sig":"git_remote *::const char *","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Add a push refspec to the remote</p>\n","comments":"","group":"remote"},"git_remote_get_push_refspecs":{"type":"function","file":"remote.h","line":183,"lineto":183,"args":[{"name":"array","type":"git_strarray *","comment":"pointer to the array in which to store the strings"},{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_strarray *array, git_remote *remote","sig":"git_strarray *::git_remote *","return":{"type":"int"},"description":"<p>Get the remote&#39;s list of push refspecs</p>\n","comments":"<p>The memory is owned by the user and should be freed with\n<code>git_strarray_free</code>.</p>\n","group":"remote"},"git_remote_clear_refspecs":{"type":"function","file":"remote.h","line":192,"lineto":192,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Clear the refspecs</p>\n","comments":"<p>Remove all configured fetch and push refspecs from the remote.</p>\n","group":"remote"},"git_remote_refspec_count":{"type":"function","file":"remote.h","line":200,"lineto":200,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"size_t","comment":"the amount of refspecs configured in this remote"},"description":"<p>Get the number of refspecs for a remote</p>\n","comments":"","group":"remote"},"git_remote_get_refspec":{"type":"function","file":"remote.h","line":209,"lineto":209,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"},{"name":"n","type":"size_t","comment":"the refspec to get"}],"argline":"git_remote *remote, size_t n","sig":"git_remote *::size_t","return":{"type":"const git_refspec *","comment":"the nth refspec"},"description":"<p>Get a refspec from the remote</p>\n","comments":"","group":"remote"},"git_remote_remove_refspec":{"type":"function","file":"remote.h","line":218,"lineto":218,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"},{"name":"n","type":"size_t","comment":"the refspec to remove"}],"argline":"git_remote *remote, size_t n","sig":"git_remote *::size_t","return":{"type":"int","comment":"0 or GIT_ENOTFOUND"},"description":"<p>Remove a refspec from the remote</p>\n","comments":"","group":"remote"},"git_remote_connect":{"type":"function","file":"remote.h","line":232,"lineto":232,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to connect to"},{"name":"direction","type":"git_direction","comment":"GIT_DIRECTION_FETCH if you want to fetch or GIT_DIRECTION_PUSH if you want to push"}],"argline":"git_remote *remote, git_direction direction","sig":"git_remote *::git_direction","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open a connection to a remote</p>\n","comments":"<p>The transport is selected based on the URL. The direction argument\nis due to a limitation of the git protocol (over TCP or SSH) which\nstarts up a specific binary which can only do the one or the other.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_connect-6"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_connect-4"]}},"git_remote_ls":{"type":"function","file":"remote.h","line":248,"lineto":248,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"list_cb","type":"git_headlist_cb","comment":"function to call with each ref discovered at the remote"},{"name":"payload","type":"void *","comment":"additional data to pass to the callback"}],"argline":"git_remote *remote, git_headlist_cb list_cb, void *payload","sig":"git_remote *::git_headlist_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Get a list of refs at the remote</p>\n","comments":"<p>The remote (or more exactly its transport) must be connected. The\nmemory belongs to the remote.</p>\n\n<p>If you a return a non-zero value from the callback, this will stop\nlooping over the refs.</p>\n","group":"remote","examples":{"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_ls-5"]}},"git_remote_download":{"type":"function","file":"remote.h","line":267,"lineto":270,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to download from"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."},{"name":"payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_remote *remote,\n\t\tgit_transfer_progress_callback progress_cb,\n\t\tvoid *payload","sig":"git_remote *::git_transfer_progress_callback::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Download and index the packfile</p>\n","comments":"<p>Connect to the remote if it hasn&#39;t been done yet, negotiate with\nthe remote git which objects are missing, download and index the\npackfile.</p>\n\n<p>The .idx file will be created and both it and the packfile with be\nrenamed to their final name.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_download-7"]}},"git_remote_connected":{"type":"function","file":"remote.h","line":281,"lineto":281,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"1 if it's connected, 0 otherwise."},"description":"<p>Check whether the remote is connected</p>\n","comments":"<p>Check whether the remote&#39;s underlying transport is connected to the\nremote host.</p>\n","group":"remote"},"git_remote_stop":{"type":"function","file":"remote.h","line":291,"lineto":291,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Cancel the operation</p>\n","comments":"<p>At certain points in its operation, the network code checks whether\nthe operation has been cancelled and if so stops the operation.</p>\n","group":"remote"},"git_remote_disconnect":{"type":"function","file":"remote.h","line":301,"lineto":301,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to disconnect from"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Disconnect from the remote</p>\n","comments":"<p>Close the connection to the remote and free the underlying\ntransport.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_disconnect-8"]}},"git_remote_free":{"type":"function","file":"remote.h","line":311,"lineto":311,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to free"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Free the memory associated with a remote</p>\n","comments":"<p>This also disconnects from the remote, if the connection\nhas not been closed yet (using git_remote_disconnect).</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_free-9","ex/HEAD/network/fetch.html#git_remote_free-10"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_free-6"]}},"git_remote_update_tips":{"type":"function","file":"remote.h","line":319,"lineto":319,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to update"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update the tips to the new state</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_update_tips-11"]}},"git_remote_valid_url":{"type":"function","file":"remote.h","line":327,"lineto":327,"args":[{"name":"url","type":"const char *","comment":"the url to check"}],"argline":"const char *url","sig":"const char *","return":{"type":"int","comment":"1 if the url is valid, 0 otherwise"},"description":"<p>Return whether a string is a valid remote URL</p>\n","comments":"","group":"remote"},"git_remote_supported_url":{"type":"function","file":"remote.h","line":335,"lineto":335,"args":[{"name":"url","type":"const char*","comment":"the url to check"}],"argline":"const char* url","sig":"const char*","return":{"type":"int","comment":"1 if the url is supported, 0 otherwise"},"description":"<p>Return whether the passed URL is supported by this version of the library.</p>\n","comments":"","group":"remote"},"git_remote_list":{"type":"function","file":"remote.h","line":346,"lineto":346,"args":[{"name":"out","type":"git_strarray *","comment":"a string array which receives the names of the remotes"},{"name":"repo","type":"git_repository *","comment":"the repository to query"}],"argline":"git_strarray *out, git_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get a list of the configured remotes for a repo</p>\n","comments":"<p>The string array must be freed by the user.</p>\n","group":"remote"},"git_remote_check_cert":{"type":"function","file":"remote.h","line":354,"lineto":354,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"check","type":"int","comment":"whether to check the server's certificate (defaults to yes)"}],"argline":"git_remote *remote, int check","sig":"git_remote *::int","return":{"type":"void"},"description":"<p>Choose whether to check the server&#39;s certificate (applies to HTTPS only)</p>\n","comments":"","group":"remote"},"git_remote_set_cred_acquire_cb":{"type":"function","file":"remote.h","line":366,"lineto":369,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"cred_acquire_cb","type":"git_cred_acquire_cb","comment":"The credentials acquisition callback to use (defaults to NULL)"},{"name":"payload","type":"void *"}],"argline":"git_remote *remote,\n\tgit_cred_acquire_cb cred_acquire_cb,\n\tvoid *payload","sig":"git_remote *::git_cred_acquire_cb::void *","return":{"type":"void"},"description":"<p>Set a credentials acquisition callback for this remote. If the remote is\nnot available for anonymous access, then you must set this callback in order\nto provide credentials to the transport at the time of authentication\nfailure so that retry can be performed.</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_set_cred_acquire_cb-12"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_set_cred_acquire_cb-7"]}},"git_remote_set_transport":{"type":"function","file":"remote.h","line":383,"lineto":385,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"transport","type":"git_transport *","comment":"the transport object for the remote to use"}],"argline":"git_remote *remote,\n\tgit_transport *transport","sig":"git_remote *::git_transport *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Sets a custom transport for the remote. The caller can use this function\nto bypass the automatic discovery of a transport by URL scheme (i.e.\nhttp://, https://, git://) and supply their own transport to be used\ninstead. After providing the transport to a remote using this function,\nthe transport object belongs exclusively to that remote, and the remote will\nfree it when it is freed with git_remote_free.</p>\n","comments":"","group":"remote"},"git_remote_set_callbacks":{"type":"function","file":"remote.h","line":423,"lineto":423,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"callbacks","type":"git_remote_callbacks *","comment":"a pointer to the user's callback settings"}],"argline":"git_remote *remote, git_remote_callbacks *callbacks","sig":"git_remote *::git_remote_callbacks *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the callbacks for a remote</p>\n","comments":"<p>Note that the remote keeps its own copy of the data and you need to\ncall this function again if you want to change the callbacks.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_set_callbacks-13"]}},"git_remote_stats":{"type":"function","file":"remote.h","line":428,"lineto":434,"args":[{"name":"remote","type":"git_remote *"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"const git_transfer_progress *"},"description":"<p>Get the statistics structure that is filled in by the fetch operation.</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_stats-14"]}},"git_remote_autotag":{"type":"function","file":"remote.h","line":442,"lineto":442,"args":[],"argline":"_option_t) git_remote_autotag(git_remote *remote)","sig":"","return":{"type":"GIT_EXTERN(","comment":"the auto-follow setting"},"description":"<p>Retrieve the tag auto-follow setting</p>\n","comments":"","group":"remote"},"git_remote_set_autotag":{"type":"function","file":"remote.h","line":450,"lineto":452,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"value","type":"git_remote_autotag_option_t","comment":"a GIT_REMOTE_DOWNLOAD_TAGS value"}],"argline":"git_remote *remote,\n\tgit_remote_autotag_option_t value","sig":"git_remote *::git_remote_autotag_option_t","return":{"type":"void"},"description":"<p>Set the tag auto-follow setting</p>\n","comments":"","group":"remote"},"git_remote_rename":{"type":"function","file":"remote.h","line":472,"lineto":476,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to rename"},{"name":"new_name","type":"const char *","comment":"the new name the remote should bear"},{"name":"callback","type":"git_remote_rename_problem_cb","comment":"Optional callback to notify the consumer of fetch refspecs that haven't been automatically updated and need potential manual tweaking."},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_remote *remote,\n\tconst char *new_name,\n\tgit_remote_rename_problem_cb callback,\n\tvoid *payload","sig":"git_remote *::const char *::git_remote_rename_problem_cb::void *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Give the remote a new name</p>\n","comments":"<p>All remote-tracking branches and configuration settings\nfor the remote are updated.</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n\n<p>A temporary in-memory remote cannot be given a name with this method.</p>\n","group":"remote"},"git_remote_update_fetchhead":{"type":"function","file":"remote.h","line":484,"lineto":484,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"the update FETCH_HEAD setting"},"description":"<p>Retrieve the update FETCH_HEAD setting.</p>\n","comments":"","group":"remote"},"git_remote_set_update_fetchhead":{"type":"function","file":"remote.h","line":493,"lineto":493,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"value","type":"int","comment":"0 to disable updating FETCH_HEAD"}],"argline":"git_remote *remote, int value","sig":"git_remote *::int","return":{"type":"void"},"description":"<p>Sets the update FETCH_HEAD setting. By default, FETCH_HEAD will be\nupdated on every fetch. Set to 0 to disable.</p>\n","comments":"","group":"remote"},"git_remote_is_valid_name":{"type":"function","file":"remote.h","line":501,"lineto":501,"args":[{"name":"remote_name","type":"const char *","comment":"name to be checked."}],"argline":"const char *remote_name","sig":"const char *","return":{"type":"int","comment":"1 if the reference name is acceptable; 0 if it isn't"},"description":"<p>Ensure the remote name is well-formed.</p>\n","comments":"","group":"remote"},"git_repository_open":{"type":"function","file":"repository.h","line":36,"lineto":36,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo which will be opened"},{"name":"path","type":"const char *","comment":"the path to the repository"}],"argline":"git_repository **out, const char *path","sig":"git_repository **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open a git repository.</p>\n","comments":"<p>The &#39;path&#39; argument must point to either a git repository\nfolder, or an existing work dir.</p>\n\n<p>The method will automatically detect if &#39;path&#39; is a normal\nor bare repository or fail is &#39;path&#39; is neither.</p>\n","group":"repository","examples":{"general.c":["ex/HEAD/general.html#git_repository_open-57"],"network/git2.c":["ex/HEAD/network/git2.html#git_repository_open-3"]}},"git_repository_wrap_odb":{"type":"function","file":"repository.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo"},{"name":"odb","type":"git_odb *","comment":"the object database to wrap"}],"argline":"git_repository **out, git_odb *odb","sig":"git_repository **::git_odb *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a &quot;fake&quot; repository to wrap an object database</p>\n","comments":"<p>Create a repository object to wrap an object database to be used\nwith the API when all you have is an object database. This doesn&#39;t\nhave any paths associated with it, so use with care.</p>\n","group":"repository"},"git_repository_discover":{"type":"function","file":"repository.h","line":79,"lineto":84,"args":[{"name":"path_out","type":"char *","comment":"The user allocated buffer which will contain the found path."},{"name":"path_size","type":"size_t","comment":"repository_path size"},{"name":"start_path","type":"const char *","comment":"The base path where the lookup starts."},{"name":"across_fs","type":"int","comment":"If true, then the lookup will not stop when a filesystem device change is detected while exploring parent directories."},{"name":"ceiling_dirs","type":"const char *","comment":"A GIT_PATH_LIST_SEPARATOR separated list of absolute symbolic link free paths. The lookup will stop when any of this paths is reached. Note that the lookup always performs on start_path no matter start_path appears in ceiling_dirs ceiling_dirs might be NULL (which is equivalent to an empty string)"}],"argline":"char *path_out,\n\t\tsize_t path_size,\n\t\tconst char *start_path,\n\t\tint across_fs,\n\t\tconst char *ceiling_dirs","sig":"char *::size_t::const char *::int::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Look for a git repository and copy its path in the given buffer.\nThe lookup start from base_path and walk across parent directories\nif nothing has been found. The lookup ends when the first repository\nis found, or when reaching a directory referenced in ceiling_dirs\nor when the filesystem changes (in case across_fs is true).</p>\n","comments":"<p>The method will automatically detect if the repository is bare\n(if there is a repository).</p>\n","group":"repository"},"git_repository_open_ext":{"type":"function","file":"repository.h","line":124,"lineto":128,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be opened. This can actually be NULL if you only want to use the error code to see if a repo at this path could be opened."},{"name":"path","type":"const char *","comment":"Path to open as git repository. If the flags permit \"searching\", then this can be a path to a subdirectory inside the working directory of the repository."},{"name":"flags","type":"unsigned int","comment":"A combination of the GIT_REPOSITORY_OPEN flags above."},{"name":"ceiling_dirs","type":"const char *","comment":"A GIT_PATH_LIST_SEPARATOR delimited list of path prefixes at which the search for a containing repository should terminate."}],"argline":"git_repository **out,\n\tconst char *path,\n\tunsigned int flags,\n\tconst char *ceiling_dirs","sig":"git_repository **::const char *::unsigned int::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if no repository could be found, or -1 if there was a repository but open failed for some reason (such as repo corruption or system errors)."},"description":"<p>Find and open a repository with extended controls.</p>\n","comments":"","group":"repository","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_repository_open_ext-29"],"diff.c":["ex/HEAD/diff.html#git_repository_open_ext-17"],"log.c":["ex/HEAD/log.html#git_repository_open_ext-39","ex/HEAD/log.html#git_repository_open_ext-40"],"rev-list.c":["ex/HEAD/rev-list.html#git_repository_open_ext-9"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_repository_open_ext-14"],"showindex.c":["ex/HEAD/showindex.html#git_repository_open_ext-8"],"status.c":["ex/HEAD/status.html#git_repository_open_ext-4"]}},"git_repository_open_bare":{"type":"function","file":"repository.h","line":141,"lineto":141,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be opened."},{"name":"bare_path","type":"const char *","comment":"Direct path to the bare repository"}],"argline":"git_repository **out, const char *bare_path","sig":"git_repository **::const char *","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Open a bare repository on the serverside.</p>\n","comments":"<p>This is a fast open for bare repositories that will come in handy\nif you&#39;re e.g. hosting git repositories and need to access them\nefficiently</p>\n","group":"repository"},"git_repository_free":{"type":"function","file":"repository.h","line":154,"lineto":154,"args":[{"name":"repo","type":"git_repository *","comment":"repository handle to close. If NULL nothing occurs."}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Free a previously allocated repository</p>\n","comments":"<p>Note that after a repository is free&#39;d, all the objects it has spawned\nwill still exist until they are manually closed by the user\nwith <code>git_object_free</code>, but accessing any of the attributes of\nan object without a backing repository will result in undefined\nbehavior</p>\n","group":"repository","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_repository_free-30"],"diff.c":["ex/HEAD/diff.html#git_repository_free-18"],"general.c":["ex/HEAD/general.html#git_repository_free-58"],"init.c":["ex/HEAD/init.html#git_repository_free-5"],"log.c":["ex/HEAD/log.html#git_repository_free-41"],"network/clone.c":["ex/HEAD/network/clone.html#git_repository_free-3"],"network/git2.c":["ex/HEAD/network/git2.html#git_repository_free-4"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_repository_free-15"],"showindex.c":["ex/HEAD/showindex.html#git_repository_free-9"],"status.c":["ex/HEAD/status.html#git_repository_free-5"]}},"git_repository_init":{"type":"function","file":"repository.h","line":171,"lineto":174,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo which will be created or reinitialized"},{"name":"path","type":"const char *","comment":"the path to the repository"},{"name":"is_bare","type":"unsigned","comment":"if true, a Git repository without a working directory is created at the pointed path. If false, provided path will be considered as the working directory into which the .git directory will be created."}],"argline":"git_repository **out,\n\tconst char *path,\n\tunsigned is_bare","sig":"git_repository **::const char *::unsigned","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Creates a new Git repository in the given folder.</p>\n","comments":"<p>TODO:\n- Reinit the repository</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_init-6","ex/HEAD/init.html#git_repository_init-7"]}},"git_repository_init_ext":{"type":"function","file":"repository.h","line":285,"lineto":288,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be created or reinitialized."},{"name":"repo_path","type":"const char *","comment":"The path to the repository."},{"name":"opts","type":"git_repository_init_options *","comment":"Pointer to git_repository_init_options struct."}],"argline":"git_repository **out,\n\tconst char *repo_path,\n\tgit_repository_init_options *opts","sig":"git_repository **::const char *::git_repository_init_options *","return":{"type":"int","comment":"0 or an error code on failure."},"description":"<p>Create a new Git repository in the given folder with extended controls.</p>\n","comments":"<p>This will initialize a new git repository (creating the repo_path\nif requested by flags) and working directory as needed. It will\nauto-detect the case sensitivity of the file system and if the\nfile system supports file mode bits correctly.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_init_ext-8"]}},"git_repository_head":{"type":"function","file":"repository.h","line":303,"lineto":303,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the reference which will be retrieved"},{"name":"repo","type":"git_repository *","comment":"a repository object"}],"argline":"git_reference **out, git_repository *repo","sig":"git_reference **::git_repository *","return":{"type":"int","comment":"0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch, GIT_ENOTFOUND when HEAD is missing; an error code otherwise"},"description":"<p>Retrieve and resolve the reference pointed at by HEAD.</p>\n","comments":"<p>The returned <code>git_reference</code> will be owned by caller and\n<code>git_reference_free()</code> must be called when done with it to release the\nallocated memory and prevent a leak.</p>\n","group":"repository","examples":{"status.c":["ex/HEAD/status.html#git_repository_head-6"]}},"git_repository_head_detached":{"type":"function","file":"repository.h","line":315,"lineto":315,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if HEAD is detached, 0 if it's not; error code if there was an error."},"description":"<p>Check if a repository&#39;s HEAD is detached</p>\n","comments":"<p>A repository&#39;s HEAD is detached when it points directly to a commit\ninstead of a branch.</p>\n","group":"repository"},"git_repository_head_orphan":{"type":"function","file":"repository.h","line":327,"lineto":327,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the current branch is an orphan, 0 if it's not; error code if there was an error"},"description":"<p>Check if the current branch is an orphan</p>\n","comments":"<p>An orphan branch is one named from HEAD but which doesn&#39;t exist in\nthe refs namespace, because it doesn&#39;t have any commit to point to.</p>\n","group":"repository"},"git_repository_is_empty":{"type":"function","file":"repository.h","line":339,"lineto":339,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the repository is empty, 0 if it isn't, error code if the repository is corrupted"},"description":"<p>Check if a repository is empty</p>\n","comments":"<p>An empty repository has just been initialized and contains\nno references.</p>\n","group":"repository"},"git_repository_path":{"type":"function","file":"repository.h","line":350,"lineto":350,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the path to the repository"},"description":"<p>Get the path of this repository</p>\n","comments":"<p>This is the path of the <code>.git</code> folder for normal repositories,\nor of the repository itself for bare repositories.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_path-9"]}},"git_repository_workdir":{"type":"function","file":"repository.h","line":361,"lineto":361,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the path to the working dir, if it exists"},"description":"<p>Get the path of the working directory for this repository</p>\n","comments":"<p>If the repository is bare, this function will always return\nNULL.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_workdir-10"]}},"git_repository_set_workdir":{"type":"function","file":"repository.h","line":380,"lineto":381,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"workdir","type":"const char *","comment":"The path to a working directory"},{"name":"update_gitlink","type":"int","comment":"Create/update gitlink in workdir and set config \"core.worktree\" (if workdir is not the parent of the .git directory)"}],"argline":"git_repository *repo, const char *workdir, int update_gitlink","sig":"git_repository *::const char *::int","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Set the path to the working directory for this repository</p>\n","comments":"<p>The working directory doesn&#39;t need to be the same one\nthat contains the <code>.git</code> folder for this repository.</p>\n\n<p>If this repository is bare, setting its working directory\nwill turn it into a normal repository, capable of performing\nall the common workdir operations (checkout, status, index\nmanipulation, etc).</p>\n","group":"repository"},"git_repository_is_bare":{"type":"function","file":"repository.h","line":389,"lineto":389,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the repository is bare, 0 otherwise."},"description":"<p>Check if a repository is bare</p>\n","comments":"","group":"repository","examples":{"status.c":["ex/HEAD/status.html#git_repository_is_bare-7"]}},"git_repository_config":{"type":"function","file":"repository.h","line":405,"lineto":405,"args":[{"name":"out","type":"git_config **","comment":"Pointer to store the loaded config file"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_config **out, git_repository *repo","sig":"git_config **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the configuration file for this repository.</p>\n","comments":"<p>If a configuration file has not been set, the default\nconfig set for the repository will be returned, including\nglobal and system configurations (if they are available).</p>\n\n<p>The configuration file must be freed once it&#39;s no longer\nbeing used by the user.</p>\n","group":"repository"},"git_repository_odb":{"type":"function","file":"repository.h","line":421,"lineto":421,"args":[{"name":"out","type":"git_odb **","comment":"Pointer to store the loaded ODB"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_odb **out, git_repository *repo","sig":"git_odb **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Object Database for this repository.</p>\n","comments":"<p>If a custom ODB has not been set, the default\ndatabase for the repository will be returned (the one\nlocated in <code>.git/objects</code>).</p>\n\n<p>The ODB must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_repository_odb-31"],"general.c":["ex/HEAD/general.html#git_repository_odb-59"]}},"git_repository_refdb":{"type":"function","file":"repository.h","line":437,"lineto":437,"args":[{"name":"out","type":"git_refdb **","comment":"Pointer to store the loaded refdb"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Reference Database Backend for this repository.</p>\n","comments":"<p>If a custom refsdb has not been set, the default database for\nthe repository will be returned (the one that manipulates loose\nand packed references in the <code>.git</code> directory).</p>\n\n<p>The refdb must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository"},"git_repository_index":{"type":"function","file":"repository.h","line":453,"lineto":453,"args":[{"name":"out","type":"git_index **","comment":"Pointer to store the loaded index"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_index **out, git_repository *repo","sig":"git_index **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Index file for this repository.</p>\n","comments":"<p>If a custom index has not been set, the default\nindex for the repository will be returned (the one\nlocated in <code>.git/index</code>).</p>\n\n<p>The index must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository","examples":{"general.c":["ex/HEAD/general.html#git_repository_index-60"],"init.c":["ex/HEAD/init.html#git_repository_index-11"],"showindex.c":["ex/HEAD/showindex.html#git_repository_index-10"]}},"git_repository_message":{"type":"function","file":"repository.h","line":481,"lineto":481,"args":[{"name":"out","type":"char *","comment":"Buffer to write data into or NULL to just read required size"},{"name":"len","type":"size_t","comment":"Length of `out` buffer in bytes"},{"name":"repo","type":"git_repository *","comment":"Repository to read prepared message from"}],"argline":"char *out, size_t len, git_repository *repo","sig":"char *::size_t::git_repository *","return":{"type":"int","comment":"GIT_ENOTFOUND if no message exists, other value < 0 for other errors, or total bytes in message (may be > `len`) on success"},"description":"<p>Retrieve git&#39;s prepared message</p>\n","comments":"<p>Operations such as git revert/cherry-pick/merge with the -n option\nstop just short of creating a commit with the changes and save\ntheir prepared message in .git/MERGE_MSG so the next git-commit\nexecution can present it to the user for them to amend if they\nwish.</p>\n\n<p>Use this function to get the contents of this file. Don&#39;t forget to\nremove the file after you create the commit.</p>\n\n<p>If the repository message exists and there are no errors reading it, this\nreturns the bytes needed to store the message in memory (i.e. message\nfile size plus one terminating NUL byte). That value is returned even if\n<code>out</code> is NULL or <code>len</code> is shorter than the necessary size.</p>\n\n<p>The <code>out</code> buffer will <em>always</em> be NUL terminated, even if truncation\noccurs.</p>\n","group":"repository"},"git_repository_message_remove":{"type":"function","file":"repository.h","line":488,"lineto":488,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int"},"description":"<p>Remove git&#39;s prepared message.</p>\n","comments":"<p>Remove the message that <code>git_repository_message</code> retrieves.</p>\n","group":"repository"},"git_repository_merge_cleanup":{"type":"function","file":"repository.h","line":497,"lineto":503,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"0 on success, or error"},"description":"<p>Remove all the metadata associated with an ongoing git merge, including\nMERGE_HEAD, MERGE_MSG, etc.</p>\n","comments":"","group":"repository"},"git_repository_fetchhead_foreach":{"type":"function","file":"repository.h","line":513,"lineto":518,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_repository_fetchhead_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_repository_fetchhead_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_repository_fetchhead_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EUSER or error"},"description":"<p>Call callback &#39;callback&#39; for each entry in the given FETCH_HEAD file.</p>\n","comments":"","group":"repository"},"git_repository_mergehead_foreach":{"type":"function","file":"repository.h","line":529,"lineto":531,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_repository_mergehead_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_repository_mergehead_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_repository_mergehead_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EUSER or error"},"description":"<p>If a merge is in progress, call callback &#39;cb&#39; for each commit ID in the\nMERGE_HEAD file.</p>\n","comments":"","group":"repository"},"git_repository_hashfile":{"type":"function","file":"repository.h","line":551,"lineto":556,"args":[{"name":"out","type":"git_oid *","comment":"Output value of calculated SHA"},{"name":"repo","type":"git_repository *","comment":"Repository pointer"},{"name":"path","type":"const char *","comment":"Path to file on disk whose contents should be hashed. If the repository is not NULL, this can be a relative path."},{"name":"type","type":"git_otype","comment":"The object type to hash as (e.g. GIT_OBJ_BLOB)"},{"name":"as_path","type":"const char *","comment":"The path to use to look up filtering rules. If this is NULL, then the `path` parameter will be used instead. If this is passed as the empty string, then no filters will be applied when calculating the hash."}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst char *path,\n\tgit_otype type,\n\tconst char *as_path","sig":"git_oid *::git_repository *::const char *::git_otype::const char *","return":{"type":"int"},"description":"<p>Calculate hash of file using repository filtering rules.</p>\n","comments":"<p>If you simply want to calculate the hash of a file on disk with no filters,\nyou can just use the <code>git_odb_hashfile()</code> API. However, if you want to\nhash a file in the repository and you want to apply filtering rules (e.g.\ncrlf filters) before generating the SHA, then use this function.</p>\n","group":"repository"},"git_repository_set_head":{"type":"function","file":"repository.h","line":576,"lineto":578,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"},{"name":"refname","type":"const char*","comment":"Canonical name of the reference the HEAD should point at"}],"argline":"git_repository* repo,\n\tconst char* refname","sig":"git_repository*::const char*","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Make the repository HEAD point to the specified reference.</p>\n","comments":"<p>If the provided reference points to a Tree or a Blob, the HEAD is\nunaltered and -1 is returned.</p>\n\n<p>If the provided reference points to a branch, the HEAD will point\nto that branch, staying attached, or become attached if it isn&#39;t yet.\nIf the branch doesn&#39;t exist yet, no error will be return. The HEAD\nwill then be attached to an unborn branch.</p>\n\n<p>Otherwise, the HEAD will be detached and will directly point to\nthe Commit.</p>\n","group":"repository"},"git_repository_set_head_detached":{"type":"function","file":"repository.h","line":596,"lineto":598,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"},{"name":"commitish","type":"const git_oid*","comment":"Object id of the Commit the HEAD should point to"}],"argline":"git_repository* repo,\n\tconst git_oid* commitish","sig":"git_repository*::const git_oid*","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Make the repository HEAD directly point to the Commit.</p>\n","comments":"<p>If the provided committish cannot be found in the repository, the HEAD\nis unaltered and GIT_ENOTFOUND is returned.</p>\n\n<p>If the provided commitish cannot be peeled into a commit, the HEAD\nis unaltered and -1 is returned.</p>\n\n<p>Otherwise, the HEAD will eventually be detached and will directly point to\nthe peeled Commit.</p>\n","group":"repository"},"git_repository_detach_head":{"type":"function","file":"repository.h","line":617,"lineto":631,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"}],"argline":"git_repository* repo","sig":"git_repository*","return":{"type":"int","comment":"0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch or an error code"},"description":"<p>Detach the HEAD.</p>\n","comments":"<p>If the HEAD is already detached and points to a Commit, 0 is returned.</p>\n\n<p>If the HEAD is already detached and points to a Tag, the HEAD is\nupdated into making it point to the peeled Commit, and 0 is returned.</p>\n\n<p>If the HEAD is already detached and points to a non commitish, the HEAD is\nunaltered, and -1 is returned.</p>\n\n<p>Otherwise, the HEAD will be detached and point to the peeled Commit.</p>\n","group":"repository"},"git_repository_state":{"type":"function","file":"repository.h","line":640,"lineto":640,"args":[{"name":"repo","type":"git_repository *","comment":"Repository pointer"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"The state of the repository"},"description":"<p>Determines the status of a git repository - ie, whether an operation\n(merge, cherry-pick, etc) is in progress.</p>\n","comments":"","group":"repository"},"git_repository_set_namespace":{"type":"function","file":"repository.h","line":654,"lineto":654,"args":[{"name":"repo","type":"git_repository *","comment":"The repo"},{"name":"nmspace","type":"const char *","comment":"The namespace. This should not include the refs folder, e.g. to namespace all references under `refs/namespaces/foo/`, use `foo` as the namespace."}],"argline":"git_repository *repo, const char *nmspace","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success, -1 on error"},"description":"<p>Sets the active namespace for this Git Repository</p>\n","comments":"<p>This namespace affects all reference operations for the repo.\nSee <code>man gitnamespaces</code></p>\n","group":"repository"},"git_repository_get_namespace":{"type":"function","file":"repository.h","line":662,"lineto":662,"args":[{"name":"repo","type":"git_repository *","comment":"The repo"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the active namespace, or NULL if there isn't one"},"description":"<p>Get the currently active namespace for this repository</p>\n","comments":"","group":"repository"},"git_repository_is_shallow":{"type":"function","file":"repository.h","line":671,"lineto":671,"args":[{"name":"repo","type":"git_repository *","comment":"The repository"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if shallow, zero if not"},"description":"<p>Determine if the repository was a shallow clone</p>\n","comments":"","group":"repository"},"git_reset":{"type":"function","file":"reset.h","line":53,"lineto":54,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to perform the reset operation."},{"name":"target","type":"git_object *","comment":"Committish to which the Head should be moved to. This object must belong to the given `repo` and can either be a git_commit or a git_tag. When a git_tag is being passed, it should be dereferencable to a git_commit which oid will be used as the target of the branch."},{"name":"reset_type","type":"git_reset_t","comment":"Kind of reset operation to perform."}],"argline":"git_repository *repo, git_object *target, git_reset_t reset_type","sig":"git_repository *::git_object *::git_reset_t","return":{"type":"int","comment":"0 on success or an error code"},"description":"<p>Sets the current head to the specified commit oid and optionally\nresets the index and working tree to match.</p>\n","comments":"<p>SOFT reset means the Head will be moved to the commit.</p>\n\n<p>MIXED reset will trigger a SOFT reset, plus the index will be replaced\nwith the content of the commit tree.</p>\n\n<p>HARD reset will trigger a MIXED reset and the working directory will be\nreplaced with the content of the index. (Untracked and ignored files\nwill be left alone, however.)</p>\n\n<p>TODO: Implement remaining kinds of resets.</p>\n","group":"reset"},"git_reset_default":{"type":"function","file":"reset.h","line":74,"lineto":77,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to perform the reset operation."},{"name":"target","type":"git_object *","comment":"The committish which content will be used to reset the content of the index."},{"name":"pathspecs","type":"git_strarray*","comment":"List of pathspecs to operate on."}],"argline":"git_repository *repo,\n\tgit_object *target,\n\tgit_strarray* pathspecs","sig":"git_repository *::git_object *::git_strarray*","return":{"type":"int","comment":"0 on success or an error code < 0"},"description":"<p>Updates some entries in the index from the target commit tree.</p>\n","comments":"<p>The scope of the updated entries is determined by the paths\nbeing passed in the <code>pathspec</code> parameters.</p>\n\n<p>Passing a NULL <code>target</code> will result in removing\nentries in the index matching the provided pathspecs.</p>\n","group":"reset"},"git_revparse_single":{"type":"function","file":"revparse.h","line":37,"lineto":38,"args":[{"name":"out","type":"git_object **","comment":"pointer to output object"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the textual specification for an object"}],"argline":"git_object **out, git_repository *repo, const char *spec","sig":"git_object **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Find a single object, as specified by a revision string.</p>\n","comments":"<p>See <code>man gitrevisions</code>, or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n\n<p>The returned object should be released with <code>git_object_free</code> when no\nlonger needed.</p>\n","group":"revparse","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_revparse_single-32"],"diff.c":["ex/HEAD/diff.html#git_revparse_single-19"],"log.c":["ex/HEAD/log.html#git_revparse_single-42"],"rev-list.c":["ex/HEAD/rev-list.html#git_revparse_single-10"]}},"git_revparse_ext":{"type":"function","file":"revparse.h","line":61,"lineto":65,"args":[{"name":"object_out","type":"git_object **","comment":"pointer to output object"},{"name":"reference_out","type":"git_reference **","comment":"pointer to output reference or NULL"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the textual specification for an object"}],"argline":"git_object **object_out,\n\tgit_reference **reference_out,\n\tgit_repository *repo,\n\tconst char *spec","sig":"git_object **::git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Find a single object and intermediate reference by a revision string.</p>\n","comments":"<p>See <code>man gitrevisions</code>, or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n\n<p>In some cases (<code>@{&lt;-n&gt;}</code> or <code>&lt;branchname&gt;@{upstream}</code>), the expression may\npoint to an intermediate reference. When such expressions are being passed\nin, <code>reference_out</code> will be valued as well.</p>\n\n<p>The returned object should be released with <code>git_object_free</code> and the\nreturned reference with <code>git_reference_free</code> when no longer needed.</p>\n","group":"revparse"},"git_revparse":{"type":"function","file":"revparse.h","line":105,"lineto":108,"args":[{"name":"revspec","type":"git_revspec *","comment":"Pointer to an user-allocated git_revspec struct where the result of the rev-parse will be stored"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the rev-parse spec to parse"}],"argline":"git_revspec *revspec,\n\tgit_repository *repo,\n\tconst char *spec","sig":"git_revspec *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_INVALIDSPEC, GIT_ENOTFOUND, GIT_EAMBIGUOUS or an error code"},"description":"<p>Parse a revision string for <code>from</code>, <code>to</code>, and intent.</p>\n","comments":"<p>See <code>man gitrevisions</code> or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n","group":"revparse","examples":{"log.c":["ex/HEAD/log.html#git_revparse-43"],"rev-list.c":["ex/HEAD/rev-list.html#git_revparse-11"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_revparse-16","ex/HEAD/rev-parse.html#git_revparse-17"]}},"git_revwalk_new":{"type":"function","file":"revwalk.h","line":70,"lineto":70,"args":[{"name":"out","type":"git_revwalk **","comment":"pointer to the new revision walker"},{"name":"repo","type":"git_repository *","comment":"the repo to walk through"}],"argline":"git_revwalk **out, git_repository *repo","sig":"git_revwalk **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Allocate a new revision walker to iterate through a repo.</p>\n","comments":"<p>This revision walker uses a custom memory pool and an internal\ncommit cache, so it is relatively expensive to allocate.</p>\n\n<p>For maximum performance, this revision walker should be\nreused for different walks.</p>\n\n<p>This revision walker is <em>not</em> thread safe: it may only be\nused to walk a repository on a single thread; however,\nit is possible to have several revision walkers in\nseveral different threads walking the same repository.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_new-61"],"log.c":["ex/HEAD/log.html#git_revwalk_new-44","ex/HEAD/log.html#git_revwalk_new-45"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_new-12"]}},"git_revwalk_reset":{"type":"function","file":"revwalk.h","line":85,"lineto":85,"args":[{"name":"walker","type":"git_revwalk *","comment":"handle to reset."}],"argline":"git_revwalk *walker","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Reset the revision walker for reuse.</p>\n","comments":"<p>This will clear all the pushed and hidden commits, and\nleave the walker in a blank state (just like at\ncreation) ready to receive new commit pushes and\nstart a new walk.</p>\n\n<p>The revision walk is automatically reset when a walk\nis over.</p>\n","group":"revwalk"},"git_revwalk_push":{"type":"function","file":"revwalk.h","line":102,"lineto":102,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"id","type":"const git_oid *","comment":"the oid of the commit to start from."}],"argline":"git_revwalk *walk, const git_oid *id","sig":"git_revwalk *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Mark a commit to start traversal from.</p>\n","comments":"<p>The given OID must belong to a commit on the walked\nrepository.</p>\n\n<p>The given commit will be used as one of the roots\nwhen starting the revision walk. At least one commit\nmust be pushed onto the walker before a walk can\nbe started.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_push-62"],"log.c":["ex/HEAD/log.html#git_revwalk_push-46"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_push-13"]}},"git_revwalk_push_glob":{"type":"function","file":"revwalk.h","line":117,"lineto":117,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"glob","type":"const char *","comment":"the glob pattern references should match"}],"argline":"git_revwalk *walk, const char *glob","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push matching references</p>\n","comments":"<p>The OIDs pointed to by the references that match the given glob\npattern will be pushed to the revision walker.</p>\n\n<p>A leading &#39;refs/&#39; is implied if not present as well as a trailing\n&#39;/ <em>&#39; if the glob lacks &#39;?&#39;, &#39;</em>&#39; or &#39;[&#39;.</p>\n","group":"revwalk"},"git_revwalk_push_head":{"type":"function","file":"revwalk.h","line":125,"lineto":125,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push the repository&#39;s HEAD</p>\n","comments":"","group":"revwalk","examples":{"log.c":["ex/HEAD/log.html#git_revwalk_push_head-47"]}},"git_revwalk_hide":{"type":"function","file":"revwalk.h","line":140,"lineto":140,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"commit_id","type":"const git_oid *","comment":"the oid of commit that will be ignored during the traversal"}],"argline":"git_revwalk *walk, const git_oid *commit_id","sig":"git_revwalk *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Mark a commit (and its ancestors) uninteresting for the output.</p>\n","comments":"<p>The given OID must belong to a commit on the walked\nrepository.</p>\n\n<p>The resolved commit and all its parents will be hidden from the\noutput on the revision walk.</p>\n","group":"revwalk","examples":{"log.c":["ex/HEAD/log.html#git_revwalk_hide-48"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_hide-14"]}},"git_revwalk_hide_glob":{"type":"function","file":"revwalk.h","line":156,"lineto":156,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"glob","type":"const char *","comment":"the glob pattern references should match"}],"argline":"git_revwalk *walk, const char *glob","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide matching references.</p>\n","comments":"<p>The OIDs pointed to by the references that match the given glob\npattern and their ancestors will be hidden from the output on the\nrevision walk.</p>\n\n<p>A leading &#39;refs/&#39; is implied if not present as well as a trailing\n&#39;/ <em>&#39; if the glob lacks &#39;?&#39;, &#39;</em>&#39; or &#39;[&#39;.</p>\n","group":"revwalk"},"git_revwalk_hide_head":{"type":"function","file":"revwalk.h","line":164,"lineto":164,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide the repository&#39;s HEAD</p>\n","comments":"","group":"revwalk"},"git_revwalk_push_ref":{"type":"function","file":"revwalk.h","line":175,"lineto":175,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"refname","type":"const char *","comment":"the reference to push"}],"argline":"git_revwalk *walk, const char *refname","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push the OID pointed to by a reference</p>\n","comments":"<p>The reference must point to a commit.</p>\n","group":"revwalk"},"git_revwalk_hide_ref":{"type":"function","file":"revwalk.h","line":186,"lineto":186,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"refname","type":"const char *","comment":"the reference to hide"}],"argline":"git_revwalk *walk, const char *refname","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide the OID pointed to by a reference</p>\n","comments":"<p>The reference must point to a commit.</p>\n","group":"revwalk"},"git_revwalk_next":{"type":"function","file":"revwalk.h","line":206,"lineto":206,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store the oid of the next commit"},{"name":"walk","type":"git_revwalk *","comment":"the walker to pop the commit from."}],"argline":"git_oid *out, git_revwalk *walk","sig":"git_oid *::git_revwalk *","return":{"type":"int","comment":"0 if the next commit was found; GIT_ITEROVER if there are no commits left to iterate"},"description":"<p>Get the next commit from the revision walk.</p>\n","comments":"<p>The initial call to this method is <em>not</em> blocking when\niterating through a repo with a time-sorting mode.</p>\n\n<p>Iterating with Topological or inverted modes makes the initial\ncall blocking to preprocess the commit list, but this block should be\nmostly unnoticeable on most repositories (topological preprocessing\ntimes at 0.3s on the git.git repo).</p>\n\n<p>The revision walker is reset when the walk is over.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_next-63"],"log.c":["ex/HEAD/log.html#git_revwalk_next-49"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_next-15"]}},"git_revwalk_sorting":{"type":"function","file":"revwalk.h","line":217,"lineto":217,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"sort_mode","type":"unsigned int","comment":"combination of GIT_SORT_XXX flags"}],"argline":"git_revwalk *walk, unsigned int sort_mode","sig":"git_revwalk *::unsigned int","return":{"type":"void"},"description":"<p>Change the sorting mode when iterating through the\nrepository&#39;s contents.</p>\n","comments":"<p>Changing the sorting mode resets the walker.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_sorting-64"],"log.c":["ex/HEAD/log.html#git_revwalk_sorting-50","ex/HEAD/log.html#git_revwalk_sorting-51"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_sorting-16","ex/HEAD/rev-list.html#git_revwalk_sorting-17","ex/HEAD/rev-list.html#git_revwalk_sorting-18"]}},"git_revwalk_push_range":{"type":"function","file":"revwalk.h","line":232,"lineto":232,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"range","type":"const char *","comment":"the range"}],"argline":"git_revwalk *walk, const char *range","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push and hide the respective endpoints of the given range.</p>\n","comments":"<p>The range should be of the form\n <commit>..<commit>\nwhere each <commit> is in the form accepted by &#39;git_revparse_single&#39;.\nThe left-hand commit will be hidden and the right-hand commit pushed.</p>\n","group":"revwalk"},"git_revwalk_simplify_first_parent":{"type":"function","file":"revwalk.h","line":239,"lineto":239,"args":[{"name":"walk","type":"git_revwalk *"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Simplify the history by first-parent</p>\n","comments":"<p>No parents other than the first for each commit will be enqueued.</p>\n","group":"revwalk"},"git_revwalk_free":{"type":"function","file":"revwalk.h","line":247,"lineto":247,"args":[{"name":"walk","type":"git_revwalk *","comment":"traversal handle to close. If NULL nothing occurs."}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Free a revision walker previously allocated.</p>\n","comments":"","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_free-65"],"log.c":["ex/HEAD/log.html#git_revwalk_free-52"]}},"git_revwalk_repository":{"type":"function","file":"revwalk.h","line":256,"lineto":256,"args":[{"name":"walk","type":"git_revwalk *","comment":"the revision walker"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"git_repository *","comment":"the repository being walked"},"description":"<p>Return the repository on which this walker\nis operating.</p>\n","comments":"","group":"revwalk"},"git_signature_new":{"type":"function","file":"signature.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_signature **","comment":"new signature, in case of error NULL"},{"name":"name","type":"const char *","comment":"name of the person"},{"name":"email","type":"const char *","comment":"email of the person"},{"name":"time","type":"git_time_t","comment":"time when the action happened"},{"name":"offset","type":"int","comment":"timezone offset in minutes for the time"}],"argline":"git_signature **out, const char *name, const char *email, git_time_t time, int offset","sig":"git_signature **::const char *::const char *::git_time_t::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new action signature.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n\n<p>Note: angle brackets (&#39;&lt;&#39; and &#39;&gt;&#39;) characters are not allowed\nto be used in either the <code>name</code> or the <code>email</code> parameter.</p>\n","group":"signature","examples":{"general.c":["ex/HEAD/general.html#git_signature_new-66","ex/HEAD/general.html#git_signature_new-67"]}},"git_signature_now":{"type":"function","file":"signature.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_signature **","comment":"new signature, in case of error NULL"},{"name":"name","type":"const char *","comment":"name of the person"},{"name":"email","type":"const char *","comment":"email of the person"}],"argline":"git_signature **out, const char *name, const char *email","sig":"git_signature **::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new action signature with a timestamp of &#39;now&#39;.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n","group":"signature"},"git_signature_default":{"type":"function","file":"signature.h","line":63,"lineto":63,"args":[{"name":"out","type":"git_signature **","comment":"new signature"},{"name":"repo","type":"git_repository *","comment":"repository pointer"}],"argline":"git_signature **out, git_repository *repo","sig":"git_signature **::git_repository *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if config is missing, or error code"},"description":"<p>Create a new action signature with default user and now timestamp.</p>\n","comments":"<p>This looks up the user.name and user.email from the configuration and\nuses the current time as the timestamp, and creates a new signature\nbased on that information. It will return GIT_ENOTFOUND if either the\nuser.name or user.email are not set.</p>\n","group":"signature","examples":{"init.c":["ex/HEAD/init.html#git_signature_default-12"]}},"git_signature_dup":{"type":"function","file":"signature.h","line":74,"lineto":74,"args":[{"name":"sig","type":"const git_signature *","comment":"signature to duplicated"}],"argline":"const git_signature *sig","sig":"const git_signature *","return":{"type":"git_signature *","comment":"a copy of sig, NULL on out of memory"},"description":"<p>Create a copy of an existing signature. All internal strings are also\nduplicated.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n","group":"signature"},"git_signature_free":{"type":"function","file":"signature.h","line":85,"lineto":85,"args":[{"name":"sig","type":"git_signature *","comment":"signature to free"}],"argline":"git_signature *sig","sig":"git_signature *","return":{"type":"void"},"description":"<p>Free an existing signature.</p>\n","comments":"<p>Because the signature is not an opaque structure, it is legal to free it\nmanually, but be sure to free the &quot;name&quot; and &quot;email&quot; strings in addition\nto the structure itself.</p>\n","group":"signature","examples":{"init.c":["ex/HEAD/init.html#git_signature_free-13"]}},"git_stash_save":{"type":"function","file":"stash.h","line":57,"lineto":62,"args":[{"name":"out","type":"git_oid *","comment":"Object id of the commit containing the stashed state. This commit is also the target of the direct reference refs/stash."},{"name":"repo","type":"git_repository *","comment":"The owning repository."},{"name":"stasher","type":"const git_signature *","comment":"The identity of the person performing the stashing."},{"name":"message","type":"const char *","comment":"Optional description along with the stashed state."},{"name":"flags","type":"unsigned int","comment":"Flags to control the stashing process. (see GIT_STASH_* above)"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_signature *stasher,\n\tconst char *message,\n\tunsigned int flags","sig":"git_oid *::git_repository *::const git_signature *::const char *::unsigned int","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND where there's nothing to stash, or error code."},"description":"<p>Save the local modifications to a new stash.</p>\n","comments":"","group":"stash"},"git_stash_foreach":{"type":"function","file":"stash.h","line":99,"lineto":102,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the stash."},{"name":"callback","type":"git_stash_cb","comment":"Callback to invoke per found stashed state. The most recent stash state will be enumerated first."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tgit_stash_cb callback,\n\tvoid *payload","sig":"git_repository *::git_stash_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the stashed states and issue a callback for each one.</p>\n","comments":"<p>If the callback returns a non-zero value, this will stop looping.</p>\n","group":"stash"},"git_stash_drop":{"type":"function","file":"stash.h","line":114,"lineto":116,"args":[{"name":"repo","type":"git_repository *","comment":"The owning repository."},{"name":"index","type":"size_t","comment":"The position within the stash list. 0 points to the most recent stashed state."}],"argline":"git_repository *repo,\n\tsize_t index","sig":"git_repository *::size_t","return":{"type":"int","comment":"0 on success, or error code"},"description":"<p>Remove a single stashed state from the stash list.</p>\n","comments":"","group":"stash"},"git_status_foreach":{"type":"function","file":"status.h","line":209,"lineto":212,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_status_cb","comment":"The function to call on each file"},{"name":"payload","type":"void *","comment":"Pointer to pass through to callback function"}],"argline":"git_repository *repo,\n\tgit_status_cb callback,\n\tvoid *payload","sig":"git_repository *::git_status_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Gather file statuses and run a callback for each one.</p>\n","comments":"<p>The callback is passed the path of the file, the status (a combination of\nthe <code>git_status_t</code> values above) and the <code>payload</code> data pointer passed\ninto this function.</p>\n\n<p>If the callback returns a non-zero value, this function will stop looping\nand return GIT_EUSER.</p>\n","group":"status"},"git_status_foreach_ext":{"type":"function","file":"status.h","line":228,"lineto":232,"args":[{"name":"repo","type":"git_repository *","comment":"Repository object"},{"name":"opts","type":"const git_status_options *","comment":"Status options structure"},{"name":"callback","type":"git_status_cb","comment":"The function to call on each file"},{"name":"payload","type":"void *","comment":"Pointer to pass through to callback function"}],"argline":"git_repository *repo,\n\tconst git_status_options *opts,\n\tgit_status_cb callback,\n\tvoid *payload","sig":"git_repository *::const git_status_options *::git_status_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Gather file status information and run callbacks as requested.</p>\n","comments":"<p>This is an extended version of the <code>git_status_foreach()</code> API that\nallows for more granular control over which paths will be processed and\nin what order. See the <code>git_status_options</code> structure for details\nabout the additional controls that this makes available.</p>\n","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_foreach_ext-8"]}},"git_status_file":{"type":"function","file":"status.h","line":247,"lineto":250,"args":[{"name":"status_flags","type":"unsigned int *","comment":"Output combination of git_status_t values for file"},{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"path","type":"const char *","comment":"The file to retrieve status for relative to the repo workdir"}],"argline":"unsigned int *status_flags,\n\tgit_repository *repo,\n\tconst char *path","sig":"unsigned int *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if the file is not found in the HEAD, index, and work tree, GIT_EAMBIGUOUS if `path` matches multiple files or if it refers to a folder, and -1 on other errors."},"description":"<p>Get file status for a single file.</p>\n","comments":"<p>This is not quite the same as calling <code>git_status_foreach_ext()</code> with\nthe pathspec set to the specified path.</p>\n","group":"status"},"git_status_list_new":{"type":"function","file":"status.h","line":260,"lineto":263,"args":[{"name":"out","type":"git_status_list **","comment":"Pointer to store the status results in"},{"name":"repo","type":"git_repository *","comment":"Repository object"},{"name":"opts","type":"const git_status_options *","comment":"Status options structure"}],"argline":"git_status_list **out,\n\tgit_repository *repo,\n\tconst git_status_options *opts","sig":"git_status_list **::git_repository *::const git_status_options *","return":{"type":"int","comment":"0 on success or error code"},"description":"<p>Gather file status information and populate the <code>git_status_list</code>.</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_new-9"]}},"git_status_list_entrycount":{"type":"function","file":"status.h","line":271,"lineto":272,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"}],"argline":"git_status_list *statuslist","sig":"git_status_list *","return":{"type":"size_t","comment":"the number of status entries"},"description":"<p>Gets the count of status entries in this list.</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_entrycount-10","ex/HEAD/status.html#git_status_list_entrycount-11"]}},"git_status_byindex":{"type":"function","file":"status.h","line":283,"lineto":285,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"},{"name":"idx","type":"size_t","comment":"Position of the entry"}],"argline":"git_status_list *statuslist,\n\tsize_t idx","sig":"git_status_list *::size_t","return":{"type":"const git_status_entry *","comment":"Pointer to the entry; NULL if out of bounds"},"description":"<p>Get a pointer to one of the entries in the status list.</p>\n","comments":"<p>The entry is not modifiable and should not be freed.</p>\n","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_byindex-12","ex/HEAD/status.html#git_status_byindex-13","ex/HEAD/status.html#git_status_byindex-14","ex/HEAD/status.html#git_status_byindex-15","ex/HEAD/status.html#git_status_byindex-16","ex/HEAD/status.html#git_status_byindex-17"]}},"git_status_list_free":{"type":"function","file":"status.h","line":292,"lineto":293,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"}],"argline":"git_status_list *statuslist","sig":"git_status_list *","return":{"type":"void"},"description":"<p>Free an existing status list</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_free-18"]}},"git_status_should_ignore":{"type":"function","file":"status.h","line":311,"lineto":314,"args":[{"name":"ignored","type":"int *","comment":"Boolean returning 0 if the file is not ignored, 1 if it is"},{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"path","type":"const char *","comment":"The file to check ignores for, rooted at the repo's workdir."}],"argline":"int *ignored,\n\tgit_repository *repo,\n\tconst char *path","sig":"int *::git_repository *::const char *","return":{"type":"int","comment":"0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not."},"description":"<p>Test if the ignore rules apply to a given file.</p>\n","comments":"<p>This function checks the ignore rules to see if they would apply to the\ngiven file. This indicates if the file would be ignored regardless of\nwhether the file is already in the index or committed to the repository.</p>\n\n<p>One way to think of this is if you were to do &quot;git add .&quot; on the\ndirectory containing the file, would it be added or not?</p>\n","group":"status"},"git_strarray_free":{"type":"function","file":"strarray.h","line":41,"lineto":41,"args":[{"name":"array","type":"git_strarray *","comment":"git_strarray from which to free string data"}],"argline":"git_strarray *array","sig":"git_strarray *","return":{"type":"void"},"description":"<p>Close a string array object</p>\n","comments":"<p>This method should be called on <code>git_strarray</code> objects where the strings\narray is allocated and contains allocated strings, such as what you\nwould get from <code>git_strarray_copy()</code>. Not doing so, will result in a\nmemory leak.</p>\n\n<p>This does not free the <code>git_strarray</code> itself, since the library will\nnever allocate that object directly itself (it is more commonly embedded\ninside another struct or created on the stack).</p>\n","group":"strarray","examples":{"general.c":["ex/HEAD/general.html#git_strarray_free-68"]}},"git_strarray_copy":{"type":"function","file":"strarray.h","line":53,"lineto":53,"args":[{"name":"tgt","type":"git_strarray *","comment":"target"},{"name":"src","type":"const git_strarray *","comment":"source"}],"argline":"git_strarray *tgt, const git_strarray *src","sig":"git_strarray *::const git_strarray *","return":{"type":"int","comment":"0 on success, < 0 on allocation failure"},"description":"<p>Copy a string array object from source to target.</p>\n","comments":"<p>Note: target is overwritten and hence should be empty, otherwise its\ncontents are leaked. Call git_strarray_free() if necessary.</p>\n","group":"strarray"},"git_submodule_lookup":{"type":"function","file":"submodule.h","line":135,"lineto":138,"args":[{"name":"submodule","type":"git_submodule **","comment":"Pointer to submodule description object pointer.."},{"name":"repo","type":"git_repository *","comment":"The repository."},{"name":"name","type":"const char *","comment":"The name of the submodule. Trailing slashes will be ignored."}],"argline":"git_submodule **submodule,\n\tgit_repository *repo,\n\tconst char *name","sig":"git_submodule **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if submodule does not exist, GIT_EEXISTS if submodule exists in working directory only, -1 on other errors."},"description":"<p>Lookup submodule information by name or path.</p>\n","comments":"<p>Given either the submodule name or path (they are usually the same), this\nreturns a structure describing the submodule.</p>\n\n<p>There are two expected error scenarios:</p>\n\n<ul>\n<li>The submodule is not mentioned in the HEAD, the index, and the config,\nbut does &quot;exist&quot; in the working directory (i.e. there is a subdirectory\nthat is a valid self-contained git repo). In this case, this function\nreturns GIT_EEXISTS to indicate the the submodule exists but not in a\nstate where a git_submodule can be instantiated.</li>\n<li>The submodule is not mentioned in the HEAD, index, or config and the\nworking directory doesn&#39;t contain a value git repo at that path.\nThere may or may not be anything else at that path, but nothing that\nlooks like a submodule. In this case, this returns GIT_ENOTFOUND.</li>\n</ul>\n\n<p>The submodule object is owned by the containing repo and will be freed\nwhen the repo is freed. The caller need not free the submodule.</p>\n","group":"submodule","examples":{"status.c":["ex/HEAD/status.html#git_submodule_lookup-19"]}},"git_submodule_foreach":{"type":"function","file":"submodule.h","line":158,"lineto":161,"args":[{"name":"repo","type":"git_repository *","comment":"The repository"},{"name":"callback","type":"int (*)(git_submodule *sm, const char *name, void *payload)","comment":"Function to be called with the name of each submodule. Return a non-zero value to terminate the iteration."},{"name":"payload","type":"void *","comment":"Extra data to pass to callback"}],"argline":"git_repository *repo,\n\tint (*callback)(git_submodule *sm, const char *name, void *payload),\n\tvoid *payload","sig":"git_repository *::int (*)(git_submodule *sm, const char *name, void *payload)::void *","return":{"type":"int","comment":"0 on success, -1 on error, or non-zero return value of callback"},"description":"<p>Iterate over all tracked submodules of a repository.</p>\n","comments":"<p>See the note on <code>git_submodule</code> above. This iterates over the tracked\nsubmodules as decribed therein.</p>\n\n<p>If you are concerned about items in the working directory that look like\nsubmodules but are not tracked, the diff API will generate a diff record\nfor workdir items that look like submodules but are not tracked, showing\nthem as added in the workdir. Also, the status API will treat the entire\nsubdirectory of a contained git repo as a single GIT_STATUS_WT_NEW item.</p>\n","group":"submodule"},"git_submodule_add_setup":{"type":"function","file":"submodule.h","line":186,"lineto":191,"args":[{"name":"submodule","type":"git_submodule **","comment":"The newly created submodule ready to open for clone"},{"name":"repo","type":"git_repository *","comment":"Superproject repository to contain the new submodule"},{"name":"url","type":"const char *","comment":"URL for the submodules remote"},{"name":"path","type":"const char *","comment":"Path at which the submodule should be created"},{"name":"use_gitlink","type":"int","comment":"Should workdir contain a gitlink to the repo in .git/modules vs. repo directly in workdir."}],"argline":"git_submodule **submodule,\n\tgit_repository *repo,\n\tconst char *url,\n\tconst char *path,\n\tint use_gitlink","sig":"git_submodule **::git_repository *::const char *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS if submodule already exists, -1 on other errors."},"description":"<p>Set up a new git submodule for checkout.</p>\n","comments":"<p>This does &quot;git submodule add&quot; up to the fetch and checkout of the\nsubmodule contents. It preps a new submodule, creates an entry in\n.gitmodules and creates an empty initialized repository either at the\ngiven path in the working directory or in .git/modules with a gitlink\nfrom the working directory to the new repo.</p>\n\n<p>To fully emulate &quot;git submodule add&quot; call this function, then open the\nsubmodule repo and perform the clone step as needed. Lastly, call\n<code>git_submodule_add_finalize()</code> to wrap up adding the new submodule and\n.gitmodules to the index to be ready to commit.</p>\n","group":"submodule"},"git_submodule_add_finalize":{"type":"function","file":"submodule.h","line":203,"lineto":203,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to finish adding."}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Resolve the setup of a new git submodule.</p>\n","comments":"<p>This should be called on a submodule once you have called add setup\nand done the clone of the submodule. This adds the .gitmodules file\nand the newly cloned submodule to the index to be ready to be committed\n(but doesn&#39;t actually do the commit).</p>\n","group":"submodule"},"git_submodule_add_to_index":{"type":"function","file":"submodule.h","line":215,"lineto":217,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to add to the index"},{"name":"write_index","type":"int","comment":"Boolean if this should immediately write the index file. If you pass this as false, you will have to get the git_index and explicitly call `git_index_write()` on it to save the change."}],"argline":"git_submodule *submodule,\n\tint write_index","sig":"git_submodule *::int","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Add current submodule HEAD commit to index of superproject.</p>\n","comments":"","group":"submodule"},"git_submodule_save":{"type":"function","file":"submodule.h","line":231,"lineto":231,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to write."}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Write submodule settings to .gitmodules file.</p>\n","comments":"<p>This commits any in-memory changes to the submodule to the gitmodules\nfile on disk. You may also be interested in <code>git_submodule_init()</code> which\nwrites submodule info to &quot;.git/config&quot; (which is better for local changes\nto submodule settings) and/or <code>git_submodule_sync()</code> which writes\nsettings about remotes to the actual submodule repository.</p>\n","group":"submodule"},"git_submodule_owner":{"type":"function","file":"submodule.h","line":244,"lineto":244,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"git_repository *","comment":"Pointer to `git_repository`"},"description":"<p>Get the containing repository for a submodule.</p>\n","comments":"<p>This returns a pointer to the repository that contains the submodule.\nThis is a just a reference to the repository that was passed to the\noriginal <code>git_submodule_lookup()</code> call, so if that repository has been\nfreed, then this may be a dangling reference.</p>\n","group":"submodule"},"git_submodule_name":{"type":"function","file":"submodule.h","line":252,"lineto":252,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule name"},"description":"<p>Get the name of submodule.</p>\n","comments":"","group":"submodule"},"git_submodule_path":{"type":"function","file":"submodule.h","line":263,"lineto":263,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule path"},"description":"<p>Get the path to the submodule.</p>\n","comments":"<p>The path is almost always the same as the submodule name, but the\ntwo are actually not required to match.</p>\n","group":"submodule"},"git_submodule_url":{"type":"function","file":"submodule.h","line":271,"lineto":271,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule url"},"description":"<p>Get the URL for the submodule.</p>\n","comments":"","group":"submodule"},"git_submodule_set_url":{"type":"function","file":"submodule.h","line":287,"lineto":287,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to the submodule object"},{"name":"url","type":"const char *","comment":"URL that should be used for the submodule"}],"argline":"git_submodule *submodule, const char *url","sig":"git_submodule *::const char *","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Set the URL for the submodule.</p>\n","comments":"<p>This sets the URL in memory for the submodule. This will be used for\nany following submodule actions while this submodule data is in memory.</p>\n\n<p>After calling this, you may wish to call <code>git_submodule_save()</code> to write\nthe changes back to the &quot;.gitmodules&quot; file and <code>git_submodule_sync()</code> to\nwrite the changes to the checked out submodule repository.</p>\n","group":"submodule"},"git_submodule_index_id":{"type":"function","file":"submodule.h","line":295,"lineto":295,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not in index."},"description":"<p>Get the OID for the submodule in the index.</p>\n","comments":"","group":"submodule"},"git_submodule_head_id":{"type":"function","file":"submodule.h","line":303,"lineto":303,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not in the HEAD."},"description":"<p>Get the OID for the submodule in the current HEAD tree.</p>\n","comments":"","group":"submodule"},"git_submodule_wd_id":{"type":"function","file":"submodule.h","line":316,"lineto":316,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not checked out."},"description":"<p>Get the OID for the submodule in the current working directory.</p>\n","comments":"<p>This returns the OID that corresponds to looking up &#39;HEAD&#39; in the checked\nout submodule. If there are pending changes in the index or anything\nelse, this won&#39;t notice that. You should call <code>git_submodule_status()</code>\nfor a more complete picture about the state of the working directory.</p>\n","group":"submodule"},"git_submodule_ignore":{"type":"function","file":"submodule.h","line":344,"lineto":345,"args":[],"argline":"_t) git_submodule_ignore(\n\tgit_submodule *submodule)","sig":"","return":{"type":"GIT_EXTERN(","comment":"The current git_submodule_ignore_t valyue what will be used for this submodule."},"description":"<p>Get the ignore rule that will be used for the submodule.</p>\n","comments":"<p>These values control the behavior of <code>git_submodule_status()</code> for this\nsubmodule. There are four ignore values:</p>\n\n<ul>\n<li><strong>GIT_SUBMODULE_IGNORE_NONE</strong> will consider any change to the contents\nof the submodule from a clean checkout to be dirty, including the\naddition of untracked files. This is the default if unspecified.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_UNTRACKED</strong> examines the contents of the\nworking tree (i.e. call <code>git_status_foreach()</code> on the submodule) but\nUNTRACKED files will not count as making the submodule dirty.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_DIRTY</strong> means to only check if the HEAD of the\nsubmodule has moved for status. This is fast since it does not need to\nscan the working tree of the submodule at all.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_ALL</strong> means not to open the submodule repo.\nThe working directory will be consider clean so long as there is a\nchecked out version present.</li>\n</ul>\n\n<p>plus the special <strong>GIT_SUBMODULE_IGNORE_RESET</strong> which can be used with\n<code>git_submodule_set_ignore()</code> to revert to the on-disk setting.</p>\n","group":"submodule"},"git_submodule_set_ignore":{"type":"function","file":"submodule.h","line":363,"lineto":365,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to update"},{"name":"ignore","type":"git_submodule_ignore_t","comment":"The new value for the ignore rule"}],"argline":"git_submodule *submodule,\n\tgit_submodule_ignore_t ignore","sig":"git_submodule *::git_submodule_ignore_t","return":{"type":"git_submodule_ignore_t","comment":"old value for ignore"},"description":"<p>Set the ignore rule for the submodule.</p>\n","comments":"<p>This sets the in-memory ignore rule for the submodule which will\ncontrol the behavior of <code>git_submodule_status()</code>.</p>\n\n<p>To make changes persistent, call <code>git_submodule_save()</code> to write the\nvalue to disk (in the &quot;.gitmodules&quot; and &quot;.git/config&quot; files).</p>\n\n<p>Call with <code>GIT_SUBMODULE_IGNORE_RESET</code> or call <code>git_submodule_reload()</code>\nto revert the in-memory rule to the value that is on disk.</p>\n","group":"submodule"},"git_submodule_update":{"type":"function","file":"submodule.h","line":379,"lineto":380,"args":[],"argline":"_t) git_submodule_update(\n\tgit_submodule *submodule)","sig":"","return":{"type":"GIT_EXTERN(","comment":"The current git_submodule_update_t value that will be used for this submodule."},"description":"<p>Get the update rule that will be used for the submodule.</p>\n","comments":"<p>This value controls the behavior of the <code>git submodule update</code> command.\nThere are four useful values documented with <code>git_submodule_update_t</code>\nplus the <code>GIT_SUBMODULE_UPDATE_RESET</code> which can be used to revert to\nthe on-disk setting.</p>\n","group":"submodule"},"git_submodule_set_update":{"type":"function","file":"submodule.h","line":398,"lineto":400,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to update"},{"name":"update","type":"git_submodule_update_t","comment":"The new value to use"}],"argline":"git_submodule *submodule,\n\tgit_submodule_update_t update","sig":"git_submodule *::git_submodule_update_t","return":{"type":"git_submodule_update_t","comment":"old value for update"},"description":"<p>Set the update rule for the submodule.</p>\n","comments":"<p>The initial value comes from the &quot;.git/config&quot; setting of\n<code>submodule.$name.update</code> for this submodule (which is initialized from\nthe &quot;.gitmodules&quot; file). Using this function sets the update rule in\nmemory for the submodule. Call <code>git_submodule_save()</code> to write out the\nnew update rule.</p>\n\n<p>Calling this again with GIT_SUBMODULE_UPDATE_RESET or calling\n<code>git_submodule_reload()</code> will revert the rule to the on disk value.</p>\n","group":"submodule"},"git_submodule_fetch_recurse_submodules":{"type":"function","file":"submodule.h","line":413,"lineto":414,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int","comment":"0 if fetchRecurseSubmodules is false, 1 if true"},"description":"<p>Read the fetchRecurseSubmodules rule for a submodule.</p>\n","comments":"<p>This accesses the submodule.<name>.fetchRecurseSubmodules value for\nthe submodule that controls fetching behavior for the submodule.</p>\n\n<p>Note that at this time, libgit2 does not honor this setting and the\nfetch functionality current ignores submodules.</p>\n","group":"submodule"},"git_submodule_set_fetch_recurse_submodules":{"type":"function","file":"submodule.h","line":427,"lineto":429,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to modify"},{"name":"fetch_recurse_submodules","type":"int","comment":"Boolean value"}],"argline":"git_submodule *submodule,\n\tint fetch_recurse_submodules","sig":"git_submodule *::int","return":{"type":"int","comment":"old value for fetchRecurseSubmodules"},"description":"<p>Set the fetchRecurseSubmodules rule for a submodule.</p>\n","comments":"<p>This sets the submodule.<name>.fetchRecurseSubmodules value for\nthe submodule. You should call <code>git_submodule_save()</code> if you want\nto persist the new value.</p>\n","group":"submodule"},"git_submodule_init":{"type":"function","file":"submodule.h","line":444,"lineto":444,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to write into the superproject config"},{"name":"overwrite","type":"int","comment":"By default, existing entries will not be overwritten, but setting this to true forces them to be updated."}],"argline":"git_submodule *submodule, int overwrite","sig":"git_submodule *::int","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Copy submodule info into &quot;.git/config&quot; file.</p>\n","comments":"<p>Just like &quot;git submodule init&quot;, this copies information about the\nsubmodule into &quot;.git/config&quot;. You can use the accessor functions\nabove to alter the in-memory git_submodule object and control what\nis written to the config, overriding what is in .gitmodules.</p>\n","group":"submodule"},"git_submodule_sync":{"type":"function","file":"submodule.h","line":454,"lineto":454,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Copy submodule remote info into submodule repo.</p>\n","comments":"<p>This copies the information about the submodules URL into the checked out\nsubmodule config, acting like &quot;git submodule sync&quot;. This is useful if\nyou have altered the URL for the submodule (or it has been altered by a\nfetch of upstream changes) and you need to update your local repo.</p>\n","group":"submodule"},"git_submodule_open":{"type":"function","file":"submodule.h","line":468,"lineto":470,"args":[{"name":"repo","type":"git_repository **","comment":"Pointer to the submodule repo which was opened"},{"name":"submodule","type":"git_submodule *","comment":"Submodule to be opened"}],"argline":"git_repository **repo,\n\tgit_submodule *submodule","sig":"git_repository **::git_submodule *","return":{"type":"int","comment":"0 on success, <0 if submodule repo could not be opened."},"description":"<p>Open the repository for a submodule.</p>\n","comments":"<p>This is a newly opened repository object. The caller is responsible for\ncalling <code>git_repository_free()</code> on it when done. Multiple calls to this\nfunction will return distinct <code>git_repository</code> objects. This will only\nwork if the submodule is checked out into the working directory.</p>\n","group":"submodule"},"git_submodule_reload":{"type":"function","file":"submodule.h","line":478,"lineto":478,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Reread submodule info from config, index, and HEAD.</p>\n","comments":"<p>Call this to reread cached submodule information for this submodule if\nyou have reason to believe that it has changed.</p>\n","group":"submodule"},"git_submodule_reload_all":{"type":"function","file":"submodule.h","line":485,"lineto":485,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int"},"description":"<p>Reread all submodule info.</p>\n","comments":"<p>Call this to reload all cached submodule information for the repo.</p>\n","group":"submodule"},"git_submodule_status":{"type":"function","file":"submodule.h","line":500,"lineto":502,"args":[{"name":"status","type":"unsigned int *","comment":"Combination of `GIT_SUBMODULE_STATUS` flags"},{"name":"submodule","type":"git_submodule *","comment":"Submodule for which to get status"}],"argline":"unsigned int *status,\n\tgit_submodule *submodule","sig":"unsigned int *::git_submodule *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get the status for a submodule.</p>\n","comments":"<p>This looks at a submodule and tries to determine the status. It\nwill return a combination of the <code>GIT_SUBMODULE_STATUS</code> values above.\nHow deeply it examines the working directory to do this will depend\non the <code>git_submodule_ignore_t</code> value for the submodule - which can be\nset either temporarily or permanently with <code>git_submodule_set_ignore()</code>.</p>\n","group":"submodule","examples":{"status.c":["ex/HEAD/status.html#git_submodule_status-20"]}},"git_submodule_location":{"type":"function","file":"submodule.h","line":518,"lineto":520,"args":[{"name":"location_status","type":"unsigned int *","comment":"Combination of first four `GIT_SUBMODULE_STATUS` flags"},{"name":"submodule","type":"git_submodule *","comment":"Submodule for which to get status"}],"argline":"unsigned int *location_status,\n\tgit_submodule *submodule","sig":"unsigned int *::git_submodule *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get the locations of submodule information.</p>\n","comments":"<p>This is a bit like a very lightweight version of <code>git_submodule_status</code>.\nIt just returns a made of the first four submodule status values (i.e.\nthe ones like GIT_SUBMODULE_STATUS_IN_HEAD, etc) that tell you where the\nsubmodule data comes from (i.e. the HEAD commit, gitmodules file, etc.).\nThis can be useful if you want to know if the submodule is present in the\nworking directory at this point in time, etc.</p>\n","group":"submodule"},"git_commit_create_from_oids":{"type":"function","file":"sys/commit.h","line":32,"lineto":42,"args":[{"name":"oid","type":"git_oid *"},{"name":"repo","type":"git_repository *"},{"name":"update_ref","type":"const char *"},{"name":"author","type":"const git_signature *"},{"name":"committer","type":"const git_signature *"},{"name":"message_encoding","type":"const char *"},{"name":"message","type":"const char *"},{"name":"tree","type":"const git_oid *"},{"name":"parent_count","type":"int"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_oid *tree,\n\tint parent_count,\n\tconst git_oid *parents[]","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_oid *::int","return":{"type":"int"},"description":"<p>Create new commit in the repository from a list of <code>git_oid</code> values</p>\n","comments":"<p>See documentation for <code>git_commit_create()</code> for information about the\nparameters, as the meaning is identical excepting that <code>tree</code> and\n<code>parents</code> now take <code>git_oid</code>. This is a dangerous API in that nor\nthe <code>tree</code>, neither the <code>parents</code> list of <code>git_oid</code>s are checked for\nvalidity.</p>\n","group":"commit"},"git_config_add_backend":{"type":"function","file":"sys/config.h","line":89,"lineto":93,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to add the file to"},{"name":"file","type":"git_config_backend *","comment":"the configuration file (backend) to add"},{"name":"level","type":"git_config_level_t","comment":"the priority level of the backend"},{"name":"force","type":"int","comment":"if a config file already exists for the given priority level, replace it"}],"argline":"git_config *cfg,\n\tgit_config_backend *file,\n\tgit_config_level_t level,\n\tint force","sig":"git_config *::git_config_backend *::git_config_level_t::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), or error code"},"description":"<p>Add a generic config file instance to an existing config</p>\n","comments":"<p>Note that the configuration object will free the file\nautomatically.</p>\n\n<p>Further queries on this config object will access each\nof the config file instances in order (instances with\na higher priority level will be accessed first).</p>\n","group":"config"},"git_index_name_entrycount":{"type":"function","file":"sys/index.h","line":45,"lineto":45,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"unsigned int","comment":"integer of count of current filename conflict entries"},"description":"<p>Get the count of filename conflict entries currently in the index.</p>\n","comments":"","group":"index"},"git_index_name_get_byindex":{"type":"function","file":"sys/index.h","line":57,"lineto":58,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_name_entry *","comment":"a pointer to the filename conflict entry; NULL if out of bounds"},"description":"<p>Get a filename conflict entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_name_add":{"type":"function","file":"sys/index.h","line":68,"lineto":69,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"ancestor","type":"const char *","comment":"the path of the file as it existed in the ancestor"},{"name":"ours","type":"const char *","comment":"the path of the file as it existed in our tree"},{"name":"theirs","type":"const char *","comment":"the path of the file as it existed in their tree"}],"argline":"git_index *index,\n\tconst char *ancestor, const char *ours, const char *theirs","sig":"git_index *::const char *::const char *::const char *","return":{"type":"int"},"description":"<p>Record the filenames involved in a rename conflict.</p>\n","comments":"","group":"index"},"git_index_name_clear":{"type":"function","file":"sys/index.h","line":76,"lineto":76,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all filename conflict entries.</p>\n","comments":"","group":"index"},"git_index_reuc_entrycount":{"type":"function","file":"sys/index.h","line":93,"lineto":93,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"unsigned int","comment":"integer of count of current resolve undo entries"},"description":"<p>Get the count of resolve undo entries currently in the index.</p>\n","comments":"","group":"index"},"git_index_reuc_find":{"type":"function","file":"sys/index.h","line":104,"lineto":104,"args":[{"name":"at_pos","type":"size_t *","comment":"the address to which the position of the reuc entry is written (optional)"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"size_t *at_pos, git_index *index, const char *path","sig":"size_t *::git_index *::const char *","return":{"type":"int","comment":"0 if found, < 0 otherwise (GIT_ENOTFOUND)"},"description":"<p>Finds the resolve undo entry that points to the given path in the Git\nindex.</p>\n","comments":"","group":"index"},"git_index_reuc_get_bypath":{"type":"function","file":"sys/index.h","line":116,"lineto":116,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"const git_index_reuc_entry *","comment":"the resolve undo entry; NULL if not found"},"description":"<p>Get a resolve undo entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_reuc_get_byindex":{"type":"function","file":"sys/index.h","line":128,"lineto":128,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_reuc_entry *","comment":"a pointer to the resolve undo entry; NULL if out of bounds"},"description":"<p>Get a resolve undo entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_reuc_add":{"type":"function","file":"sys/index.h","line":152,"lineto":155,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to add"},{"name":"ancestor_mode","type":"int","comment":"mode of the ancestor file"},{"name":"ancestor_id","type":"const git_oid *","comment":"oid of the ancestor file"},{"name":"our_mode","type":"int","comment":"mode of our file"},{"name":"our_id","type":"const git_oid *","comment":"oid of our file"},{"name":"their_mode","type":"int","comment":"mode of their file"},{"name":"their_id","type":"const git_oid *","comment":"oid of their file"}],"argline":"git_index *index, const char *path,\n\tint ancestor_mode, const git_oid *ancestor_id,\n\tint our_mode, const git_oid *our_id,\n\tint their_mode, const git_oid *their_id","sig":"git_index *::const char *::int::const git_oid *::int::const git_oid *::int::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Adds a resolve undo entry for a file based on the given parameters.</p>\n","comments":"<p>The resolve undo entry contains the OIDs of files that were involved\nin a merge conflict after the conflict has been resolved. This allows\nconflicts to be re-resolved later.</p>\n\n<p>If there exists a resolve undo entry for the given path in the index,\nit will be removed.</p>\n\n<p>This method will fail in bare index instances.</p>\n","group":"index"},"git_index_reuc_remove":{"type":"function","file":"sys/index.h","line":164,"lineto":164,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"position of the resolve undo entry to remove"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an resolve undo entry from the index</p>\n","comments":"","group":"index"},"git_index_reuc_clear":{"type":"function","file":"sys/index.h","line":171,"lineto":171,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all resolve undo entries from the index</p>\n","comments":"","group":"index"},"git_refdb_backend_fs":{"type":"function","file":"sys/refdb_backend.h","line":138,"lineto":140,"args":[{"name":"backend_out","type":"git_refdb_backend **","comment":"Output pointer to the git_refdb_backend object"},{"name":"repo","type":"git_repository *","comment":"Git repository to access"}],"argline":"git_refdb_backend **backend_out,\n\tgit_repository *repo","sig":"git_refdb_backend **::git_repository *","return":{"type":"int","comment":"0 on success, <0 error code on failure"},"description":"<p>Constructors for default filesystem-based refdb backend</p>\n","comments":"<p>Under normal usage, this is called for you when the repository is\nopened / created, but you can use this to explicitly construct a\nfilesystem refdb backend for a repository.</p>\n","group":"refdb"},"git_refdb_set_backend":{"type":"function","file":"sys/refdb_backend.h","line":152,"lineto":158,"args":[{"name":"refdb","type":"git_refdb *","comment":"database to add the backend to"},{"name":"backend","type":"git_refdb_backend *","comment":"pointer to a git_refdb_backend instance"}],"argline":"git_refdb *refdb,\n\tgit_refdb_backend *backend","sig":"git_refdb *::git_refdb_backend *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Sets the custom backend to an existing reference DB</p>\n","comments":"<p>The <code>git_refdb</code> will take ownership of the <code>git_refdb_backend</code> so you\nshould NOT free it after calling this function.</p>\n","group":"refdb"},"git_reference__alloc":{"type":"function","file":"sys/refs.h","line":22,"lineto":25,"args":[{"name":"name","type":"const char *","comment":"the reference name"},{"name":"oid","type":"const git_oid *","comment":"the object id for a direct reference"},{"name":"peel","type":"const git_oid *","comment":"the first non-tag object's OID, or NULL"}],"argline":"const char *name,\n\tconst git_oid *oid,\n\tconst git_oid *peel","sig":"const char *::const git_oid *::const git_oid *","return":{"type":"git_reference *","comment":"the created git_reference or NULL on error"},"description":"<p>Create a new direct reference from an OID.</p>\n","comments":"","group":"reference"},"git_reference__alloc_symbolic":{"type":"function","file":"sys/refs.h","line":34,"lineto":38,"args":[{"name":"name","type":"const char *","comment":"the reference name"},{"name":"target","type":"const char *","comment":"the target for a symbolic reference"}],"argline":"const char *name,\n\tconst char *target","sig":"const char *::const char *","return":{"type":"git_reference *","comment":"the created git_reference or NULL on error"},"description":"<p>Create a new symbolic reference.</p>\n","comments":"","group":"reference"},"git_repository_new":{"type":"function","file":"sys/repository.h","line":28,"lineto":28,"args":[{"name":"out","type":"git_repository **","comment":"The blank repository"}],"argline":"git_repository **out","sig":"git_repository **","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Create a new repository with neither backends nor config object</p>\n","comments":"<p>Note that this is only useful if you wish to associate the repository\nwith a non-filesystem-backed object database and config store.</p>\n","group":"repository"},"git_repository__cleanup":{"type":"function","file":"sys/repository.h","line":42,"lineto":42,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Reset all the internal state in a repository.</p>\n","comments":"<p>This will free all the mapped memory and internal objects\nof the repository and leave it in a &quot;blank&quot; state.</p>\n\n<p>There&#39;s no need to call this function directly unless you&#39;re\ntrying to aggressively cleanup the repo before its\ndeallocation. <code>git_repository_free</code> already performs this operation\nbefore deallocation the repo.</p>\n","group":"repository"},"git_repository_set_config":{"type":"function","file":"sys/repository.h","line":57,"lineto":57,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"config","type":"git_config *","comment":"A Config object"}],"argline":"git_repository *repo, git_config *config","sig":"git_repository *::git_config *","return":{"type":"void"},"description":"<p>Set the configuration file for this repository</p>\n","comments":"<p>This configuration file will be used for all configuration\nqueries involving this repository.</p>\n\n<p>The repository will keep a reference to the config file;\nthe user must still free the config after setting it\nto the repository, or it will leak.</p>\n","group":"repository"},"git_repository_set_odb":{"type":"function","file":"sys/repository.h","line":72,"lineto":72,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"odb","type":"git_odb *","comment":"An ODB object"}],"argline":"git_repository *repo, git_odb *odb","sig":"git_repository *::git_odb *","return":{"type":"void"},"description":"<p>Set the Object Database for this repository</p>\n","comments":"<p>The ODB will be used for all object-related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the ODB; the user\nmust still free the ODB object after setting it to the\nrepository, or it will leak.</p>\n","group":"repository"},"git_repository_set_refdb":{"type":"function","file":"sys/repository.h","line":87,"lineto":87,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"refdb","type":"git_refdb *","comment":"An refdb object"}],"argline":"git_repository *repo, git_refdb *refdb","sig":"git_repository *::git_refdb *","return":{"type":"void"},"description":"<p>Set the Reference Database Backend for this repository</p>\n","comments":"<p>The refdb will be used for all reference related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the refdb; the user\nmust still free the refdb object after setting it to the\nrepository, or it will leak.</p>\n","group":"repository"},"git_repository_set_index":{"type":"function","file":"sys/repository.h","line":102,"lineto":102,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"index","type":"git_index *","comment":"An index object"}],"argline":"git_repository *repo, git_index *index","sig":"git_repository *::git_index *","return":{"type":"void"},"description":"<p>Set the index file for this repository</p>\n","comments":"<p>This index will be used for all index-related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the index file;\nthe user must still free the index after setting it\nto the repository, or it will leak.</p>\n","group":"repository"},"git_tag_lookup":{"type":"function","file":"tag.h","line":33,"lineto":34,"args":[{"name":"out","type":"git_tag **","comment":"pointer to the looked up tag"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tag."},{"name":"id","type":"const git_oid *","comment":"identity of the tag to locate."}],"argline":"git_tag **out, git_repository *repo, const git_oid *id","sig":"git_tag **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tag object from the repository.</p>\n","comments":"","group":"tag","examples":{"general.c":["ex/HEAD/general.html#git_tag_lookup-69"]}},"git_tag_lookup_prefix":{"type":"function","file":"tag.h","line":48,"lineto":49,"args":[{"name":"out","type":"git_tag **","comment":"pointer to the looked up tag"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tag."},{"name":"id","type":"const git_oid *","comment":"identity of the tag to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_tag **out, git_repository *repo, const git_oid *id, size_t len","sig":"git_tag **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tag object from the repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"tag"},"git_tag_free":{"type":"function","file":"tag.h","line":61,"lineto":61,"args":[{"name":"tag","type":"git_tag *","comment":"the tag to close"}],"argline":"git_tag *tag","sig":"git_tag *","return":{"type":"void"},"description":"<p>Close an open tag</p>\n","comments":"<p>You can no longer use the git_tag pointer after this call.</p>\n\n<p>IMPORTANT: You MUST call this method when you are through with a tag to\nrelease memory. Failure to do so will cause a memory leak.</p>\n","group":"tag"},"git_tag_id":{"type":"function","file":"tag.h","line":69,"lineto":69,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_oid *","comment":"object identity for the tag."},"description":"<p>Get the id of a tag.</p>\n","comments":"","group":"tag"},"git_tag_owner":{"type":"function","file":"tag.h","line":77,"lineto":77,"args":[{"name":"tag","type":"const git_tag *","comment":"A previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"git_repository *","comment":"Repository that contains this tag."},"description":"<p>Get the repository that contains the tag.</p>\n","comments":"","group":"tag"},"git_tag_target":{"type":"function","file":"tag.h","line":89,"lineto":89,"args":[{"name":"target_out","type":"git_object **","comment":"pointer where to store the target"},{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"git_object **target_out, const git_tag *tag","sig":"git_object **::const git_tag *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the tagged object of a tag</p>\n","comments":"<p>This method performs a repository lookup for the\ngiven object and returns it</p>\n","group":"tag","examples":{"general.c":["ex/HEAD/general.html#git_tag_target-70"]}},"git_tag_target_id":{"type":"function","file":"tag.h","line":97,"lineto":97,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_oid *","comment":"pointer to the OID"},"description":"<p>Get the OID of the tagged object of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_target_id-33"]}},"git_tag_target_type":{"type":"function","file":"tag.h","line":105,"lineto":105,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"git_otype","comment":"type of the tagged object"},"description":"<p>Get the type of a tag&#39;s tagged object</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_target_type-34"],"general.c":["ex/HEAD/general.html#git_tag_target_type-71"]}},"git_tag_name":{"type":"function","file":"tag.h","line":113,"lineto":113,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const char *","comment":"name of the tag"},"description":"<p>Get the name of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_name-35"],"general.c":["ex/HEAD/general.html#git_tag_name-72"]}},"git_tag_tagger":{"type":"function","file":"tag.h","line":121,"lineto":121,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_signature *","comment":"reference to the tag's author or NULL when unspecified"},"description":"<p>Get the tagger (author) of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_tagger-36"]}},"git_tag_message":{"type":"function","file":"tag.h","line":129,"lineto":129,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const char *","comment":"message of the tag or NULL when unspecified"},"description":"<p>Get the message of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_message-37","ex/HEAD/cat-file.html#git_tag_message-38"],"general.c":["ex/HEAD/general.html#git_tag_message-73"]}},"git_tag_create":{"type":"function","file":"tag.h","line":171,"lineto":178,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag. If the tag already exists, this parameter will be the oid of the existing tag, and the function will return a GIT_EEXISTS error code."},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"tagger","type":"const git_signature *","comment":"Signature of the tagger for this tag, and of the tagging time"},{"name":"message","type":"const char *","comment":"Full message for this tag"},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tconst git_signature *tagger,\n\tconst char *message,\n\tint force","sig":"git_oid *::git_repository *::const char *::const git_object *::const git_signature *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code A tag object is written to the ODB, and a proper reference is written in the /refs/tags folder, pointing to it"},"description":"<p>Create a new tag in the repository from an object</p>\n","comments":"<p>A new reference will also be created pointing to\nthis tag object. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The message will not be cleaned up. This can be achieved\nthrough <code>git_message_prettify()</code>.</p>\n\n<p>The tag name will be checked for validity. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</p>\n","group":"tag"},"git_tag_annotation_create":{"type":"function","file":"tag.h","line":203,"lineto":209,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"tagger","type":"const git_signature *","comment":"Signature of the tagger for this tag, and of the tagging time"},{"name":"message","type":"const char *","comment":"Full message for this tag"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tconst git_signature *tagger,\n\tconst char *message","sig":"git_oid *::git_repository *::const char *::const git_object *::const git_signature *::const char *","return":{"type":"int","comment":"0 on success or an error code"},"description":"<p>Create a new tag in the object database pointing to a git_object</p>\n","comments":"<p>The message will not be cleaned up. This can be achieved\nthrough <code>git_message_prettify()</code>.</p>\n","group":"tag"},"git_tag_create_frombuffer":{"type":"function","file":"tag.h","line":220,"lineto":224,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"buffer","type":"const char *","comment":"Raw tag data"},{"name":"force","type":"int","comment":"Overwrite existing tags"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *buffer,\n\tint force","sig":"git_oid *::git_repository *::const char *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Create a new tag in the repository from a buffer</p>\n","comments":"","group":"tag"},"git_tag_create_lightweight":{"type":"function","file":"tag.h","line":256,"lineto":261,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the provided target object. If the tag already exists, this parameter will be filled with the oid of the existing pointed object and the function will return a GIT_EEXISTS error code."},{"name":"repo","type":"git_repository *","comment":"Repository where to store the lightweight tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tint force","sig":"git_oid *::git_repository *::const char *::const git_object *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code A proper reference is written in the /refs/tags folder, pointing to the provided target object"},"description":"<p>Create a new lightweight tag pointing at a target object</p>\n","comments":"<p>A new direct reference will be created pointing to\nthis target object. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The tag name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"tag"},"git_tag_delete":{"type":"function","file":"tag.h","line":276,"lineto":278,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where lives the tag"},{"name":"tag_name","type":"const char *","comment":"Name of the tag to be deleted; this name is validated for consistency."}],"argline":"git_repository *repo,\n\tconst char *tag_name","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Delete an existing tag reference.</p>\n","comments":"<p>The tag name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"tag"},"git_tag_list":{"type":"function","file":"tag.h","line":293,"lineto":295,"args":[{"name":"tag_names","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the tag names will be stored"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the tags"}],"argline":"git_strarray *tag_names,\n\tgit_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the tags in the Repository</p>\n","comments":"<p>The string array will be filled with the names of the\nmatching tags; these values are owned by the user and\nshould be free&#39;d manually when no longer needed, using\n<code>git_strarray_free</code>.</p>\n","group":"tag"},"git_tag_list_match":{"type":"function","file":"tag.h","line":315,"lineto":321,"args":[{"name":"tag_names","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the tag names will be stored"},{"name":"pattern","type":"const char *","comment":"Standard fnmatch pattern"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the tags"}],"argline":"git_strarray *tag_names,\n\tconst char *pattern,\n\tgit_repository *repo","sig":"git_strarray *::const char *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the tags in the Repository\nwhich name match a defined pattern</p>\n","comments":"<p>If an empty pattern is provided, all the tags\nwill be returned.</p>\n\n<p>The string array will be filled with the names of the\nmatching tags; these values are owned by the user and\nshould be free&#39;d manually when no longer needed, using\n<code>git_strarray_free</code>.</p>\n","group":"tag"},"git_tag_foreach":{"type":"function","file":"tag.h","line":330,"lineto":333,"args":[{"name":"repo","type":"git_repository *","comment":"Repository"},{"name":"callback","type":"git_tag_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_tag_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_tag_foreach_cb::void *","return":{"type":"int"},"description":"<p>Call callback `cb&#39; for each tag in the repository</p>\n","comments":"","group":"tag"},"git_tag_peel":{"type":"function","file":"tag.h","line":346,"lineto":348,"args":[{"name":"tag_target_out","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"tag","type":"const git_tag *","comment":"_target_out Pointer to the peeled git_object"}],"argline":"git_object **tag_target_out,\n\tconst git_tag *tag","sig":"git_object **::const git_tag *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Recursively peel a tag until a non tag git_object is found</p>\n","comments":"<p>The retrieved <code>tag_target</code> object is owned by the repository\nand should be closed with the <code>git_object_free</code> method.</p>\n","group":"tag"},"git_threads_init":{"type":"function","file":"threads.h","line":33,"lineto":33,"args":[],"argline":"void","sig":"","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Init the threading system.</p>\n","comments":"<p>If libgit2 has been built with GIT_THREADS\non, this function must be called once before\nany other library functions.</p>\n\n<p>If libgit2 has been built without GIT_THREADS\nsupport, this function is a no-op.</p>\n","group":"threads","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_threads_init-39"],"diff.c":["ex/HEAD/diff.html#git_threads_init-20"],"init.c":["ex/HEAD/init.html#git_threads_init-14"],"log.c":["ex/HEAD/log.html#git_threads_init-53"],"network/git2.c":["ex/HEAD/network/git2.html#git_threads_init-5"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_threads_init-18"]}},"git_threads_shutdown":{"type":"function","file":"threads.h","line":45,"lineto":45,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Shutdown the threading system.</p>\n","comments":"<p>If libgit2 has been built with GIT_THREADS\non, this function must be called before shutting\ndown the library.</p>\n\n<p>If libgit2 has been built without GIT_THREADS\nsupport, this function is a no-op.</p>\n","group":"threads","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_threads_shutdown-40"],"diff.c":["ex/HEAD/diff.html#git_threads_shutdown-21"],"init.c":["ex/HEAD/init.html#git_threads_shutdown-15"],"log.c":["ex/HEAD/log.html#git_threads_shutdown-54"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_threads_shutdown-19"]}},"git_trace_set":{"type":"function","file":"trace.h","line":63,"lineto":63,"args":[{"name":"level","type":"git_trace_level_t","comment":"Level to set tracing to"},{"name":"cb","type":"git_trace_callback","comment":"Function to call with trace data"}],"argline":"git_trace_level_t level, git_trace_callback cb","sig":"git_trace_level_t::git_trace_callback","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Sets the system tracing configuration to the specified level with the\nspecified callback. When system events occur at a level equal to, or\nlower than, the given level they will be reported to the given callback.</p>\n","comments":"","group":"trace"},"git_cred_has_username":{"type":"function","file":"transport.h","line":84,"lineto":84,"args":[{"name":"cred","type":"git_cred *","comment":"object to check"}],"argline":"git_cred *cred","sig":"git_cred *","return":{"type":"int","comment":"1 if the credential object has non-NULL username, 0 otherwise"},"description":"<p>Check whether a credential object contains username information.</p>\n","comments":"","group":"cred"},"git_cred_userpass_plaintext_new":{"type":"function","file":"transport.h","line":95,"lineto":98,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"The username of the credential."},{"name":"password","type":"const char *","comment":"The password of the credential."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *password","sig":"git_cred **::const char *::const char *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new plain-text username and password credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred","examples":{"network/common.c":["ex/HEAD/network/common.html#git_cred_userpass_plaintext_new-1"]}},"git_cred_ssh_keyfile_passphrase_new":{"type":"function","file":"transport.h","line":111,"lineto":116,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"username to use to authenticate"},{"name":"publickey","type":"const char *","comment":"The path to the public key of the credential."},{"name":"privatekey","type":"const char *","comment":"The path to the private key of the credential."},{"name":"passphrase","type":"const char *","comment":"The passphrase of the credential."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *publickey,\n\tconst char *privatekey,\n const char *passphrase","sig":"git_cred **::const char *::const char *::const char *::const char *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new ssh key file and passphrase credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred"},"git_cred_ssh_publickey_new":{"type":"function","file":"transport.h","line":130,"lineto":136,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"username to use to authenticate"},{"name":"publickey","type":"const char *","comment":"The bytes of the public key."},{"name":"publickey_len","type":"size_t","comment":"The length of the public key in bytes."},{"name":"sign_fn","type":"git_cred_sign_callback","comment":"The callback method for authenticating."},{"name":"sign_data","type":"void *","comment":"The abstract data sent to the sign_callback method."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *publickey,\n size_t publickey_len,\n git_cred_sign_callback sign_fn,\n void *sign_data","sig":"git_cred **::const char *::const char *::size_t::git_cred_sign_callback::void *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new ssh public key credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred"},"git_transport_new":{"type":"function","file":"transport.h","line":251,"lineto":257,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"url","type":"const char *","comment":"The URL to connect to"}],"argline":"git_transport **out, git_remote *owner, const char *url","sig":"git_transport **::git_remote *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Function to use to create a transport from a URL. The transport database\nis scanned to find a transport that implements the scheme of the URI (i.e.\ngit:// or http://) and a transport object is returned to the caller.</p>\n","comments":"","group":"transport"},"git_transport_dummy":{"type":"function","file":"transport.h","line":267,"lineto":270,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"You must pass NULL for this parameter."}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the dummy transport.</p>\n","comments":"","group":"transport"},"git_transport_local":{"type":"function","file":"transport.h","line":280,"lineto":283,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"You must pass NULL for this parameter."}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the local transport.</p>\n","comments":"","group":"transport"},"git_transport_smart":{"type":"function","file":"transport.h","line":293,"lineto":382,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"A pointer to a git_smart_subtransport_definition"}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the smart transport.</p>\n","comments":"","group":"transport"},"git_smart_subtransport_http":{"type":"function","file":"transport.h","line":393,"lineto":395,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the http subtransport. This subtransport\nalso supports https. On Win32, this subtransport may be implemented\nusing the WinHTTP library.</p>\n","comments":"","group":"smart"},"git_smart_subtransport_git":{"type":"function","file":"transport.h","line":404,"lineto":406,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the git subtransport.</p>\n","comments":"","group":"smart"},"git_smart_subtransport_ssh":{"type":"function","file":"transport.h","line":415,"lineto":421,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the ssh subtransport.</p>\n","comments":"","group":"smart"},"git_tree_lookup":{"type":"function","file":"tree.h","line":32,"lineto":33,"args":[{"name":"out","type":"git_tree **","comment":"Pointer to the looked up tree"},{"name":"repo","type":"git_repository *","comment":"The repo to use when locating the tree."},{"name":"id","type":"const git_oid *","comment":"Identity of the tree to locate."}],"argline":"git_tree **out, git_repository *repo, const git_oid *id","sig":"git_tree **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tree object from the repository.</p>\n","comments":"","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_lookup-74","ex/HEAD/general.html#git_tree_lookup-75"],"init.c":["ex/HEAD/init.html#git_tree_lookup-16"]}},"git_tree_lookup_prefix":{"type":"function","file":"tree.h","line":47,"lineto":51,"args":[{"name":"out","type":"git_tree **","comment":"pointer to the looked up tree"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tree."},{"name":"id","type":"const git_oid *","comment":"identity of the tree to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_tree **out,\n\tgit_repository *repo,\n\tconst git_oid *id,\n\tsize_t len","sig":"git_tree **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tree object from the repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"tree"},"git_tree_free":{"type":"function","file":"tree.h","line":63,"lineto":63,"args":[{"name":"tree","type":"git_tree *","comment":"The tree to close"}],"argline":"git_tree *tree","sig":"git_tree *","return":{"type":"void"},"description":"<p>Close an open tree</p>\n","comments":"<p>You can no longer use the git_tree pointer after this call.</p>\n\n<p>IMPORTANT: You MUST call this method when you stop using a tree to\nrelease memory. Failure to do so will cause a memory leak.</p>\n","group":"tree","examples":{"diff.c":["ex/HEAD/diff.html#git_tree_free-22","ex/HEAD/diff.html#git_tree_free-23"],"init.c":["ex/HEAD/init.html#git_tree_free-17"],"log.c":["ex/HEAD/log.html#git_tree_free-55","ex/HEAD/log.html#git_tree_free-56","ex/HEAD/log.html#git_tree_free-57","ex/HEAD/log.html#git_tree_free-58","ex/HEAD/log.html#git_tree_free-59"]}},"git_tree_id":{"type":"function","file":"tree.h","line":71,"lineto":71,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"const git_oid *","comment":"object identity for the tree."},"description":"<p>Get the id of a tree.</p>\n","comments":"","group":"tree"},"git_tree_owner":{"type":"function","file":"tree.h","line":79,"lineto":79,"args":[{"name":"tree","type":"const git_tree *","comment":"A previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"git_repository *","comment":"Repository that contains this tree."},"description":"<p>Get the repository that contains the tree.</p>\n","comments":"","group":"tree"},"git_tree_entrycount":{"type":"function","file":"tree.h","line":87,"lineto":87,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"size_t","comment":"the number of entries in the tree"},"description":"<p>Get the number of entries listed in a tree</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entrycount-41"],"general.c":["ex/HEAD/general.html#git_tree_entrycount-76"]}},"git_tree_entry_byname":{"type":"function","file":"tree.h","line":99,"lineto":100,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"filename","type":"const char *","comment":"the filename of the desired entry"}],"argline":"const git_tree *tree, const char *filename","sig":"const git_tree *::const char *","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by its filename</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_entry_byname-77"]}},"git_tree_entry_byindex":{"type":"function","file":"tree.h","line":112,"lineto":113,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"idx","type":"size_t","comment":"the position in the entry list"}],"argline":"const git_tree *tree, size_t idx","sig":"const git_tree *::size_t","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by its position in the tree</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_byindex-42"],"general.c":["ex/HEAD/general.html#git_tree_entry_byindex-78"]}},"git_tree_entry_byoid":{"type":"function","file":"tree.h","line":127,"lineto":128,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"oid","type":"const git_oid *","comment":"the sha being looked for"}],"argline":"const git_tree *tree, const git_oid *oid","sig":"const git_tree *::const git_oid *","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by SHA value.</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n\n<p>Warning: this must examine every entry in the tree, so it is not fast.</p>\n","group":"tree"},"git_tree_entry_bypath":{"type":"function","file":"tree.h","line":142,"lineto":145,"args":[{"name":"out","type":"git_tree_entry **","comment":"Pointer where to store the tree entry"},{"name":"root","type":"const git_tree *","comment":"Previously loaded tree which is the root of the relative path"},{"name":"path","type":"const char *","comment":"Path to the contained entry"}],"argline":"git_tree_entry **out,\n\tconst git_tree *root,\n\tconst char *path","sig":"git_tree_entry **::const git_tree *::const char *","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if the path does not exist"},"description":"<p>Retrieve a tree entry contained in a tree or in any of its subtrees,\ngiven its relative path.</p>\n","comments":"<p>Unlike the other lookup functions, the returned tree entry is owned by\nthe user and must be freed explicitly with <code>git_tree_entry_free()</code>.</p>\n","group":"tree"},"git_tree_entry_dup":{"type":"function","file":"tree.h","line":156,"lineto":156,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"A tree entry to duplicate"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_tree_entry *","comment":"a copy of the original entry or NULL on error (alloc failure)"},"description":"<p>Duplicate a tree entry</p>\n","comments":"<p>Create a copy of a tree entry. The returned copy is owned by the user,\nand must be freed explicitly with <code>git_tree_entry_free()</code>.</p>\n","group":"tree"},"git_tree_entry_free":{"type":"function","file":"tree.h","line":167,"lineto":167,"args":[{"name":"entry","type":"git_tree_entry *","comment":"The entry to free"}],"argline":"git_tree_entry *entry","sig":"git_tree_entry *","return":{"type":"void"},"description":"<p>Free a user-owned tree entry</p>\n","comments":"<p>IMPORTANT: This function is only needed for tree entries owned by the\nuser, such as the ones returned by <code>git_tree_entry_dup()</code> or\n<code>git_tree_entry_bypath()</code>.</p>\n","group":"tree"},"git_tree_entry_name":{"type":"function","file":"tree.h","line":175,"lineto":175,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"const char *","comment":"the name of the file"},"description":"<p>Get the filename of a tree entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_name-43"],"general.c":["ex/HEAD/general.html#git_tree_entry_name-79","ex/HEAD/general.html#git_tree_entry_name-80"]}},"git_tree_entry_id":{"type":"function","file":"tree.h","line":183,"lineto":183,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"const git_oid *","comment":"the oid of the object"},"description":"<p>Get the id of the object pointed by the entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_id-44"]}},"git_tree_entry_type":{"type":"function","file":"tree.h","line":191,"lineto":191,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_otype","comment":"the type of the pointed object"},"description":"<p>Get the type of the object pointed by the entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_type-45"]}},"git_tree_entry_filemode":{"type":"function","file":"tree.h","line":199,"lineto":199,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_filemode_t","comment":"filemode as an integer"},"description":"<p>Get the UNIX file attributes of a tree entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_filemode-46"]}},"git_tree_entry_cmp":{"type":"function","file":"tree.h","line":208,"lineto":208,"args":[{"name":"e1","type":"const git_tree_entry *","comment":"first tree entry"},{"name":"e2","type":"const git_tree_entry *","comment":"second tree entry"}],"argline":"const git_tree_entry *e1, const git_tree_entry *e2","sig":"const git_tree_entry *::const git_tree_entry *","return":{"type":"int","comment":"<0 if e1 is before e2, 0 if e1 == e2, >0 if e1 is after e2"},"description":"<p>Compare two tree entries</p>\n","comments":"","group":"tree"},"git_tree_entry_to_object":{"type":"function","file":"tree.h","line":220,"lineto":223,"args":[{"name":"object_out","type":"git_object **","comment":"pointer to the converted object"},{"name":"repo","type":"git_repository *","comment":"repository where to lookup the pointed object"},{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"git_object **object_out,\n\tgit_repository *repo,\n\tconst git_tree_entry *entry","sig":"git_object **::git_repository *::const git_tree_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Convert a tree entry to the git_object it points to.</p>\n","comments":"<p>You must call <code>git_object_free()</code> on the object when you are done with it.</p>\n","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_entry_to_object-81"]}},"git_treebuilder_create":{"type":"function","file":"tree.h","line":241,"lineto":242,"args":[{"name":"out","type":"git_treebuilder **","comment":"Pointer where to store the tree builder"},{"name":"source","type":"const git_tree *","comment":"Source tree to initialize the builder (optional)"}],"argline":"git_treebuilder **out, const git_tree *source","sig":"git_treebuilder **::const git_tree *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Create a new tree builder.</p>\n","comments":"<p>The tree builder can be used to create or modify trees in memory and\nwrite them as tree objects to the database.</p>\n\n<p>If the <code>source</code> parameter is not NULL, the tree builder will be\ninitialized with the entries of the given tree.</p>\n\n<p>If the <code>source</code> parameter is NULL, the tree builder will start with no\nentries and will have to be filled manually.</p>\n","group":"treebuilder"},"git_treebuilder_clear":{"type":"function","file":"tree.h","line":249,"lineto":249,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Builder to clear"}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"void"},"description":"<p>Clear all the entires in the builder</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_entrycount":{"type":"function","file":"tree.h","line":257,"lineto":257,"args":[{"name":"bld","type":"git_treebuilder *","comment":"a previously loaded treebuilder."}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"unsigned int","comment":"the number of entries in the treebuilder"},"description":"<p>Get the number of entries listed in a treebuilder</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_free":{"type":"function","file":"tree.h","line":268,"lineto":268,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Builder to free"}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"void"},"description":"<p>Free a tree builder</p>\n","comments":"<p>This will clear all the entries and free to builder.\nFailing to free the builder after you&#39;re done using it\nwill result in a memory leak</p>\n","group":"treebuilder"},"git_treebuilder_get":{"type":"function","file":"tree.h","line":280,"lineto":281,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Name of the entry"}],"argline":"git_treebuilder *bld, const char *filename","sig":"git_treebuilder *::const char *","return":{"type":"const git_tree_entry *","comment":"pointer to the entry; NULL if not found"},"description":"<p>Get an entry from the builder from its filename</p>\n","comments":"<p>The returned entry is owned by the builder and should\nnot be freed manually.</p>\n","group":"treebuilder"},"git_treebuilder_insert":{"type":"function","file":"tree.h","line":308,"lineto":313,"args":[{"name":"out","type":"const git_tree_entry **","comment":"Pointer to store the entry (optional)"},{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Filename of the entry"},{"name":"id","type":"const git_oid *","comment":"SHA1 oid of the entry"},{"name":"filemode","type":"git_filemode_t","comment":"Folder attributes of the entry. This parameter must be valued with one of the following entries: 0040000, 0100644, 0100755, 0120000 or 0160000."}],"argline":"const git_tree_entry **out,\n\tgit_treebuilder *bld,\n\tconst char *filename,\n\tconst git_oid *id,\n\tgit_filemode_t filemode","sig":"const git_tree_entry **::git_treebuilder *::const char *::const git_oid *::git_filemode_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an entry to the builder</p>\n","comments":"<p>Insert a new entry for <code>filename</code> in the builder with the\ngiven attributes.</p>\n\n<p>If an entry named <code>filename</code> already exists, its attributes\nwill be updated with the given ones.</p>\n\n<p>The optional pointer <code>out</code> can be used to retrieve a pointer to\nthe newly created/updated entry. Pass NULL if you do not need it.</p>\n\n<p>No attempt is being made to ensure that the provided oid points\nto an existing git object in the object database, nor that the\nattributes make sense regarding the type of the pointed at object.</p>\n","group":"treebuilder"},"git_treebuilder_remove":{"type":"function","file":"tree.h","line":321,"lineto":325,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Filename of the entry to remove"}],"argline":"git_treebuilder *bld, const char *filename","sig":"git_treebuilder *::const char *","return":{"type":"int"},"description":"<p>Remove an entry from the builder by its filename</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_filter":{"type":"function","file":"tree.h","line":338,"lineto":341,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filter","type":"git_treebuilder_filter_cb","comment":"Callback to filter entries"},{"name":"payload","type":"void *","comment":"Extra data to pass to filter"}],"argline":"git_treebuilder *bld,\n\tgit_treebuilder_filter_cb filter,\n\tvoid *payload","sig":"git_treebuilder *::git_treebuilder_filter_cb::void *","return":{"type":"void"},"description":"<p>Filter the entries in the tree</p>\n","comments":"<p>The <code>filter</code> callback will be called for each entry in the tree with a\npointer to the entry and the provided <code>payload</code>; if the callback returns\nnon-zero, the entry will be filtered (removed from the builder).</p>\n","group":"treebuilder"},"git_treebuilder_write":{"type":"function","file":"tree.h","line":354,"lineto":355,"args":[{"name":"id","type":"git_oid *","comment":"Pointer to store the OID of the newly written tree"},{"name":"repo","type":"git_repository *","comment":"Repository in which to store the object"},{"name":"bld","type":"git_treebuilder *","comment":"Tree builder to write"}],"argline":"git_oid *id, git_repository *repo, git_treebuilder *bld","sig":"git_oid *::git_repository *::git_treebuilder *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write the contents of the tree builder as a tree object</p>\n","comments":"<p>The tree builder will be written to the given <code>repo</code>, and its\nidentifying SHA1 hash will be stored in the <code>id</code> pointer.</p>\n","group":"treebuilder"},"git_tree_walk":{"type":"function","file":"tree.h","line":385,"lineto":389,"args":[{"name":"tree","type":"const git_tree *","comment":"The tree to walk"},{"name":"mode","type":"git_treewalk_mode","comment":"Traversal mode (pre or post-order)"},{"name":"callback","type":"git_treewalk_cb","comment":"Function to call on each tree entry"},{"name":"payload","type":"void *","comment":"Opaque pointer to be passed on each callback"}],"argline":"const git_tree *tree,\n\tgit_treewalk_mode mode,\n\tgit_treewalk_cb callback,\n\tvoid *payload","sig":"const git_tree *::git_treewalk_mode::git_treewalk_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Traverse the entries in a tree and its subtrees in post or pre order.</p>\n","comments":"<p>The entries will be traversed in the specified order, children subtrees\nwill be automatically loaded as required, and the <code>callback</code> will be\ncalled once per entry with the current (relative) root for the entry and\nthe entry data itself.</p>\n\n<p>If the callback returns a positive value, the passed entry will be\nskipped on the traversal (in pre mode). A negative value stops the walk.</p>\n","group":"tree"}},"globals":{"GIT_ATTR_TRUE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_TRUE_T)","file":"attr.h","line":33,"comments":"GIT_ATTR_TRUE checks if an attribute is set on. In core git\nparlance, this the value for \"Set\" attributes.\n\nFor example, if the attribute file contains:\n\n *.c foo\n\nThen for file `xyz.c` looking up attribute \"foo\" gives a value for\nwhich `GIT_ATTR_TRUE(value)` is true."},"GIT_ATTR_FALSE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_FALSE_T)","file":"attr.h","line":47,"comments":"GIT_ATTR_FALSE checks if an attribute is set off. In core git\nparlance, this is the value for attributes that are \"Unset\" (not to\nbe confused with values that a \"Unspecified\").\n\nFor example, if the attribute file contains:\n\n *.h -foo\n\nThen for file `zyx.h` looking up attribute \"foo\" gives a value for\nwhich `GIT_ATTR_FALSE(value)` is true."},"GIT_ATTR_UNSPECIFIED(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_UNSPECIFIED_T)","file":"attr.h","line":65,"comments":"GIT_ATTR_UNSPECIFIED checks if an attribute is unspecified. This\nmay be due to the attribute not being mentioned at all or because\nthe attribute was explicitly set unspecified via the `!` operator.\n\nFor example, if the attribute file contains:\n\n *.c foo\n *.h -foo\n onefile.c !foo\n\nThen for `onefile.c` looking up attribute \"foo\" yields a value with\n`GIT_ATTR_UNSPECIFIED(value)` of true. Also, looking up \"foo\" on\nfile `onefile.rb` or looking up \"bar\" on any file will all give\n`GIT_ATTR_UNSPECIFIED(value)` of true."},"GIT_ATTR_HAS_VALUE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_VALUE_T)","file":"attr.h","line":77,"comments":"GIT_ATTR_HAS_VALUE checks if an attribute is set to a value (as\nopposed to TRUE, FALSE or UNSPECIFIED). This would be the case if\nfor a file with something like:\n\n *.txt eol=lf\n\nGiven this, looking up \"eol\" for `onefile.txt` will give back the\nstring \"lf\" and `GIT_ATTR_SET_TO_VALUE(attr)` will return true."},"GIT_ATTR_CHECK_NO_SYSTEM":{"value":"(1 << 2)","file":"attr.h","line":125,"comments":"Check attribute flags: Using the system attributes file.\n\nNormally, attribute checks include looking in the /etc (or system\nequivalent) directory for a `gitattributes` file. Passing this\nflag will cause attribute checks to ignore that file."},"GIT_BEGIN_DECL":{"value":"","file":"common.h","line":24,"comments":"Start declarations in C mode"},"GIT_END_DECL":{"value":"","file":"common.h","line":26,"comments":"End declarations in C mode"},"GIT_EXTERN(type)":{"value":"extern __attribute__((visibility(\"default\"))) type","file":"common.h","line":30,"comments":"Declare a public function exported for application use."},"GIT_INLINE(type)":{"value":"static __inline type","file":"common.h","line":41,"comments":"Declare a function as always inlined."},"GIT_FORMAT_PRINTF(a,b)":{"value":"__attribute__((format (printf, a, b)))","file":"common.h","line":48,"comments":"Declare a function's takes printf style arguments."},"GIT_PATH_LIST_SEPARATOR":{"value":"';'","file":"common.h","line":77,"comments":"The separator used in path list strings (ie like in the PATH\nenvironment variable). A semi-colon \";\" is used on Windows, and\na colon \":\" for all other systems."},"GIT_PATH_MAX":{"value":"4096","file":"common.h","line":86,"comments":"The maximum length of a valid git path."},"GIT_OID_HEX_ZERO":{"value":"\"0000000000000000000000000000000000000000\"","file":"common.h","line":91,"comments":"The string representation of the null object ID."},"GIT_INDEX_STAGE_ANY":{"value":"-1","file":"index.h","line":147,"comments":"Match any index stage.\n\nSome index APIs take a stage to match; pass this value to match\nany entry matching the path regardless of stage."},"GIT_OID_RAWSZ":{"value":"20","file":"oid.h","line":23,"comments":"Size (in bytes) of a raw/binary oid"},"GIT_OID_HEXSZ":{"value":"(GIT_OID_RAWSZ * 2)","file":"oid.h","line":26,"comments":"Size (in bytes) of a hex formatted oid"},"GIT_OID_MINPREFIXLEN":{"value":"4","file":"oid.h","line":30,"comments":"Minimum length (in number of hex characters,\ni.e. packets of 4 bits) of an oid prefix"},"GIT_SORT_NONE":{"value":"(0)","file":"revwalk.h","line":29,"comments":"Sort the repository contents in no particular ordering;\nthis sorting is arbitrary, implementation-specific\nand subject to change at any time.\nThis is the default sorting for new walkers."},"GIT_SORT_TOPOLOGICAL":{"value":"(1 << 0)","file":"revwalk.h","line":36,"comments":"Sort the repository contents in topological order\n(parents before children); this sorting mode\ncan be combined with time sorting."},"GIT_SORT_TIME":{"value":"(1 << 1)","file":"revwalk.h","line":43,"comments":"Sort the repository contents by commit time;\nthis sorting mode can be combined with\ntopological sorting."},"GIT_SORT_REVERSE":{"value":"(1 << 2)","file":"revwalk.h","line":50,"comments":"Iterate through the repository contents in reverse\norder; this sorting mode can be combined with\nany of the above."}},"types":[["GIT_ATTR_CHECK",{"type":"enum","file":"attr.h","line":114,"lineto":116,"block":"GIT_ATTR_CHECK_FILE_THEN_INDEX\nGIT_ATTR_CHECK_INDEX_THEN_FILE\nGIT_ATTR_CHECK_INDEX_ONLY","tdef":null,"comments":"Check attribute flags: Reading values from index and working directory.\n\nWhen checking attributes, it is possible to check attribute files\nin both the working directory (if there is one) and the index (if\nthere is one). You can explicitly choose where to check and in\nwhich order using the following flags.\n\nCore git usually checks the working directory then the index,\nexcept during a checkout when it checks the index first. It will\nuse index only for creating archives or for a bare repo (if an\nindex has been specified for the bare repo).","used":{"returns":[],"needs":[]}}],["GIT_IDXENTRY",{"type":"enum","file":"index.h","line":108,"lineto":119,"block":"GIT_IDXENTRY_UPDATE\nGIT_IDXENTRY_REMOVE\nGIT_IDXENTRY_UPTODATE\nGIT_IDXENTRY_ADDED\nGIT_IDXENTRY_HASHED\nGIT_IDXENTRY_UNHASHED\nGIT_IDXENTRY_WT_REMOVE\nGIT_IDXENTRY_CONFLICTED\nGIT_IDXENTRY_UNPACKED\nGIT_IDXENTRY_NEW_SKIP_WORKTREE","tdef":null,"comments":"Bitmasks for in-memory only fields of `git_index_entry`'s `flags_extended`\n\nThese bitmasks match the other fields in the `git_index_entry`\n`flags_extended` value that are only used in-memory by libgit2. You\ncan use them to interpret the data in the `flags_extended`.","used":{"returns":[],"needs":[]}}],["git_blob",{"type":"struct","value":"git_blob","file":"types.h","line":117,"lineto":117,"block":"","tdef":"typedef","comments":"In-memory representation of a blob object.","used":{"returns":[],"needs":["git_blob_free","git_blob_id","git_blob_is_binary","git_blob_lookup","git_blob_lookup_prefix","git_blob_owner","git_blob_rawcontent","git_blob_rawsize","git_diff_blob_to_buffer","git_diff_blobs","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs"]}}],["git_branch_t",{"type":"enum","file":"types.h","line":190,"lineto":193,"block":"GIT_BRANCH_LOCAL\nGIT_BRANCH_REMOTE","tdef":"typedef","comments":"Basic type of any Git branch.","used":{"returns":[],"needs":["git_branch_lookup"]}}],["git_cap_t",{"type":"enum","file":"common.h","line":106,"lineto":110,"block":"GIT_CAP_THREADS\nGIT_CAP_HTTPS\nGIT_CAP_SSH","tdef":"typedef","comments":"Combinations of these values describe the capabilities of libgit2.","used":{"returns":[],"needs":[]}}],["git_checkout_notify_cb",{"type":"function pointer","value":"git_checkout_notify_cb","file":"checkout.h","line":191,"lineto":197,"comments":"Checkout notification callback function","used":{"returns":[],"needs":[]}}],["git_checkout_notify_t",{"type":"enum","file":"checkout.h","line":179,"lineto":188,"block":"GIT_CHECKOUT_NOTIFY_NONE\nGIT_CHECKOUT_NOTIFY_CONFLICT\nGIT_CHECKOUT_NOTIFY_DIRTY\nGIT_CHECKOUT_NOTIFY_UPDATED\nGIT_CHECKOUT_NOTIFY_UNTRACKED\nGIT_CHECKOUT_NOTIFY_IGNORED\nGIT_CHECKOUT_NOTIFY_ALL","tdef":"typedef","comments":"Checkout notification flags\n\nCheckout will invoke an options notification callback (`notify_cb`) for\ncertain cases - you pick which ones via `notify_flags`:\n\n- GIT_CHECKOUT_NOTIFY_CONFLICT invokes checkout on conflicting paths.\n\n- GIT_CHECKOUT_NOTIFY_DIRTY notifies about \"dirty\" files, i.e. those that\n do not need an update but no longer match the baseline. Core git\n displays these files when checkout runs, but won't stop the checkout.\n\n- GIT_CHECKOUT_NOTIFY_UPDATED sends notification for any file changed.\n\n- GIT_CHECKOUT_NOTIFY_UNTRACKED notifies about untracked files.\n\n- GIT_CHECKOUT_NOTIFY_IGNORED notifies about ignored files.\n\nReturning a non-zero value from this callback will cancel the checkout.\nNotification callbacks are made prior to modifying any files on disk.","used":{"returns":[],"needs":[]}}],["git_checkout_opts",{"type":"struct","value":"git_checkout_opts","file":"checkout.h","line":214,"lineto":241,"block":"unsigned int version\nunsigned int checkout_strategy\nint disable_filters\nunsigned int dir_mode\nunsigned int file_mode\nint file_open_flags\nunsigned int notify_flags\ngit_checkout_notify_cb notify_cb\nvoid *notify_payload\ngit_checkout_progress_cb progress_cb\nvoid *progress_payload\ngit_strarray paths\ngit_tree *baseline\nconst char *target_directory","tdef":"typedef","comments":"Checkout options structure\n\nZero out for defaults. Initialize with `GIT_CHECKOUT_OPTS_INIT` macro to\ncorrectly set the `version` field. E.g.\n\n\tgit_checkout_opts opts = GIT_CHECKOUT_OPTS_INIT;","used":{"returns":[],"needs":["git_checkout_head","git_checkout_index","git_checkout_tree"]}}],["git_checkout_progress_cb",{"type":"function pointer","value":"git_checkout_progress_cb","file":"checkout.h","line":200,"lineto":204,"comments":"Checkout progress notification function","used":{"returns":[],"needs":[]}}],["git_clone_options",{"type":"struct","value":"git_clone_options","file":"clone.h","line":65,"lineto":87,"block":"unsigned int version\ngit_checkout_opts checkout_opts\nint bare\ngit_transfer_progress_callback fetch_progress_cb\nvoid *fetch_progress_payload\nconst char *remote_name\nconst char *pushurl\nconst char *fetch_spec\nconst char *push_spec\ngit_cred_acquire_cb cred_acquire_cb\nvoid *cred_acquire_payload\ngit_transport_flags_t transport_flags\ngit_transport *transport\ngit_remote_callbacks *remote_callbacks\ngit_remote_autotag_option_t remote_autotag\nconst char* checkout_branch","tdef":"typedef","comments":"Clone options structure\n\nUse zeros to indicate default settings. It's easiest to use the\n`GIT_CLONE_OPTIONS_INIT` macro:\n\n\tgit_clone_options opts = GIT_CLONE_OPTIONS_INIT;\n\n- `checkout_opts` is options for the checkout step. To disable checkout,\n set the `checkout_strategy` to GIT_CHECKOUT_DEFAULT.\n- `bare` should be set to zero to create a standard repo, non-zero for\n a bare repo\n- `fetch_progress_cb` is optional callback for fetch progress. Be aware that\n this is called inline with network and indexing operations, so performance\n may be affected.\n- `fetch_progress_payload` is payload for fetch_progress_cb\n\n ** \"origin\" remote options: **\n- `remote_name` is the name given to the \"origin\" remote. The default is\n \"origin\".\n- `pushurl` is a URL to be used for pushing. NULL means use the fetch url.\n- `fetch_spec` is the fetch specification to be used for fetching. NULL\n results in the same behavior as GIT_REMOTE_DEFAULT_FETCH.\n- `push_spec` is the fetch specification to be used for pushing. NULL means\n use the same spec as for fetching.\n- `cred_acquire_cb` is a callback to be used if credentials are required\n during the initial fetch.\n- `cred_acquire_payload` is the payload for the above callback.\n- `transport_flags` is flags used to create transport if no transport is\n provided.\n- `transport` is a custom transport to be used for the initial fetch. NULL\n means use the transport autodetected from the URL.\n- `remote_callbacks` may be used to specify custom progress callbacks for\n the origin remote before the fetch is initiated.\n- `remote_autotag` may be used to specify the autotag setting before the\n initial fetch. The default is GIT_REMOTE_DOWNLOAD_TAGS_ALL.\n- `checkout_branch` gives the name of the branch to checkout. NULL means\n use the remote's HEAD.","used":{"returns":[],"needs":["git_clone"]}}],["git_commit",{"type":"struct","value":"git_commit","file":"types.h","line":120,"lineto":120,"block":"","tdef":"typedef","comments":"Parsed representation of a commit object.","used":{"returns":[],"needs":["git_branch_create","git_commit_author","git_commit_committer","git_commit_create","git_commit_free","git_commit_id","git_commit_lookup","git_commit_lookup_prefix","git_commit_message","git_commit_message_encoding","git_commit_nth_gen_ancestor","git_commit_owner","git_commit_parent","git_commit_parent_id","git_commit_parentcount","git_commit_raw_header","git_commit_time","git_commit_time_offset","git_commit_tree","git_commit_tree_id"]}}],["git_config",{"type":"struct","value":"git_config","file":"types.h","line":138,"lineto":138,"block":"","tdef":"typedef","comments":"Memory representation of a set of config files","used":{"returns":[],"needs":["git_config_add_backend","git_config_add_file_ondisk","git_config_delete_entry","git_config_foreach","git_config_foreach_match","git_config_free","git_config_get_bool","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_mapped","git_config_get_multivar_foreach","git_config_get_string","git_config_iterator_glob_new","git_config_iterator_new","git_config_multivar_iterator_new","git_config_new","git_config_open_default","git_config_open_global","git_config_open_level","git_config_open_ondisk","git_config_refresh","git_config_set_bool","git_config_set_int32","git_config_set_int64","git_config_set_multivar","git_config_set_string","git_repository_config","git_repository_set_config"]}}],["git_config_backend",{"type":"struct","value":"git_config_backend","file":"types.h","line":141,"lineto":141,"block":"","tdef":"typedef","comments":"Interface to access a configuration file","used":{"returns":[],"needs":["git_config_add_backend","git_config_backend_foreach_match"]}}],["git_config_iterator",{"type":"struct","value":"git_config_iterator","file":"sys/config.h","line":34,"lineto":43,"block":"git_config_backend *backend\nunsigned int flags\nint (*next)(git_config_entry **entry, git_config_iterator *iter)\nvoid (*free)(git_config_iterator *iter)","tdef":null,"comments":"Every iterator must have this struct as its first element, so the\nAPI can talk to it. You'd define your iterator as\n\n struct my_iterator {\n git_config_iterator parent;\n ...\n }\n\nand assign `iter->parent.backend` to your `git_config_backend`.","used":{"returns":[],"needs":["git_config_iterator_free","git_config_iterator_glob_new","git_config_iterator_new","git_config_multivar_iterator_new","git_config_next"]}}],["git_cred_acquire_cb",{"type":"function pointer","value":"git_cred_acquire_cb","file":"transport.h","line":149,"lineto":239,"comments":"Signature of a function which acquires a credential object.\n\n@param cred The newly created credential object.\n@param url The resource for which we are demanding a credential.\n@param username_from_url The username that was embedded in a \"user@host\"\n remote url, or NULL if not included.\n@param allowed_types A bitmask stating which cred types are OK to return.\n@param payload The payload provided when specifying this callback.\n@return 0 for success or an error code for failure","used":{"returns":[],"needs":["git_remote_set_cred_acquire_cb"]}}],["git_cred_userpass_payload",{"type":"struct","value":"git_cred_userpass_payload","file":"cred_helpers.h","line":24,"lineto":27,"block":"char *username\nchar *password","tdef":"typedef","comments":"Payload for git_cred_stock_userpass_plaintext.","used":{"returns":[],"needs":[]}}],["git_delta_t",{"type":"enum","file":"diff.h","line":190,"lineto":200,"block":"GIT_DELTA_UNMODIFIED\nGIT_DELTA_ADDED\nGIT_DELTA_DELETED\nGIT_DELTA_MODIFIED\nGIT_DELTA_RENAMED\nGIT_DELTA_COPIED\nGIT_DELTA_IGNORED\nGIT_DELTA_UNTRACKED\nGIT_DELTA_TYPECHANGE","tdef":"typedef","comments":"What type of change is described by a git_diff_delta?\n\n`GIT_DELTA_RENAMED` and `GIT_DELTA_COPIED` will only show up if you run\n`git_diff_find_similar()` on the diff list object.\n\n`GIT_DELTA_TYPECHANGE` only shows up given `GIT_DIFF_INCLUDE_TYPECHANGE`\nin the option flags (otherwise type changes will be split into ADDED /\nDELETED pairs).","used":{"returns":[],"needs":["git_diff_num_deltas_of_type","git_diff_status_char"]}}],["git_diff_delta",{"type":"struct","value":"git_diff_delta","file":"diff.h","line":268,"lineto":274,"block":"git_diff_file old_file\ngit_diff_file new_file\ngit_delta_t status\nuint32_t similarity\nuint32_t flags","tdef":"typedef","comments":"Description of changes to one entry.\n\nWhen iterating over a diff list object, this will be passed to most\ncallback functions and you can use the contents to understand exactly\nwhat has changed.\n\nThe `old_file` represents the \"from\" side of the diff and the `new_file`\nrepresents to \"to\" side of the diff. What those means depend on the\nfunction that was used to generate the diff and will be documented below.\nYou can also use the `GIT_DIFF_REVERSE` flag to flip it around.\n\nAlthough the two sides of the delta are named \"old_file\" and \"new_file\",\nthey actually may correspond to entries that represent a file, a symbolic\nlink, a submodule commit id, or even a tree (if you are tracking type\nchanges or ignored/untracked directories).\n\nUnder some circumstances, in the name of efficiency, not all fields will\nbe filled in, but we generally try to fill in as much as possible. One\nexample is that the \"flags\" field may not have either the `BINARY` or the\n`NOT_BINARY` flag set to avoid examining file contents if you do not pass\nin hunk and/or line callbacks to the diff foreach iteration function. It\nwill just use the git attributes for those files.\n\nThe similarity score is zero unless you call `git_diff_find_similar()`\nwhich does a similarity analysis of files in the diff. Use that\nfunction to do rename and copy detection, and to split heavily modified\nfiles in add/delete pairs. After that call, deltas with a status of\nGIT_DELTA_RENAMED or GIT_DELTA_COPIED will have a similarity score\nbetween 0 and 100 indicating how similar the old and new sides are.\n\nIf you ask `git_diff_find_similar` to find heavily modified files to\nbreak, but to not *actually* break the records, then GIT_DELTA_MODIFIED\nrecords may have a non-zero similarity score if the self-similarity is\nbelow the split threshold. To display this value like core Git, invert\nthe score (a la `printf(\"M%03d\", 100 - delta->similarity)`).","used":{"returns":["git_diff_patch_delta","git_pathspec_match_list_diff_entry"],"needs":["git_diff_get_patch"]}}],["git_diff_file",{"type":"struct","value":"git_diff_file","file":"diff.h","line":223,"lineto":229,"block":"git_oid oid\nconst char *path\ngit_off_t size\nuint32_t flags\nuint16_t mode","tdef":"typedef","comments":"Description of one side of a diff entry.\n\nAlthough this is called a \"file\", it may actually represent a file, a\nsymbolic link, a submodule commit id, or even a tree (although that only\nif you are tracking type changes or ignored/untracked directories).\n\nThe `oid` is the `git_oid` of the item. If the entry represents an\nabsent side of a diff (e.g. the `old_file` of a `GIT_DELTA_ADDED` delta),\nthen the oid will be zeroes.\n\n`path` is the NUL-terminated path to the entry relative to the working\ndirectory of the repository.\n\n`size` is the size of the entry in bytes.\n\n`flags` is a combination of the `git_diff_flag_t` types\n\n`mode` is, roughly, the stat() `st_mode` value for the item. This will\nbe restricted to one of the `git_filemode_t` values.","used":{"returns":[],"needs":[]}}],["git_diff_file_cb",{"type":"function pointer","value":"git_diff_file_cb","file":"diff.h","line":344,"lineto":347,"comments":"When iterating over a diff, callback that will be made per file.\n\n@param delta A pointer to the delta data for the file\n@param progress Goes from 0 to 1 over the diff list\n@param payload User-specified pointer from foreach function","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_foreach"]}}],["git_diff_find_options",{"type":"struct","value":"git_diff_find_options","file":"diff.h","line":497,"lineto":520,"block":"unsigned int version\nuint32_t flags\nuint16_t rename_threshold\nuint16_t rename_from_rewrite_threshold\nuint16_t copy_threshold\nuint16_t break_rewrite_threshold\nsize_t rename_limit\ngit_diff_similarity_metric *metric","tdef":"typedef","comments":"Control behavior of rename and copy detection\n\nThese options mostly mimic parameters that can be passed to git-diff.\n\n- `rename_threshold` is the same as the -M option with a value\n- `copy_threshold` is the same as the -C option with a value\n- `rename_from_rewrite_threshold` matches the top of the -B option\n- `break_rewrite_threshold` matches the bottom of the -B option\n- `rename_limit` is the maximum number of matches to consider for\n a particular file. This is a little different from the `-l` option\n to regular Git because we will still process up to this many matches\n before abandoning the search.\n\nThe `metric` option allows you to plug in a custom similarity metric.\nSet it to NULL for the default internal metric which is based on sampling\nhashes of ranges of data in the file. The default metric is a pretty\ngood similarity approximation that should work fairly well for both text\nand binary data, and is pretty fast with fixed memory overhead.","used":{"returns":[],"needs":["git_diff_find_similar"]}}],["git_diff_flag_t",{"type":"enum","file":"diff.h","line":174,"lineto":178,"block":"GIT_DIFF_FLAG_BINARY\nGIT_DIFF_FLAG_NOT_BINARY\nGIT_DIFF_FLAG_VALID_OID","tdef":"typedef","comments":"Flags for the delta object and the file objects on each side.\n\nThese flags are used for both the `flags` value of the `git_diff_delta`\nand the flags for the `git_diff_file` objects representing the old and\nnew sides of the delta. Values outside of this public range should be\nconsidered reserved for internal or future use.","used":{"returns":[],"needs":[]}}],["git_diff_hunk_cb",{"type":"function pointer","value":"git_diff_hunk_cb","file":"diff.h","line":362,"lineto":367,"comments":"When iterating over a diff, callback that will be made per hunk.","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_foreach"]}}],["git_diff_line_t",{"type":"enum","file":"diff.h","line":378,"lineto":395,"block":"GIT_DIFF_LINE_CONTEXT\nGIT_DIFF_LINE_ADDITION\nGIT_DIFF_LINE_DELETION\nGIT_DIFF_LINE_CONTEXT_EOFNL\nGIT_DIFF_LINE_ADD_EOFNL\nGIT_DIFF_LINE_DEL_EOFNL\nGIT_DIFF_LINE_FILE_HDR\nGIT_DIFF_LINE_HUNK_HDR\nGIT_DIFF_LINE_BINARY","tdef":"typedef","comments":"Line origin constants.\n\nThese values describe where a line came from and will be passed to\nthe git_diff_data_cb when iterating over a diff. There are some\nspecial origin constants at the end that are used for the text\noutput callbacks to demarcate lines that are actually part of\nthe file or hunk headers.","used":{"returns":[],"needs":[]}}],["git_diff_list",{"type":"struct","value":"git_diff_list","file":"diff.h","line":164,"lineto":164,"block":"","tdef":"typedef","comments":"The diff list object that contains all individual file deltas.\n\nThis is an opaque structure which will be allocated by one of the diff\ngenerator functions below (such as `git_diff_tree_to_tree`). You are\nresponsible for releasing the object memory when done, using the\n`git_diff_list_free()` function.","used":{"returns":[],"needs":["git_diff_find_similar","git_diff_foreach","git_diff_get_patch","git_diff_index_to_workdir","git_diff_is_sorted_icase","git_diff_list_free","git_diff_merge","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_print_compact","git_diff_print_patch","git_diff_print_raw","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_pathspec_match_diff"]}}],["git_diff_notify_cb",{"type":"function pointer","value":"git_diff_notify_cb","file":"diff.h","line":289,"lineto":293,"comments":"Diff notification callback function.\n\nThe callback will be called for each file, just before the `git_delta_t`\ngets inserted into the diff list.\n\nWhen the callback:\n- returns < 0, the diff process will be aborted.\n- returns > 0, the delta will not be inserted into the diff list, but the\n\tdiff process continues.\n- returns 0, the delta is inserted into the diff list, and the diff process\n\tcontinues.","used":{"returns":[],"needs":[]}}],["git_diff_options",{"type":"struct","value":"git_diff_options","file":"diff.h","line":320,"lineto":335,"block":"unsigned int version\nuint32_t flags\nuint16_t context_lines\nuint16_t interhunk_lines\nconst char *old_prefix\nconst char *new_prefix\ngit_strarray pathspec\ngit_off_t max_size\ngit_diff_notify_cb notify_cb\nvoid *notify_payload\ngit_submodule_ignore_t ignore_submodules","tdef":"typedef","comments":"Structure describing options about how the diff should be executed.\n\nSetting all values of the structure to zero will yield the default\nvalues. Similarly, passing NULL for the options structure will\ngive the defaults. The default values are marked below.\n\n- `flags` is a combination of the `git_diff_option_t` values above\n- `context_lines` is the number of unchanged lines that define the\n boundary of a hunk (and to display before and after)\n- `interhunk_lines` is the maximum number of unchanged lines between\n hunk boundaries before the hunks will be merged into a one.\n- `old_prefix` is the virtual \"directory\" to prefix to old file names\n in hunk headers (default \"a\")\n- `new_prefix` is the virtual \"directory\" to prefix to new file names\n in hunk headers (default \"b\")\n- `pathspec` is an array of paths / fnmatch patterns to constrain diff\n- `max_size` is a file size (in bytes) above which a blob will be marked\n as binary automatically; pass a negative value to disable.\n- `notify_cb` is an optional callback function, notifying the consumer of\n which files are being examined as the diff is generated\n- `notify_payload` is the payload data to pass to the `notify_cb` function\n- `ignore_submodules` overrides the submodule ignore setting for all\n submodules in the diff.","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_index_to_workdir","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir"]}}],["git_diff_patch",{"type":"struct","value":"git_diff_patch","file":"diff.h","line":419,"lineto":419,"block":"","tdef":"typedef","comments":"The diff patch is used to store all the text diffs for a delta.\n\nYou can easily loop over the content of patches and get information about\nthem.","used":{"returns":[],"needs":["git_diff_get_patch","git_diff_patch_delta","git_diff_patch_free","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_patch_get_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_line_stats","git_diff_patch_num_hunks","git_diff_patch_num_lines_in_hunk","git_diff_patch_print","git_diff_patch_size","git_diff_patch_to_str"]}}],["git_diff_range",{"type":"struct","value":"git_diff_range","file":"diff.h","line":352,"lineto":357,"block":"int old_start\nint old_lines\nint new_start\nint new_lines","tdef":"typedef","comments":"Structure describing a hunk of a diff.","used":{"returns":[],"needs":["git_diff_patch_get_hunk"]}}],["git_diff_similarity_metric",{"type":"struct","value":"git_diff_similarity_metric","file":"diff.h","line":465,"lineto":475,"block":"int (*file_signature)(void **out, const git_diff_file *file, const char *fullpath, void *payload)\nint (*buffer_signature)(void **out, const git_diff_file *file, const char *buf, size_t buflen, void *payload)\nvoid (*free_signature)(void *sig, void *payload)\nint (*similarity)(int *score, void *siga, void *sigb, void *payload)\nvoid *payload","tdef":"typedef","comments":"Pluggable similarity metric","used":{"returns":[],"needs":[]}}],["git_error_code",{"type":"enum","file":"errors.h","line":21,"lineto":44,"block":"GIT_OK\nGIT_ERROR\nGIT_ENOTFOUND\nGIT_EEXISTS\nGIT_EAMBIGUOUS\nGIT_EBUFS\nGIT_EUSER\nGIT_EBAREREPO\nGIT_EORPHANEDHEAD\nGIT_EUNMERGED\nGIT_ENONFASTFORWARD\nGIT_EINVALIDSPEC\nGIT_EMERGECONFLICT\nGIT_ELOCKED\nGIT_PASSTHROUGH\nGIT_ITEROVER","tdef":"typedef","comments":"Generic return codes","used":{"returns":[],"needs":[]}}],["git_error_t",{"type":"enum","file":"errors.h","line":47,"lineto":70,"block":"GITERR_NOMEMORY\nGITERR_OS\nGITERR_INVALID\nGITERR_REFERENCE\nGITERR_ZLIB\nGITERR_REPOSITORY\nGITERR_CONFIG\nGITERR_REGEX\nGITERR_ODB\nGITERR_INDEX\nGITERR_OBJECT\nGITERR_NET\nGITERR_TAG\nGITERR_TREE\nGITERR_INDEXER\nGITERR_SSL\nGITERR_SUBMODULE\nGITERR_THREAD\nGITERR_STASH\nGITERR_CHECKOUT\nGITERR_FETCHHEAD\nGITERR_MERGE","tdef":"typedef","comments":"Error classes","used":{"returns":[],"needs":[]}}],["git_filemode_t",{"type":"enum","file":"types.h","line":196,"lineto":210,"block":"GIT_FILEMODE_NEW\nGIT_FILEMODE_TREE\nGIT_FILEMODE_BLOB\nGIT_FILEMODE_BLOB_EXECUTABLE\nGIT_FILEMODE_LINK\nGIT_FILEMODE_COMMIT","tdef":"typedef","comments":"Valid modes for index and tree entries.","used":{"returns":[],"needs":["git_treebuilder_insert"]}}],["git_headlist_cb",{"type":"function pointer","value":"git_headlist_cb","file":"net.h","line":49,"lineto":49,"comments":"Callback for listing the remote heads","used":{"returns":[],"needs":["git_remote_ls"]}}],["git_index",{"type":"struct","value":"git_index","file":"types.h","line":132,"lineto":132,"block":"","tdef":"typedef","comments":"Memory representation of an index file.","used":{"returns":[],"needs":["git_checkout_index","git_diff_index_to_workdir","git_diff_tree_to_index","git_index_add","git_index_add_all","git_index_add_bypath","git_index_caps","git_index_clear","git_index_conflict_add","git_index_conflict_cleanup","git_index_conflict_get","git_index_conflict_iterator_new","git_index_conflict_remove","git_index_entrycount","git_index_find","git_index_free","git_index_get_byindex","git_index_get_bypath","git_index_has_conflicts","git_index_name_add","git_index_name_clear","git_index_name_entrycount","git_index_name_get_byindex","git_index_new","git_index_open","git_index_owner","git_index_path","git_index_read","git_index_read_tree","git_index_remove","git_index_remove_all","git_index_remove_bypath","git_index_remove_directory","git_index_reuc_add","git_index_reuc_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_byindex","git_index_reuc_get_bypath","git_index_reuc_remove","git_index_set_caps","git_index_update_all","git_index_write","git_index_write_tree","git_index_write_tree_to","git_merge_trees","git_pathspec_match_index","git_repository_index","git_repository_set_index"]}}],["git_index_add_option_t",{"type":"enum","file":"index.h","line":134,"lineto":139,"block":"GIT_INDEX_ADD_DEFAULT\nGIT_INDEX_ADD_FORCE\nGIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH\nGIT_INDEX_ADD_CHECK_PATHSPEC","tdef":"typedef","comments":"Flags for APIs that add files matching pathspec","used":{"returns":[],"needs":[]}}],["git_index_conflict_iterator",{"type":"struct","value":"git_index_conflict_iterator","file":"types.h","line":135,"lineto":135,"block":"","tdef":"typedef","comments":"An interator for conflicts in the index.","used":{"returns":[],"needs":["git_index_conflict_iterator_free","git_index_conflict_iterator_new","git_index_conflict_next"]}}],["git_index_entry",{"type":"struct","value":"git_index_entry","file":"index.h","line":48,"lineto":65,"block":"git_index_time ctime\ngit_index_time mtime\nunsigned int dev\nunsigned int ino\nunsigned int mode\nunsigned int uid\nunsigned int gid\ngit_off_t file_size\ngit_oid oid\nunsigned short flags\nunsigned short flags_extended\nchar *path","tdef":"typedef","comments":"In-memory representation of a file entry in the index.\n\nThis is a public structure that represents a file entry in the index.\nThe meaning of the fields corresponds to core Git's documentation (in\n\"Documentation/technical/index-format.txt\").\n\nThe `flags` field consists of a number of bit fields which can be\naccessed via the first set of `GIT_IDXENTRY_...` bitmasks below. These\nflags are all read from and persisted to disk.\n\nThe `flags_extended` field also has a number of bit fields which can be\naccessed via the later `GIT_IDXENTRY_...` bitmasks below. Some of\nthese flags are read from and written to disk, but some are set aside\nfor in-memory only reference.","used":{"returns":["git_index_get_byindex","git_index_get_bypath"],"needs":["git_index_add","git_index_conflict_add","git_index_conflict_get","git_index_conflict_next","git_index_entry_stage"]}}],["git_index_matched_path_cb",{"type":"function pointer","value":"git_index_matched_path_cb","file":"index.h","line":130,"lineto":131,"comments":"Callback for APIs that add/remove/update files matching pathspec","used":{"returns":[],"needs":["git_index_add_all","git_index_remove_all","git_index_update_all"]}}],["git_index_name_entry",{"type":"struct","value":"git_index_name_entry","file":"sys/index.h","line":20,"lineto":24,"block":"char *ancestor\nchar *ours\nchar *theirs","tdef":"typedef","comments":"Representation of a rename conflict entry in the index.","used":{"returns":["git_index_name_get_byindex"],"needs":[]}}],["git_index_reuc_entry",{"type":"struct","value":"git_index_reuc_entry","file":"sys/index.h","line":27,"lineto":31,"block":"unsigned int mode[3]\ngit_oid oid[3]\nchar *path","tdef":"typedef","comments":"Representation of a resolve undo entry in the index.","used":{"returns":["git_index_reuc_get_byindex","git_index_reuc_get_bypath"],"needs":[]}}],["git_index_time",{"type":"struct","value":"git_index_time","file":"index.h","line":26,"lineto":30,"block":"git_time_t seconds\nunsigned int nanoseconds","tdef":"typedef","comments":"Time structure used in a git index entry","used":{"returns":[],"needs":[]}}],["git_indexcap_t",{"type":"enum","file":"index.h","line":122,"lineto":127,"block":"GIT_INDEXCAP_IGNORE_CASE\nGIT_INDEXCAP_NO_FILEMODE\nGIT_INDEXCAP_NO_SYMLINKS\nGIT_INDEXCAP_FROM_OWNER","tdef":"typedef","comments":"Capabilities of system that affect index actions.","used":{"returns":[],"needs":[]}}],["git_merge_automerge_flags",{"type":"enum","file":"merge.h","line":37,"lineto":63,"block":"GIT_MERGE_AUTOMERGE_NORMAL\nGIT_MERGE_AUTOMERGE_NONE\nGIT_MERGE_AUTOMERGE_FAVOR_OURS\nGIT_MERGE_AUTOMERGE_FAVOR_THEIRS","tdef":"typedef","comments":"Automerge options for `git_merge_trees_opts`.","used":{"returns":[],"needs":[]}}],["git_merge_head",{"type":"struct","value":"git_merge_head","file":"types.h","line":175,"lineto":175,"block":"","tdef":"typedef","comments":"Merge heads, the input to merge","used":{"returns":[],"needs":["git_merge_head_free","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref"]}}],["git_merge_tree_flag_t",{"type":"enum","file":"merge.h","line":29,"lineto":32,"block":"GIT_MERGE_TREE_FIND_RENAMES","tdef":"typedef","comments":"Flags for `git_merge_tree` options. A combination of these flags can be\npassed in via the `flags` value in the `git_merge_tree_opts`.","used":{"returns":[],"needs":[]}}],["git_note",{"type":"struct","value":"git_note","file":"types.h","line":150,"lineto":150,"block":"","tdef":"typedef","comments":"Representation of a git note","used":{"returns":[],"needs":["git_note_free","git_note_message","git_note_oid","git_note_read"]}}],["git_note_foreach_cb",{"type":"function pointer","value":"git_note_foreach_cb","file":"notes.h","line":29,"lineto":30,"comments":"Callback for git_note_foreach.\n\nReceives:\n- blob_id: Oid of the blob containing the message\n- annotated_object_id: Oid of the git object being annotated\n- payload: Payload data passed to `git_note_foreach`","used":{"returns":[],"needs":["git_note_foreach"]}}],["git_note_iterator",{"type":"struct","value":"git_note_iterator","file":"notes.h","line":35,"lineto":35,"block":"","tdef":"typedef","comments":"note iterator","used":{"returns":[],"needs":["git_note_iterator_free","git_note_iterator_new","git_note_next"]}}],["git_object",{"type":"struct","value":"git_object","file":"types.h","line":108,"lineto":108,"block":"","tdef":"typedef","comments":"Representation of a generic object in a repository","used":{"returns":[],"needs":["git_checkout_tree","git_object_dup","git_object_free","git_object_id","git_object_lookup","git_object_lookup_prefix","git_object_owner","git_object_peel","git_object_type","git_reference_peel","git_reset","git_reset_default","git_revparse_ext","git_revparse_single","git_tag_annotation_create","git_tag_create","git_tag_create_lightweight","git_tag_peel","git_tag_target","git_tree_entry_to_object"]}}],["git_odb",{"type":"struct","value":"git_odb","file":"types.h","line":81,"lineto":81,"block":"","tdef":"typedef","comments":"An open object database handle.","used":{"returns":[],"needs":["git_odb_add_alternate","git_odb_add_backend","git_odb_add_disk_alternate","git_odb_exists","git_odb_foreach","git_odb_free","git_odb_get_backend","git_odb_new","git_odb_num_backends","git_odb_open","git_odb_open_rstream","git_odb_open_wstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_refresh","git_odb_write","git_odb_write_pack","git_repository_odb","git_repository_set_odb","git_repository_wrap_odb"]}}],["git_odb_backend",{"type":"struct","value":"git_odb_backend","file":"types.h","line":84,"lineto":84,"block":"","tdef":"typedef","comments":"A custom backend in an ODB","used":{"returns":[],"needs":["git_odb_add_alternate","git_odb_add_backend","git_odb_backend_loose","git_odb_backend_one_pack","git_odb_backend_pack","git_odb_get_backend"]}}],["git_odb_foreach_cb",{"type":"function pointer","value":"git_odb_foreach_cb","file":"odb.h","line":26,"lineto":26,"comments":"Function type for callbacks from git_odb_foreach.","used":{"returns":[],"needs":["git_odb_foreach"]}}],["git_odb_object",{"type":"struct","value":"git_odb_object","file":"types.h","line":87,"lineto":87,"block":"","tdef":"typedef","comments":"An object read from the ODB","used":{"returns":[],"needs":["git_odb_object_data","git_odb_object_free","git_odb_object_id","git_odb_object_size","git_odb_object_type","git_odb_read","git_odb_read_prefix"]}}],["git_odb_stream",{"type":"struct","value":"git_odb_stream","file":"types.h","line":90,"lineto":90,"block":"","tdef":"typedef","comments":"A stream to read/write from the ODB","used":{"returns":[],"needs":["git_odb_open_rstream","git_odb_open_wstream","git_odb_stream_finalize_write","git_odb_stream_free","git_odb_stream_read","git_odb_stream_write"]}}],["git_odb_stream_t",{"type":"enum","file":"odb_backend.h","line":62,"lineto":66,"block":"GIT_STREAM_RDONLY\nGIT_STREAM_WRONLY\nGIT_STREAM_RW","tdef":"typedef","comments":"Streaming mode","used":{"returns":[],"needs":[]}}],["git_odb_writepack",{"type":"struct","value":"git_odb_writepack","file":"types.h","line":93,"lineto":93,"block":"","tdef":"typedef","comments":"A stream to write a packfile to the ODB","used":{"returns":[],"needs":["git_odb_write_pack"]}}],["git_oid",{"type":"struct","value":"git_oid","file":"oid.h","line":33,"lineto":36,"block":"unsigned char id[GIT_OID_RAWSZ]","tdef":"typedef","comments":"Unique identity of any object (commit, tree, blob, tag).","used":{"returns":["git_blob_id","git_commit_id","git_commit_parent_id","git_commit_tree_id","git_indexer_stream_hash","git_note_oid","git_object_id","git_odb_object_id","git_reference_target","git_reference_target_peel","git_reflog_entry_id_new","git_reflog_entry_id_old","git_submodule_head_id","git_submodule_index_id","git_submodule_wd_id","git_tag_id","git_tag_target_id","git_tree_entry_id","git_tree_id"],"needs":["git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_lookup","git_blob_lookup_prefix","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_lookup","git_commit_lookup_prefix","git_graph_ahead_behind","git_index_reuc_add","git_index_write_tree","git_index_write_tree_to","git_merge_base","git_merge_base_many","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_note_create","git_note_next","git_note_read","git_note_remove","git_object_lookup","git_object_lookup_prefix","git_odb_exists","git_odb_hash","git_odb_hashfile","git_odb_open_rstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_stream_finalize_write","git_odb_write","git_oid_allocfmt","git_oid_cmp","git_oid_cpy","git_oid_equal","git_oid_fmt","git_oid_fromraw","git_oid_fromstr","git_oid_fromstrn","git_oid_fromstrp","git_oid_iszero","git_oid_ncmp","git_oid_nfmt","git_oid_pathfmt","git_oid_strcmp","git_oid_streq","git_oid_tostr","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_reference__alloc","git_reference_create","git_reference_name_to_id","git_reference_set_target","git_reflog_append","git_repository_hashfile","git_repository_set_head_detached","git_revwalk_hide","git_revwalk_next","git_revwalk_push","git_stash_save","git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_lookup","git_tag_lookup_prefix","git_tree_entry_byoid","git_tree_lookup","git_tree_lookup_prefix","git_treebuilder_insert","git_treebuilder_write"]}}],["git_oid_shorten",{"type":"struct","value":"git_oid_shorten","file":"oid.h","line":215,"lineto":215,"block":"","tdef":"typedef","comments":"OID Shortener object","used":{"returns":["git_oid_shorten_new"],"needs":["git_oid_shorten_add","git_oid_shorten_free"]}}],["git_otype",{"type":"enum","file":"types.h","line":67,"lineto":78,"block":"GIT_OBJ_ANY\nGIT_OBJ_BAD\nGIT_OBJ__EXT1\nGIT_OBJ_COMMIT\nGIT_OBJ_TREE\nGIT_OBJ_BLOB\nGIT_OBJ_TAG\nGIT_OBJ__EXT2\nGIT_OBJ_OFS_DELTA\nGIT_OBJ_REF_DELTA","tdef":"typedef","comments":"Basic type (loose or packed) of any Git object.","used":{"returns":[],"needs":["git_object__size","git_object_lookup","git_object_lookup_prefix","git_object_peel","git_object_type2string","git_object_typeisloose","git_odb_hash","git_odb_hashfile","git_odb_open_wstream","git_odb_read_header","git_odb_write","git_reference_peel","git_repository_hashfile"]}}],["git_packbuilder",{"type":"struct","value":"git_packbuilder","file":"types.h","line":153,"lineto":153,"block":"","tdef":"typedef","comments":"Representation of a git packbuilder","used":{"returns":[],"needs":["git_packbuilder_foreach","git_packbuilder_free","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_packbuilder_new","git_packbuilder_object_count","git_packbuilder_set_threads","git_packbuilder_write","git_packbuilder_written"]}}],["git_pathspec",{"type":"struct","value":"git_pathspec","file":"pathspec.h","line":18,"lineto":18,"block":"","tdef":"typedef","comments":"Compiled pathspec","used":{"returns":[],"needs":["git_pathspec_free","git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_tree","git_pathspec_match_workdir","git_pathspec_matches_path","git_pathspec_new"]}}],["git_pathspec_flag_t",{"type":"enum","file":"pathspec.h","line":46,"lineto":54,"block":"GIT_PATHSPEC_DEFAULT\nGIT_PATHSPEC_IGNORE_CASE\nGIT_PATHSPEC_USE_CASE\nGIT_PATHSPEC_NO_GLOB\nGIT_PATHSPEC_NO_MATCH_ERROR\nGIT_PATHSPEC_FIND_FAILURES\nGIT_PATHSPEC_FAILURES_ONLY","tdef":"typedef","comments":"Options controlling how pathspec match should be executed\n\n- GIT_PATHSPEC_IGNORE_CASE forces match to ignore case; otherwise\n match will use native case sensitivity of platform filesystem\n- GIT_PATHSPEC_USE_CASE forces case sensitive match; otherwise\n match will use native case sensitivity of platform filesystem\n- GIT_PATHSPEC_NO_GLOB disables glob patterns and just uses simple\n string comparison for matching\n- GIT_PATHSPEC_NO_MATCH_ERROR means the match functions return error\n code GIT_ENOTFOUND if no matches are found; otherwise no matches is\n still success (return 0) but `git_pathspec_match_list_entrycount`\n will indicate 0 matches.\n- GIT_PATHSPEC_FIND_FAILURES means that the `git_pathspec_match_list`\n should track which patterns matched which files so that at the end of\n the match we can identify patterns that did not match any files.\n- GIT_PATHSPEC_FAILURES_ONLY means that the `git_pathspec_match_list`\n does not need to keep the actual matching filenames. Use this to\n just test if there were any matches at all or in combination with\n GIT_PATHSPEC_FIND_FAILURES to validate a pathspec.","used":{"returns":[],"needs":[]}}],["git_pathspec_match_list",{"type":"struct","value":"git_pathspec_match_list","file":"pathspec.h","line":23,"lineto":23,"block":"","tdef":"typedef","comments":"List of filenames matching a pathspec","used":{"returns":[],"needs":["git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_list_diff_entry","git_pathspec_match_list_entry","git_pathspec_match_list_entrycount","git_pathspec_match_list_failed_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_free","git_pathspec_match_tree","git_pathspec_match_workdir"]}}],["git_push_options",{"type":"struct","value":"git_push_options","file":"push.h","line":24,"lineto":32,"block":"unsigned int version\nunsigned int pb_parallelism","tdef":"typedef","comments":"Controls the behavior of a git_push object.","used":{"returns":[],"needs":["git_push_set_options"]}}],["git_ref_t",{"type":"enum","file":"types.h","line":182,"lineto":187,"block":"GIT_REF_INVALID\nGIT_REF_OID\nGIT_REF_SYMBOLIC\nGIT_REF_LISTALL","tdef":"typedef","comments":"Basic type of any Git reference.","used":{"returns":[],"needs":[]}}],["git_refdb",{"type":"struct","value":"git_refdb","file":"types.h","line":96,"lineto":96,"block":"","tdef":"typedef","comments":"An open refs database handle.","used":{"returns":[],"needs":["git_refdb_compress","git_refdb_free","git_refdb_new","git_refdb_open","git_refdb_set_backend","git_repository_refdb","git_repository_set_refdb"]}}],["git_refdb_backend",{"type":"struct","value":"git_refdb_backend","file":"types.h","line":99,"lineto":99,"block":"","tdef":"typedef","comments":"A custom backend for refs","used":{"returns":[],"needs":["git_refdb_backend_fs","git_refdb_set_backend"]}}],["git_reference",{"type":"struct","value":"git_reference","file":"types.h","line":169,"lineto":169,"block":"","tdef":"typedef","comments":"In-memory representation of a reference.","used":{"returns":["git_reference__alloc","git_reference__alloc_symbolic"],"needs":["git_branch_create","git_branch_delete","git_branch_is_head","git_branch_lookup","git_branch_move","git_branch_name","git_branch_set_upstream","git_branch_upstream","git_merge_head_from_ref","git_reference_cmp","git_reference_create","git_reference_delete","git_reference_dwim","git_reference_free","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_lookup","git_reference_name","git_reference_next","git_reference_owner","git_reference_peel","git_reference_rename","git_reference_resolve","git_reference_set_target","git_reference_shorthand","git_reference_symbolic_create","git_reference_symbolic_set_target","git_reference_symbolic_target","git_reference_target","git_reference_target_peel","git_reference_type","git_reflog_delete","git_reflog_read","git_reflog_rename","git_repository_head","git_revparse_ext"]}}],["git_reference_iterator",{"type":"struct","value":"git_reference_iterator","file":"types.h","line":172,"lineto":172,"block":"","tdef":"typedef","comments":"Iterator for references","used":{"returns":[],"needs":["git_reference_iterator_free","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_next"]}}],["git_reflog",{"type":"struct","value":"git_reflog","file":"types.h","line":147,"lineto":147,"block":"","tdef":"typedef","comments":"Representation of a reference log","used":{"returns":[],"needs":["git_reflog_append","git_reflog_drop","git_reflog_entry_byindex","git_reflog_entrycount","git_reflog_free","git_reflog_read","git_reflog_write"]}}],["git_reflog_entry",{"type":"struct","value":"git_reflog_entry","file":"types.h","line":144,"lineto":144,"block":"","tdef":"typedef","comments":"Representation of a reference log entry","used":{"returns":["git_reflog_entry_byindex"],"needs":["git_reflog_entry_committer","git_reflog_entry_id_new","git_reflog_entry_id_old","git_reflog_entry_message"]}}],["git_remote_callbacks",{"type":"struct","value":"git_remote_callbacks","file":"remote.h","line":402,"lineto":411,"block":"unsigned int version\nvoid (*progress)(const char *str, int len, void *data)\nint (*completion)(git_remote_completion_type type, void *data)\nint (*update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data)\nvoid *payload","tdef":null,"comments":"The callback settings structure\n\nSet the calbacks to be called by the remote.","used":{"returns":[],"needs":["git_remote_set_callbacks"]}}],["git_remote_head",{"type":"struct","value":"git_remote_head","file":"net.h","line":39,"lineto":44,"block":"int local\ngit_oid oid\ngit_oid loid\nchar *name","tdef":null,"comments":"Remote head description, given out on `ls` calls.","used":{"returns":[],"needs":[]}}],["git_repository",{"type":"struct","value":"git_repository","file":"types.h","line":105,"lineto":105,"block":"","tdef":"typedef","comments":"Representation of an existing git repository,\nincluding all its object contents","used":{"returns":["git_blob_owner","git_commit_owner","git_index_owner","git_object_owner","git_reference_owner","git_remote_owner","git_revwalk_repository","git_submodule_owner","git_tag_owner","git_tree_owner"],"needs":["git_attr_add_macro","git_attr_cache_flush","git_attr_foreach","git_attr_get","git_attr_get_many","git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_lookup","git_blob_lookup_prefix","git_branch_create","git_branch_foreach","git_branch_lookup","git_branch_remote_name","git_branch_upstream_name","git_checkout_head","git_checkout_index","git_checkout_tree","git_clone","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_lookup","git_commit_lookup_prefix","git_diff_index_to_workdir","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_graph_ahead_behind","git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored","git_index_write_tree_to","git_merge_base","git_merge_base_many","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref","git_merge_trees","git_note_create","git_note_default_ref","git_note_foreach","git_note_iterator_new","git_note_read","git_note_remove","git_object_lookup","git_object_lookup_prefix","git_packbuilder_new","git_pathspec_match_workdir","git_refdb_backend_fs","git_refdb_new","git_refdb_open","git_reference_create","git_reference_dwim","git_reference_foreach","git_reference_foreach_glob","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_list","git_reference_lookup","git_reference_name_to_id","git_reference_symbolic_create","git_remote_create","git_remote_create_inmemory","git_remote_list","git_remote_load","git_repository__cleanup","git_repository_config","git_repository_detach_head","git_repository_fetchhead_foreach","git_repository_free","git_repository_get_namespace","git_repository_hashfile","git_repository_head","git_repository_head_detached","git_repository_head_orphan","git_repository_index","git_repository_init","git_repository_init_ext","git_repository_is_bare","git_repository_is_empty","git_repository_is_shallow","git_repository_merge_cleanup","git_repository_mergehead_foreach","git_repository_message","git_repository_message_remove","git_repository_new","git_repository_odb","git_repository_open","git_repository_open_bare","git_repository_open_ext","git_repository_path","git_repository_refdb","git_repository_set_config","git_repository_set_head","git_repository_set_head_detached","git_repository_set_index","git_repository_set_namespace","git_repository_set_odb","git_repository_set_refdb","git_repository_set_workdir","git_repository_state","git_repository_workdir","git_repository_wrap_odb","git_reset","git_reset_default","git_revparse","git_revparse_ext","git_revparse_single","git_revwalk_new","git_signature_default","git_stash_drop","git_stash_foreach","git_stash_save","git_status_file","git_status_foreach","git_status_foreach_ext","git_status_list_new","git_status_should_ignore","git_submodule_add_setup","git_submodule_foreach","git_submodule_lookup","git_submodule_open","git_submodule_reload_all","git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_foreach","git_tag_list","git_tag_list_match","git_tag_lookup","git_tag_lookup_prefix","git_tree_entry_to_object","git_tree_lookup","git_tree_lookup_prefix","git_treebuilder_write"]}}],["git_repository_init_flag_t",{"type":"enum","file":"repository.h","line":202,"lineto":209,"block":"GIT_REPOSITORY_INIT_BARE\nGIT_REPOSITORY_INIT_NO_REINIT\nGIT_REPOSITORY_INIT_NO_DOTGIT_DIR\nGIT_REPOSITORY_INIT_MKDIR\nGIT_REPOSITORY_INIT_MKPATH\nGIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE","tdef":"typedef","comments":"Option flags for `git_repository_init_ext`.\n\nThese flags configure extra behaviors to `git_repository_init_ext`.\nIn every case, the default behavior is the zero value (i.e. flag is\nnot set). Just OR the flag values together for the `flags` parameter\nwhen initializing a new repo. Details of individual values are:\n\n* BARE - Create a bare repository with no working directory.\n* NO_REINIT - Return an GIT_EEXISTS error if the repo_path appears to\n already be an git repository.\n* NO_DOTGIT_DIR - Normally a \"/.git/\" will be appended to the repo\n path for non-bare repos (if it is not already there), but\n passing this flag prevents that behavior.\n* MKDIR - Make the repo_path (and workdir_path) as needed. Init is\n always willing to create the \".git\" directory even without this\n flag. This flag tells init to create the trailing component of\n the repo and workdir paths as needed.\n* MKPATH - Recursively make all components of the repo and workdir\n paths as necessary.\n* EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to\n initialize a new repo. This flags enables external templates,\n looking the \"template_path\" from the options if set, or the\n `init.templatedir` global config if not, or falling back on\n \"/usr/share/git-core/templates\" if it exists.","used":{"returns":[],"needs":[]}}],["git_repository_init_mode_t",{"type":"enum","file":"repository.h","line":224,"lineto":228,"block":"GIT_REPOSITORY_INIT_SHARED_UMASK\nGIT_REPOSITORY_INIT_SHARED_GROUP\nGIT_REPOSITORY_INIT_SHARED_ALL","tdef":"typedef","comments":"Mode options for `git_repository_init_ext`.\n\nSet the mode field of the `git_repository_init_options` structure\neither to the custom mode that you would like, or to one of the\nfollowing modes:\n\n* SHARED_UMASK - Use permissions configured by umask - the default.\n* SHARED_GROUP - Use \"--shared=group\" behavior, chmod'ing the new repo\n to be group writable and \"g+sx\" for sticky group assignment.\n* SHARED_ALL - Use \"--shared=all\" behavior, adding world readability.\n* Anything else - Set to custom value.","used":{"returns":[],"needs":[]}}],["git_repository_init_options",{"type":"struct","value":"git_repository_init_options","file":"repository.h","line":258,"lineto":270,"block":"unsigned int version\nuint32_t flags\nuint32_t mode\nconst char *workdir_path\nconst char *description\nconst char *template_path\nconst char *initial_head\nconst char *origin_url","tdef":"typedef","comments":"Extended options structure for `git_repository_init_ext`.\n\nThis contains extra options for `git_repository_init_ext` that enable\nadditional initialization features. The fields are:\n\n* flags - Combination of GIT_REPOSITORY_INIT flags above.\n* mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_...\n constants above, or to a custom value that you would like.\n* workdir_path - The path to the working dir or NULL for default (i.e.\n repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH,\n IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not\n the \"natural\" working directory, a .git gitlink file will be\n created here linking to the repo_path.\n* description - If set, this will be used to initialize the \"description\"\n file in the repository, instead of using the template content.\n* template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set,\n this contains the path to use for the template directory. If\n this is NULL, the config or default directory options will be\n used instead.\n* initial_head - The name of the head to point HEAD at. If NULL, then\n this will be treated as \"master\" and the HEAD ref will be set\n to \"refs/heads/master\". If this begins with \"refs/\" it will be\n used verbatim; otherwise \"refs/heads/\" will be prefixed.\n* origin_url - If this is non-NULL, then after the rest of the\n repository initialization is completed, an \"origin\" remote\n will be added pointing to this URL.","used":{"returns":[],"needs":["git_repository_init_ext"]}}],["git_repository_open_flag_t",{"type":"enum","file":"repository.h","line":101,"lineto":105,"block":"GIT_REPOSITORY_OPEN_NO_SEARCH\nGIT_REPOSITORY_OPEN_CROSS_FS\nGIT_REPOSITORY_OPEN_BARE","tdef":"typedef","comments":"Option flags for `git_repository_open_ext`.\n\n* GIT_REPOSITORY_OPEN_NO_SEARCH - Only open the repository if it can be\n immediately found in the start_path. Do not walk up from the\n start_path looking at parent directories.\n* GIT_REPOSITORY_OPEN_CROSS_FS - Unless this flag is set, open will not\n continue searching across filesystem boundaries (i.e. when `st_dev`\n changes from the `stat` system call). (E.g. Searching in a user's home\n directory \"/home/user/source/\" will not return \"/.git/\" as the found\n repo if \"/\" is a different filesystem than \"/home\".)\n* GIT_REPOSITORY_OPEN_BARE - Open repository as a bare repo regardless\n of core.bare config, and defer loading config file for faster setup.\n Unlike `git_repository_open_bare`, this can follow gitlinks.","used":{"returns":[],"needs":[]}}],["git_reset_t",{"type":"enum","file":"reset.h","line":21,"lineto":25,"block":"GIT_RESET_SOFT\nGIT_RESET_MIXED\nGIT_RESET_HARD","tdef":"typedef","comments":"Kinds of reset operation","used":{"returns":[],"needs":["git_reset"]}}],["git_revspec",{"type":"struct","value":"git_revspec","file":"revparse.h","line":83,"lineto":90,"block":"git_object *from\ngit_object *to\nunsigned int flags","tdef":"typedef","comments":"Git Revision Spec: output of a `git_revparse` operation","used":{"returns":[],"needs":["git_revparse"]}}],["git_revwalk",{"type":"struct","value":"git_revwalk","file":"types.h","line":111,"lineto":111,"block":"","tdef":"typedef","comments":"Representation of an in-progress walk through the commits in a repo","used":{"returns":[],"needs":["git_revwalk_free","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_hide_ref","git_revwalk_new","git_revwalk_next","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_push_range","git_revwalk_push_ref","git_revwalk_repository","git_revwalk_reset","git_revwalk_simplify_first_parent","git_revwalk_sorting"]}}],["git_signature",{"type":"struct","value":"git_signature","file":"types.h","line":162,"lineto":166,"block":"char *name\nchar *email\ngit_time when","tdef":"typedef","comments":"An action signature (e.g. for committers, taggers, etc)","used":{"returns":["git_commit_author","git_commit_committer","git_reflog_entry_committer","git_signature_dup","git_tag_tagger"],"needs":["git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_note_create","git_note_remove","git_reflog_append","git_signature_default","git_signature_dup","git_signature_free","git_signature_new","git_signature_now","git_stash_save","git_tag_annotation_create","git_tag_create"]}}],["git_stash_cb",{"type":"function pointer","value":"git_stash_cb","file":"stash.h","line":79,"lineto":83,"comments":"When iterating over all the stashed states, callback that will be\nissued per entry.\n\n@param index The position within the stash list. 0 points to the\nmost recent stashed state.\n\n@param message The stash message.\n\n@param stash_id The commit oid of the stashed state.\n\n@param payload Extra parameter to callback function.\n\n@return 0 on success, GIT_EUSER on non-zero callback, or error code","used":{"returns":[],"needs":["git_stash_foreach"]}}],["git_status_cb",{"type":"function pointer","value":"git_status_cb","file":"status.h","line":59,"lineto":60,"comments":"Function pointer to receive status on individual files\n\n`path` is the relative path to the file from the root of the repository.\n\n`status_flags` is a combination of `git_status_t` values that apply.\n\n`payload` is the value you passed to the foreach function as payload.","used":{"returns":[],"needs":["git_status_foreach","git_status_foreach_ext"]}}],["git_status_entry",{"type":"struct","value":"git_status_entry","file":"status.h","line":187,"lineto":191,"block":"git_status_t status\ngit_diff_delta *head_to_index\ngit_diff_delta *index_to_workdir","tdef":"typedef","comments":"A status entry, providing the differences between the file as it exists\nin HEAD and the index, and providing the differences between the index\nand the working directory.\n\nThe `status` value provides the status flags for this file.\n\nThe `head_to_index` value provides detailed information about the\ndifferences between the file in HEAD and the file in the index.\n\nThe `index_to_workdir` value provides detailed information about the\ndifferences between the file in the index and the file in the\nworking directory.","used":{"returns":["git_status_byindex"],"needs":[]}}],["git_status_list",{"type":"struct","value":"git_status_list","file":"types.h","line":178,"lineto":178,"block":"","tdef":"typedef","comments":"Representation of a status collection","used":{"returns":[],"needs":["git_status_byindex","git_status_list_entrycount","git_status_list_free","git_status_list_new"]}}],["git_status_opt_t",{"type":"enum","file":"status.h","line":127,"lineto":145,"block":"GIT_STATUS_OPT_INCLUDE_UNTRACKED\nGIT_STATUS_OPT_INCLUDE_IGNORED\nGIT_STATUS_OPT_INCLUDE_UNMODIFIED\nGIT_STATUS_OPT_EXCLUDE_SUBMODULES\nGIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS\nGIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH\nGIT_STATUS_OPT_RECURSE_IGNORED_DIRS\nGIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX\nGIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR\nGIT_STATUS_OPT_SORT_CASE_SENSITIVELY\nGIT_STATUS_OPT_SORT_CASE_INSENSITIVELY\nGIT_STATUS_OPT_RENAMES_FROM_REWRITES","tdef":"typedef","comments":"Flags to control status callbacks\n\n- GIT_STATUS_OPT_INCLUDE_UNTRACKED says that callbacks should be made\n on untracked files. These will only be made if the workdir files are\n included in the status \"show\" option.\n- GIT_STATUS_OPT_INCLUDE_IGNORED says that ignored files get callbacks.\n Again, these callbacks will only be made if the workdir files are\n included in the status \"show\" option.\n- GIT_STATUS_OPT_INCLUDE_UNMODIFIED indicates that callback should be\n made even on unmodified files.\n- GIT_STATUS_OPT_EXCLUDE_SUBMODULES indicates that submodules should be\n skipped. This only applies if there are no pending typechanges to\n the submodule (either from or to another type).\n- GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS indicates that all files in\n untracked directories should be included. Normally if an entire\n directory is new, then just the top-level directory is included (with\n a trailing slash on the entry name). This flag says to include all\n of the individual files in the directory instead.\n- GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH indicates that the given path\n should be treated as a literal path, and not as a pathspec pattern.\n- GIT_STATUS_OPT_RECURSE_IGNORED_DIRS indicates that the contents of\n ignored directories should be included in the status. This is like\n doing `git ls-files -o -i --exclude-standard` with core git.\n- GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX indicates that rename detection\n should be processed between the head and the index and enables\n the GIT_STATUS_INDEX_RENAMED as a possible status flag.\n- GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR indicates that rename\n detection should be run between the index and the working directory\n and enabled GIT_STATUS_WT_RENAMED as a possible status flag.\n- GIT_STATUS_OPT_SORT_CASE_SENSITIVELY overrides the native case\n sensitivity for the file system and forces the output to be in\n case-sensitive order\n- GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY overrides the native case\n sensitivity for the file system and forces the output to be in\n case-insensitive order\n- GIT_STATUS_OPT_RENAMES_FROM_REWRITES indicates that rename detection\n should include rewritten files\n\nCalling `git_status_foreach()` is like calling the extended version\nwith: GIT_STATUS_OPT_INCLUDE_IGNORED, GIT_STATUS_OPT_INCLUDE_UNTRACKED,\nand GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS. Those options are bundled\ntogether as `GIT_STATUS_OPT_DEFAULTS` if you want them as a baseline.","used":{"returns":[],"needs":[]}}],["git_status_options",{"type":"struct","value":"git_status_options","file":"status.h","line":163,"lineto":171,"block":"unsigned int version\ngit_status_show_t show\nunsigned int flags\ngit_strarray pathspec","tdef":"typedef","comments":"Options to control how `git_status_foreach_ext()` will issue callbacks.\n\nThis structure is set so that zeroing it out will give you relatively\nsane defaults.\n\nThe `show` value is one of the `git_status_show_t` constants that\ncontrol which files to scan and in what order.\n\nThe `flags` value is an OR'ed combination of the `git_status_opt_t`\nvalues above.\n\nThe `pathspec` is an array of path patterns to match (using\nfnmatch-style matching), or just an array of paths to match exactly if\n`GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.","used":{"returns":[],"needs":["git_status_foreach_ext","git_status_list_new"]}}],["git_status_show_t",{"type":"enum","file":"status.h","line":77,"lineto":81,"block":"GIT_STATUS_SHOW_INDEX_AND_WORKDIR\nGIT_STATUS_SHOW_INDEX_ONLY\nGIT_STATUS_SHOW_WORKDIR_ONLY","tdef":"typedef","comments":"Select the files on which to report status.\n\nWith `git_status_foreach_ext`, this will control which changes get\ncallbacks. With `git_status_list_new`, these will control which\nchanges are included in the list.\n\n- GIT_STATUS_SHOW_INDEX_AND_WORKDIR is the default. This roughly\n matches `git status --porcelain` regarding which files are\n included and in what order.\n- GIT_STATUS_SHOW_INDEX_ONLY only gives status based on HEAD to index\n comparison, not looking at working directory changes.\n- GIT_STATUS_SHOW_WORKDIR_ONLY only gives status based on index to\n working directory comparison, not comparing the index to the HEAD.","used":{"returns":[],"needs":[]}}],["git_status_t",{"type":"enum","file":"status.h","line":32,"lineto":48,"block":"GIT_STATUS_CURRENT\nGIT_STATUS_INDEX_NEW\nGIT_STATUS_INDEX_MODIFIED\nGIT_STATUS_INDEX_DELETED\nGIT_STATUS_INDEX_RENAMED\nGIT_STATUS_INDEX_TYPECHANGE\nGIT_STATUS_WT_NEW\nGIT_STATUS_WT_MODIFIED\nGIT_STATUS_WT_DELETED\nGIT_STATUS_WT_TYPECHANGE\nGIT_STATUS_WT_RENAMED\nGIT_STATUS_IGNORED","tdef":"typedef","comments":"Status flags for a single file.\n\nA combination of these values will be returned to indicate the status of\na file. Status compares the working directory, the index, and the\ncurrent HEAD of the repository. The `GIT_STATUS_INDEX` set of flags\nrepresents the status of file in the index relative to the HEAD, and the\n`GIT_STATUS_WT` set of flags represent the status of the file in the\nworking directory relative to the index.","used":{"returns":[],"needs":[]}}],["git_strarray",{"type":"struct","value":"git_strarray","file":"strarray.h","line":22,"lineto":25,"block":"char **strings\nsize_t count","tdef":"typedef","comments":"Array of strings","used":{"returns":[],"needs":["git_index_add_all","git_index_remove_all","git_index_update_all","git_pathspec_new","git_reference_list","git_remote_get_fetch_refspecs","git_remote_get_push_refspecs","git_remote_list","git_reset_default","git_strarray_copy","git_strarray_free","git_tag_list","git_tag_list_match"]}}],["git_submodule",{"type":"struct","value":"git_submodule","file":"types.h","line":235,"lineto":235,"block":"","tdef":"typedef","comments":"Opaque structure representing a submodule.","used":{"returns":[],"needs":["git_submodule_add_finalize","git_submodule_add_setup","git_submodule_add_to_index","git_submodule_fetch_recurse_submodules","git_submodule_foreach","git_submodule_head_id","git_submodule_ignore","git_submodule_index_id","git_submodule_init","git_submodule_location","git_submodule_lookup","git_submodule_name","git_submodule_open","git_submodule_owner","git_submodule_path","git_submodule_reload","git_submodule_save","git_submodule_set_fetch_recurse_submodules","git_submodule_set_ignore","git_submodule_set_update","git_submodule_set_url","git_submodule_status","git_submodule_sync","git_submodule_update","git_submodule_url","git_submodule_wd_id"]}}],["git_submodule_ignore_t",{"type":"enum","file":"types.h","line":295,"lineto":301,"block":"GIT_SUBMODULE_IGNORE_RESET\nGIT_SUBMODULE_IGNORE_NONE\nGIT_SUBMODULE_IGNORE_UNTRACKED\nGIT_SUBMODULE_IGNORE_DIRTY\nGIT_SUBMODULE_IGNORE_ALL","tdef":"typedef","comments":"Submodule ignore values\n\nThese values represent settings for the `submodule.$name.ignore`\nconfiguration value which says how deeply to look at the working\ndirectory when getting submodule status.\n\nYou can override this value in memory on a per-submodule basis with\n`git_submodule_set_ignore()` and can write the changed value to disk\nwith `git_submodule_save()`. If you have overwritten the value, you\ncan revert to the on disk value by using `GIT_SUBMODULE_IGNORE_RESET`.\n\nThe values are:\n\n- GIT_SUBMODULE_IGNORE_RESET: reset to the on-disk value.\n- GIT_SUBMODULE_IGNORE_NONE: don't ignore any change - i.e. even an\n untracked file, will mark the submodule as dirty. Ignored files are\n still ignored, of course.\n- GIT_SUBMODULE_IGNORE_UNTRACKED: ignore untracked files; only changes\n to tracked files, or the index or the HEAD commit will matter.\n- GIT_SUBMODULE_IGNORE_DIRTY: ignore changes in the working directory,\n only considering changes if the HEAD of submodule has moved from the\n value in the superproject.\n- GIT_SUBMODULE_IGNORE_ALL: never check if the submodule is dirty","used":{"returns":[],"needs":["git_submodule_set_ignore"]}}],["git_submodule_status_t",{"type":"enum","file":"submodule.h","line":72,"lineto":105,"block":"GIT_SUBMODULE_STATUS_IN_HEAD\nGIT_SUBMODULE_STATUS_IN_INDEX\nGIT_SUBMODULE_STATUS_IN_CONFIG\nGIT_SUBMODULE_STATUS_IN_WD\nGIT_SUBMODULE_STATUS_INDEX_ADDED\nGIT_SUBMODULE_STATUS_INDEX_DELETED\nGIT_SUBMODULE_STATUS_INDEX_MODIFIED\nGIT_SUBMODULE_STATUS_WD_UNINITIALIZED\nGIT_SUBMODULE_STATUS_WD_ADDED\nGIT_SUBMODULE_STATUS_WD_DELETED\nGIT_SUBMODULE_STATUS_WD_MODIFIED\nGIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED\nGIT_SUBMODULE_STATUS_WD_WD_MODIFIED\nGIT_SUBMODULE_STATUS_WD_UNTRACKED","tdef":"typedef","comments":"Return codes for submodule status.\n\nA combination of these flags will be returned to describe the status of a\nsubmodule. Depending on the \"ignore\" property of the submodule, some of\nthe flags may never be returned because they indicate changes that are\nsupposed to be ignored.\n\nSubmodule info is contained in 4 places: the HEAD tree, the index, config\nfiles (both .git/config and .gitmodules), and the working directory. Any\nor all of those places might be missing information about the submodule\ndepending on what state the repo is in. We consider all four places to\nbuild the combination of status flags.\n\nThere are four values that are not really status, but give basic info\nabout what sources of submodule data are available. These will be\nreturned even if ignore is set to \"ALL\".\n\n* IN_HEAD - superproject head contains submodule\n* IN_INDEX - superproject index contains submodule\n* IN_CONFIG - superproject gitmodules has submodule\n* IN_WD - superproject workdir has submodule\n\nThe following values will be returned so long as ignore is not \"ALL\".\n\n* INDEX_ADDED - in index, not in head\n* INDEX_DELETED - in head, not in index\n* INDEX_MODIFIED - index and head don't match\n* WD_UNINITIALIZED - workdir contains empty directory\n* WD_ADDED - in workdir, not index\n* WD_DELETED - in index, not workdir\n* WD_MODIFIED - index and workdir head don't match\n\nThe following can only be returned if ignore is \"NONE\" or \"UNTRACKED\".\n\n* WD_INDEX_MODIFIED - submodule workdir index is dirty\n* WD_WD_MODIFIED - submodule workdir has modified files\n\nLastly, the following will only be returned for ignore \"NONE\".\n\n* WD_UNTRACKED - wd contains untracked files","used":{"returns":[],"needs":[]}}],["git_submodule_update_t",{"type":"enum","file":"types.h","line":262,"lineto":268,"block":"GIT_SUBMODULE_UPDATE_RESET\nGIT_SUBMODULE_UPDATE_CHECKOUT\nGIT_SUBMODULE_UPDATE_REBASE\nGIT_SUBMODULE_UPDATE_MERGE\nGIT_SUBMODULE_UPDATE_NONE","tdef":"typedef","comments":"Submodule update values\n\nThese values represent settings for the `submodule.$name.update`\nconfiguration value which says how to handle `git submodule update` for\nthis submodule. The value is usually set in the \".gitmodules\" file and\ncopied to \".git/config\" when the submodule is initialized.\n\nYou can override this setting on a per-submodule basis with\n`git_submodule_set_update()` and write the changed value to disk using\n`git_submodule_save()`. If you have overwritten the value, you can\nrevert it by passing `GIT_SUBMODULE_UPDATE_RESET` to the set function.\n\nThe values are:\n\n- GIT_SUBMODULE_UPDATE_RESET: reset to the on-disk value.\n- GIT_SUBMODULE_UPDATE_CHECKOUT: the default; when a submodule is\n updated, checkout the new detached HEAD to the submodule directory.\n- GIT_SUBMODULE_UPDATE_REBASE: update by rebasing the current checked\n out branch onto the commit from the superproject.\n- GIT_SUBMODULE_UPDATE_MERGE: update by merging the commit in the\n superproject into the current checkout out branch of the submodule.\n- GIT_SUBMODULE_UPDATE_NONE: do not update this submodule even when\n the commit in the superproject is updated.","used":{"returns":[],"needs":["git_submodule_set_update"]}}],["git_tag",{"type":"struct","value":"git_tag","file":"types.h","line":114,"lineto":114,"block":"","tdef":"typedef","comments":"Parsed representation of a tag object.","used":{"returns":[],"needs":["git_tag_free","git_tag_id","git_tag_lookup","git_tag_lookup_prefix","git_tag_message","git_tag_name","git_tag_owner","git_tag_peel","git_tag_tagger","git_tag_target","git_tag_target_id","git_tag_target_type"]}}],["git_time",{"type":"struct","value":"git_time","file":"types.h","line":156,"lineto":159,"block":"git_time_t time\nint offset","tdef":"typedef","comments":"Time in a signature","used":{"returns":[],"needs":[]}}],["git_trace_callback",{"type":"function pointer","value":"git_trace_callback","file":"trace.h","line":52,"lineto":52,"comments":"An instance for a tracing function","used":{"returns":[],"needs":["git_trace_set"]}}],["git_transfer_progress",{"type":"struct","value":"git_transfer_progress","file":"types.h","line":216,"lineto":221,"block":"unsigned int total_objects\nunsigned int indexed_objects\nunsigned int received_objects\nsize_t received_bytes","tdef":"typedef","comments":"This is passed as the first argument to the callback to allow the\nuser to see the progress.","used":{"returns":["git_remote_stats"],"needs":["git_indexer_stream_add","git_indexer_stream_finalize"]}}],["git_transfer_progress_callback",{"type":"function pointer","value":"git_transfer_progress_callback","file":"types.h","line":230,"lineto":230,"comments":"Type for progress callbacks during indexing. Return a value less than zero\nto cancel the transfer.\n\n@param stats Structure containing information about the state of the transfer\n@param payload Payload provided by caller","used":{"returns":[],"needs":["git_indexer_stream_new","git_odb_write_pack","git_packbuilder_write","git_remote_download"]}}],["git_tree",{"type":"struct","value":"git_tree","file":"types.h","line":126,"lineto":126,"block":"","tdef":"typedef","comments":"Representation of a tree object.","used":{"returns":[],"needs":["git_commit_create","git_commit_create_v","git_commit_tree","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_index_read_tree","git_merge_trees","git_pathspec_match_tree","git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entrycount","git_tree_free","git_tree_id","git_tree_lookup","git_tree_lookup_prefix","git_tree_owner","git_tree_walk","git_treebuilder_create"]}}],["git_tree_entry",{"type":"struct","value":"git_tree_entry","file":"types.h","line":123,"lineto":123,"block":"","tdef":"typedef","comments":"Representation of each one of the entries in a tree object.","used":{"returns":["git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_dup","git_treebuilder_get"],"needs":["git_tree_entry_bypath","git_tree_entry_cmp","git_tree_entry_dup","git_tree_entry_filemode","git_tree_entry_free","git_tree_entry_id","git_tree_entry_name","git_tree_entry_to_object","git_tree_entry_type","git_treebuilder_insert"]}}],["git_treebuilder",{"type":"struct","value":"git_treebuilder","file":"types.h","line":129,"lineto":129,"block":"","tdef":"typedef","comments":"Constructor for in-memory trees","used":{"returns":[],"needs":["git_treebuilder_clear","git_treebuilder_create","git_treebuilder_entrycount","git_treebuilder_filter","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_write"]}}],["git_treewalk_cb",{"type":"function pointer","value":"git_treewalk_cb","file":"tree.h","line":359,"lineto":360,"comments":"Callback for the tree traversal method","used":{"returns":[],"needs":["git_tree_walk"]}}],["git_treewalk_mode",{"type":"enum","file":"tree.h","line":363,"lineto":366,"block":"GIT_TREEWALK_PRE\nGIT_TREEWALK_POST","tdef":"typedef","comments":"Tree traversal modes","used":{"returns":[],"needs":["git_tree_walk"]}}]],"prefix":"include/git2","groups":[["attr",["git_attr_add_macro","git_attr_cache_flush","git_attr_foreach","git_attr_get","git_attr_get_many"]],["blob",["git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_free","git_blob_id","git_blob_is_binary","git_blob_lookup","git_blob_lookup_prefix","git_blob_owner","git_blob_rawcontent","git_blob_rawsize"]],["branch",["git_branch_create","git_branch_delete","git_branch_foreach","git_branch_is_head","git_branch_lookup","git_branch_move","git_branch_name","git_branch_remote_name","git_branch_set_upstream","git_branch_upstream","git_branch_upstream_name"]],["checkout",["git_checkout_head","git_checkout_index","git_checkout_tree"]],["clone",["git_clone"]],["commit",["git_commit_author","git_commit_committer","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_free","git_commit_id","git_commit_lookup","git_commit_lookup_prefix","git_commit_message","git_commit_message_encoding","git_commit_nth_gen_ancestor","git_commit_owner","git_commit_parent","git_commit_parent_id","git_commit_parentcount","git_commit_raw_header","git_commit_time","git_commit_time_offset","git_commit_tree","git_commit_tree_id"]],["config",["git_config_add_backend","git_config_add_file_ondisk","git_config_backend_foreach_match","git_config_delete_entry","git_config_find_global","git_config_find_system","git_config_find_xdg","git_config_foreach","git_config_foreach_match","git_config_free","git_config_get_bool","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_mapped","git_config_get_multivar_foreach","git_config_get_string","git_config_iterator_free","git_config_iterator_glob_new","git_config_iterator_new","git_config_lookup_map_value","git_config_multivar_iterator_new","git_config_new","git_config_next","git_config_open_default","git_config_open_global","git_config_open_level","git_config_open_ondisk","git_config_parse_bool","git_config_parse_int32","git_config_parse_int64","git_config_refresh","git_config_set_bool","git_config_set_int32","git_config_set_int64","git_config_set_multivar","git_config_set_string"]],["cred",["git_cred_has_username","git_cred_ssh_keyfile_passphrase_new","git_cred_ssh_publickey_new","git_cred_userpass","git_cred_userpass_plaintext_new"]],["diff",["git_diff_blob_to_buffer","git_diff_blobs","git_diff_find_similar","git_diff_foreach","git_diff_get_patch","git_diff_index_to_workdir","git_diff_is_sorted_icase","git_diff_list_free","git_diff_merge","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_patch_delta","git_diff_patch_free","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_patch_get_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_line_stats","git_diff_patch_num_hunks","git_diff_patch_num_lines_in_hunk","git_diff_patch_print","git_diff_patch_size","git_diff_patch_to_str","git_diff_print_compact","git_diff_print_patch","git_diff_print_raw","git_diff_status_char","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir"]],["giterr",["giterr_clear","giterr_last","giterr_set_oom","giterr_set_str"]],["graph",["git_graph_ahead_behind"]],["ignore",["git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored"]],["index",["git_index_add","git_index_add_all","git_index_add_bypath","git_index_caps","git_index_clear","git_index_conflict_add","git_index_conflict_cleanup","git_index_conflict_get","git_index_conflict_iterator_free","git_index_conflict_iterator_new","git_index_conflict_next","git_index_conflict_remove","git_index_entry_stage","git_index_entrycount","git_index_find","git_index_free","git_index_get_byindex","git_index_get_bypath","git_index_has_conflicts","git_index_name_add","git_index_name_clear","git_index_name_entrycount","git_index_name_get_byindex","git_index_new","git_index_open","git_index_owner","git_index_path","git_index_read","git_index_read_tree","git_index_remove","git_index_remove_all","git_index_remove_bypath","git_index_remove_directory","git_index_reuc_add","git_index_reuc_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_byindex","git_index_reuc_get_bypath","git_index_reuc_remove","git_index_set_caps","git_index_update_all","git_index_write","git_index_write_tree","git_index_write_tree_to"]],["indexer",["git_indexer_stream_add","git_indexer_stream_finalize","git_indexer_stream_free","git_indexer_stream_hash","git_indexer_stream_new"]],["libgit2",["git_libgit2_capabilities","git_libgit2_opts","git_libgit2_version"]],["merge",["git_merge_base","git_merge_base_many","git_merge_head_free","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref","git_merge_trees"]],["message",["git_message_prettify"]],["note",["git_note_create","git_note_default_ref","git_note_foreach","git_note_free","git_note_iterator_free","git_note_iterator_new","git_note_message","git_note_next","git_note_oid","git_note_read","git_note_remove"]],["object",["git_object__size","git_object_dup","git_object_free","git_object_id","git_object_lookup","git_object_lookup_prefix","git_object_owner","git_object_peel","git_object_string2type","git_object_type","git_object_type2string","git_object_typeisloose"]],["odb",["git_odb_add_alternate","git_odb_add_backend","git_odb_add_disk_alternate","git_odb_backend_loose","git_odb_backend_one_pack","git_odb_backend_pack","git_odb_exists","git_odb_foreach","git_odb_free","git_odb_get_backend","git_odb_hash","git_odb_hashfile","git_odb_new","git_odb_num_backends","git_odb_object_data","git_odb_object_free","git_odb_object_id","git_odb_object_size","git_odb_object_type","git_odb_open","git_odb_open_rstream","git_odb_open_wstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_refresh","git_odb_stream_finalize_write","git_odb_stream_free","git_odb_stream_read","git_odb_stream_write","git_odb_write","git_odb_write_pack"]],["oid",["git_oid_allocfmt","git_oid_cmp","git_oid_cpy","git_oid_equal","git_oid_fmt","git_oid_fromraw","git_oid_fromstr","git_oid_fromstrn","git_oid_fromstrp","git_oid_iszero","git_oid_ncmp","git_oid_nfmt","git_oid_pathfmt","git_oid_shorten_add","git_oid_shorten_free","git_oid_shorten_new","git_oid_strcmp","git_oid_streq","git_oid_tostr"]],["packbuilder",["git_packbuilder_foreach","git_packbuilder_free","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_packbuilder_new","git_packbuilder_object_count","git_packbuilder_set_threads","git_packbuilder_write","git_packbuilder_written"]],["pathspec",["git_pathspec_free","git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_list_diff_entry","git_pathspec_match_list_entry","git_pathspec_match_list_entrycount","git_pathspec_match_list_failed_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_free","git_pathspec_match_tree","git_pathspec_match_workdir","git_pathspec_matches_path","git_pathspec_new"]],["push",["git_push_add_refspec","git_push_finish","git_push_free","git_push_new","git_push_set_options","git_push_status_foreach","git_push_unpack_ok","git_push_update_tips"]],["refdb",["git_refdb_backend_fs","git_refdb_compress","git_refdb_free","git_refdb_new","git_refdb_open","git_refdb_set_backend"]],["reference",["git_reference__alloc","git_reference__alloc_symbolic","git_reference_cmp","git_reference_create","git_reference_delete","git_reference_dwim","git_reference_foreach","git_reference_foreach_glob","git_reference_free","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_is_valid_name","git_reference_iterator_free","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_list","git_reference_lookup","git_reference_name","git_reference_name_to_id","git_reference_next","git_reference_normalize_name","git_reference_owner","git_reference_peel","git_reference_rename","git_reference_resolve","git_reference_set_target","git_reference_shorthand","git_reference_symbolic_create","git_reference_symbolic_set_target","git_reference_symbolic_target","git_reference_target","git_reference_target_peel","git_reference_type"]],["reflog",["git_reflog_append","git_reflog_delete","git_reflog_drop","git_reflog_entry_byindex","git_reflog_entry_committer","git_reflog_entry_id_new","git_reflog_entry_id_old","git_reflog_entry_message","git_reflog_entrycount","git_reflog_free","git_reflog_read","git_reflog_rename","git_reflog_write"]],["refspec",["git_refspec_direction","git_refspec_dst","git_refspec_dst_matches","git_refspec_force","git_refspec_rtransform","git_refspec_src","git_refspec_src_matches","git_refspec_string","git_refspec_transform"]],["remote",["git_remote_add_fetch","git_remote_add_push","git_remote_autotag","git_remote_check_cert","git_remote_clear_refspecs","git_remote_connect","git_remote_connected","git_remote_create","git_remote_create_inmemory","git_remote_disconnect","git_remote_download","git_remote_free","git_remote_get_fetch_refspecs","git_remote_get_push_refspecs","git_remote_get_refspec","git_remote_is_valid_name","git_remote_list","git_remote_load","git_remote_ls","git_remote_name","git_remote_owner","git_remote_pushurl","git_remote_refspec_count","git_remote_remove_refspec","git_remote_rename","git_remote_save","git_remote_set_autotag","git_remote_set_callbacks","git_remote_set_cred_acquire_cb","git_remote_set_pushurl","git_remote_set_transport","git_remote_set_update_fetchhead","git_remote_set_url","git_remote_stats","git_remote_stop","git_remote_supported_url","git_remote_update_fetchhead","git_remote_update_tips","git_remote_url","git_remote_valid_url"]],["repository",["git_repository__cleanup","git_repository_config","git_repository_detach_head","git_repository_discover","git_repository_fetchhead_foreach","git_repository_free","git_repository_get_namespace","git_repository_hashfile","git_repository_head","git_repository_head_detached","git_repository_head_orphan","git_repository_index","git_repository_init","git_repository_init_ext","git_repository_is_bare","git_repository_is_empty","git_repository_is_shallow","git_repository_merge_cleanup","git_repository_mergehead_foreach","git_repository_message","git_repository_message_remove","git_repository_new","git_repository_odb","git_repository_open","git_repository_open_bare","git_repository_open_ext","git_repository_path","git_repository_refdb","git_repository_set_config","git_repository_set_head","git_repository_set_head_detached","git_repository_set_index","git_repository_set_namespace","git_repository_set_odb","git_repository_set_refdb","git_repository_set_workdir","git_repository_state","git_repository_workdir","git_repository_wrap_odb"]],["reset",["git_reset","git_reset_default"]],["revparse",["git_revparse","git_revparse_ext","git_revparse_single"]],["revwalk",["git_revwalk_free","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_hide_ref","git_revwalk_new","git_revwalk_next","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_push_range","git_revwalk_push_ref","git_revwalk_repository","git_revwalk_reset","git_revwalk_simplify_first_parent","git_revwalk_sorting"]],["signature",["git_signature_default","git_signature_dup","git_signature_free","git_signature_new","git_signature_now"]],["smart",["git_smart_subtransport_git","git_smart_subtransport_http","git_smart_subtransport_ssh"]],["stash",["git_stash_drop","git_stash_foreach","git_stash_save"]],["status",["git_status_byindex","git_status_file","git_status_foreach","git_status_foreach_ext","git_status_list_entrycount","git_status_list_free","git_status_list_new","git_status_should_ignore"]],["strarray",["git_strarray_copy","git_strarray_free"]],["submodule",["git_submodule_add_finalize","git_submodule_add_setup","git_submodule_add_to_index","git_submodule_fetch_recurse_submodules","git_submodule_foreach","git_submodule_head_id","git_submodule_ignore","git_submodule_index_id","git_submodule_init","git_submodule_location","git_submodule_lookup","git_submodule_name","git_submodule_open","git_submodule_owner","git_submodule_path","git_submodule_reload","git_submodule_reload_all","git_submodule_save","git_submodule_set_fetch_recurse_submodules","git_submodule_set_ignore","git_submodule_set_update","git_submodule_set_url","git_submodule_status","git_submodule_sync","git_submodule_update","git_submodule_url","git_submodule_wd_id"]],["tag",["git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_foreach","git_tag_free","git_tag_id","git_tag_list","git_tag_list_match","git_tag_lookup","git_tag_lookup_prefix","git_tag_message","git_tag_name","git_tag_owner","git_tag_peel","git_tag_tagger","git_tag_target","git_tag_target_id","git_tag_target_type"]],["threads",["git_threads_init","git_threads_shutdown"]],["trace",["git_trace_set"]],["transport",["git_transport_dummy","git_transport_local","git_transport_new","git_transport_smart"]],["tree",["git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entry_cmp","git_tree_entry_dup","git_tree_entry_filemode","git_tree_entry_free","git_tree_entry_id","git_tree_entry_name","git_tree_entry_to_object","git_tree_entry_type","git_tree_entrycount","git_tree_free","git_tree_id","git_tree_lookup","git_tree_lookup_prefix","git_tree_owner","git_tree_walk"]],["treebuilder",["git_treebuilder_clear","git_treebuilder_create","git_treebuilder_entrycount","git_treebuilder_filter","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_write"]]],"examples":[["cat-file.c","ex/HEAD/cat-file.html"],["diff.c","ex/HEAD/diff.html"],["general.c","ex/HEAD/general.html"],["init.c","ex/HEAD/init.html"],["log.c","ex/HEAD/log.html"],["network/clone.c","ex/HEAD/network/clone.html"],["network/common.c","ex/HEAD/network/common.html"],["network/fetch.c","ex/HEAD/network/fetch.html"],["network/git2.c","ex/HEAD/network/git2.html"],["network/index-pack.c","ex/HEAD/network/index-pack.html"],["network/ls-remote.c","ex/HEAD/network/ls-remote.html"],["rev-list.c","ex/HEAD/rev-list.html"],["rev-parse.c","ex/HEAD/rev-parse.html"],["showindex.c","ex/HEAD/showindex.html"],["status.c","ex/HEAD/status.html"]]} \ No newline at end of file
+{"files":[{"file":"attr.h","functions":["git_attr_get","git_attr_get_many","git_attr_foreach","git_attr_cache_flush","git_attr_add_macro"],"meta":{"brief":"Git attribute management routines","defgroup":"git_attr Git attribute management routines","ingroup":"Git","comments":"\n"},"lines":240},{"file":"blob.h","functions":["git_blob_lookup","git_blob_lookup_prefix","git_blob_free","git_blob_id","git_blob_owner","git_blob_rawcontent","git_blob_rawsize","git_blob_filtered_content","git_blob_create_fromworkdir","git_blob_create_fromdisk","git_blob_create_fromchunks","git_blob_create_frombuffer","git_blob_is_binary"],"meta":{"brief":"Git blob load and write routines","defgroup":"git_blob Git blob load and write routines","ingroup":"Git","comments":"\n"},"lines":227},{"file":"branch.h","functions":["git_branch_create","git_branch_delete","git_branch_foreach","git_branch_move","git_branch_lookup","git_branch_name","git_branch_upstream","git_branch_set_upstream","git_branch_upstream_name","git_branch_is_head","git_branch_remote_name"],"meta":{"brief":"Git branch parsing routines","defgroup":"git_branch Git branch management","ingroup":"Git","comments":"\n"},"lines":253},{"file":"buffer.h","functions":["git_buf_free","git_buf_grow","git_buf_set"],"meta":{"brief":"Buffer export structure","ingroup":"Git","comments":"\n"},"lines":111},{"file":"checkout.h","functions":["git_checkout_head","git_checkout_index","git_checkout_tree"],"meta":{"brief":"Git checkout routines","defgroup":"git_checkout Git checkout routines","ingroup":"Git","comments":"\n"},"lines":292},{"file":"clone.h","functions":["git_clone"],"meta":{"brief":"Git cloning routines","defgroup":"git_clone Git cloning routines","ingroup":"Git","comments":"\n"},"lines":111},{"file":"commit.h","functions":["git_commit_lookup","git_commit_lookup_prefix","git_commit_free","git_commit_id","git_commit_owner","git_commit_message_encoding","git_commit_message","git_commit_time","git_commit_time_offset","git_commit_committer","git_commit_author","git_commit_raw_header","git_commit_tree","git_commit_tree_id","git_commit_parentcount","git_commit_parent","git_commit_parent_id","git_commit_nth_gen_ancestor","git_commit_create","git_commit_create_v"],"meta":{"brief":"Git commit parsing, formatting routines","defgroup":"git_commit Git commit parsing, formatting routines","ingroup":"Git","comments":"\n"},"lines":303},{"file":"common.h","functions":["git_libgit2_version","git_libgit2_capabilities","git_libgit2_opts"],"meta":{"brief":"Git common platform definitions","defgroup":"git_common Git common platform definitions","ingroup":"Git","comments":"\n"},"lines":236},{"file":"config.h","functions":["git_config_find_global","git_config_find_xdg","git_config_find_system","git_config_open_default","git_config_new","git_config_add_file_ondisk","git_config_open_ondisk","git_config_open_level","git_config_open_global","git_config_refresh","git_config_free","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_bool","git_config_get_string","git_config_get_multivar_foreach","git_config_multivar_iterator_new","git_config_next","git_config_iterator_free","git_config_set_int32","git_config_set_int64","git_config_set_bool","git_config_set_string","git_config_set_multivar","git_config_delete_entry","git_config_foreach","git_config_iterator_new","git_config_iterator_glob_new","git_config_foreach_match","git_config_get_mapped","git_config_lookup_map_value","git_config_parse_bool","git_config_parse_int32","git_config_parse_int64","git_config_backend_foreach_match"],"meta":{"brief":"Git config management routines","defgroup":"git_config Git config management routines","ingroup":"Git","comments":"\n"},"lines":610},{"file":"cred_helpers.h","functions":["git_cred_userpass"],"meta":{"brief":"Utility functions for credential management","defgroup":"git_cred_helpers credential management helpers","ingroup":"Git","comments":"\n"},"lines":53},{"file":"diff.h","functions":["git_diff_list_free","git_diff_tree_to_tree","git_diff_tree_to_index","git_diff_index_to_workdir","git_diff_tree_to_workdir","git_diff_merge","git_diff_find_similar","git_diff_foreach","git_diff_print_compact","git_diff_print_raw","git_diff_status_char","git_diff_print_patch","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_is_sorted_icase","git_diff_get_patch","git_diff_patch_free","git_diff_patch_delta","git_diff_patch_num_hunks","git_diff_patch_line_stats","git_diff_patch_get_hunk","git_diff_patch_num_lines_in_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_size","git_diff_patch_print","git_diff_patch_to_str","git_diff_blobs","git_diff_patch_from_blobs","git_diff_blob_to_buffer","git_diff_patch_from_blob_and_buffer"],"meta":{"brief":"Git tree and file differencing routines.","ingroup":"Git","comments":"\n"},"lines":1133},{"file":"errors.h","functions":["giterr_last","giterr_clear","giterr_set_str","giterr_set_oom"],"meta":{"brief":"Git error handling routines and variables","ingroup":"Git","comments":"\n"},"lines":123},{"file":"filter.h","functions":["git_filter_list_load","git_filter_list_apply_to_data","git_filter_list_apply_to_file","git_filter_list_apply_to_blob","git_filter_list_free"],"meta":{"brief":"Git filter APIs","ingroup":"Git","comments":"\n"},"lines":141},{"file":"graph.h","functions":["git_graph_ahead_behind"],"meta":{"brief":"Git graph traversal routines","defgroup":"git_revwalk Git graph traversal routines","ingroup":"Git","comments":"\n"},"lines":41},{"file":"ignore.h","functions":["git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored"],"meta":{},"lines":78},{"file":"index.h","functions":["git_index_open","git_index_new","git_index_free","git_index_owner","git_index_caps","git_index_set_caps","git_index_read","git_index_write","git_index_path","git_index_read_tree","git_index_write_tree","git_index_write_tree_to","git_index_entrycount","git_index_clear","git_index_get_byindex","git_index_get_bypath","git_index_remove","git_index_remove_directory","git_index_add","git_index_entry_stage","git_index_add_bypath","git_index_remove_bypath","git_index_add_all","git_index_remove_all","git_index_update_all","git_index_find","git_index_conflict_add","git_index_conflict_get","git_index_conflict_remove","git_index_conflict_cleanup","git_index_has_conflicts","git_index_conflict_iterator_new","git_index_conflict_next","git_index_conflict_iterator_free"],"meta":{"brief":"Git index parsing and manipulation routines","defgroup":"git_index Git index parsing and manipulation routines","ingroup":"Git","comments":"\n"},"lines":674},{"file":"indexer.h","functions":["git_indexer_stream_new","git_indexer_stream_add","git_indexer_stream_finalize","git_indexer_stream_hash","git_indexer_stream_free"],"meta":{},"lines":70},{"file":"inttypes.h","functions":[],"meta":{},"lines":309},{"file":"merge.h","functions":["git_merge_base","git_merge_base_many","git_merge_head_from_ref","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_free","git_merge_trees"],"meta":{"brief":"Git merge routines","defgroup":"git_merge Git merge routines","ingroup":"Git","comments":"\n"},"lines":173},{"file":"message.h","functions":["git_message_prettify"],"meta":{"brief":"Git message management routines","ingroup":"Git","comments":"\n"},"lines":49},{"file":"net.h","functions":[],"meta":{"brief":"Git networking declarations","ingroup":"Git","comments":"\n"},"lines":53},{"file":"notes.h","functions":["git_note_iterator_new","git_note_iterator_free","git_note_next","git_note_read","git_note_message","git_note_oid","git_note_create","git_note_remove","git_note_free","git_note_default_ref","git_note_foreach"],"meta":{"brief":"Git notes management routines","defgroup":"git_note Git notes management routines","ingroup":"Git","comments":"\n"},"lines":202},{"file":"object.h","functions":["git_object_lookup","git_object_lookup_prefix","git_object_id","git_object_type","git_object_owner","git_object_free","git_object_type2string","git_object_string2type","git_object_typeisloose","git_object__size","git_object_peel","git_object_dup"],"meta":{"brief":"Git revision object management routines","defgroup":"git_object Git revision object management routines","ingroup":"Git","comments":"\n"},"lines":203},{"file":"odb.h","functions":["git_odb_new","git_odb_open","git_odb_add_disk_alternate","git_odb_free","git_odb_read","git_odb_read_prefix","git_odb_read_header","git_odb_exists","git_odb_refresh","git_odb_foreach","git_odb_write","git_odb_open_wstream","git_odb_stream_write","git_odb_stream_finalize_write","git_odb_stream_read","git_odb_stream_free","git_odb_open_rstream","git_odb_write_pack","git_odb_hash","git_odb_hashfile","git_odb_object_free","git_odb_object_id","git_odb_object_data","git_odb_object_size","git_odb_object_type","git_odb_add_backend","git_odb_add_alternate","git_odb_num_backends","git_odb_get_backend"],"meta":{"brief":"Git object database routines","defgroup":"git_odb Git object database routines","ingroup":"Git","comments":"\n"},"lines":468},{"file":"odb_backend.h","functions":["git_odb_backend_pack","git_odb_backend_loose","git_odb_backend_one_pack"],"meta":{"brief":"Git custom backend functions","defgroup":"git_odb Git object database routines","ingroup":"Git","comments":"\n"},"lines":126},{"file":"oid.h","functions":["git_oid_fromstr","git_oid_fromstrp","git_oid_fromstrn","git_oid_fromraw","git_oid_fmt","git_oid_nfmt","git_oid_pathfmt","git_oid_allocfmt","git_oid_tostr","git_oid_cpy","git_oid_cmp","git_oid_equal","git_oid_ncmp","git_oid_streq","git_oid_strcmp","git_oid_iszero","git_oid_shorten_new","git_oid_shorten_add","git_oid_shorten_free"],"meta":{"brief":"Git object id routines","defgroup":"git_oid Git object id routines","ingroup":"Git","comments":"\n"},"lines":268},{"file":"pack.h","functions":["git_packbuilder_new","git_packbuilder_set_threads","git_packbuilder_insert","git_packbuilder_insert_tree","git_packbuilder_insert_commit","git_packbuilder_write","git_packbuilder_foreach","git_packbuilder_object_count","git_packbuilder_written","git_packbuilder_free"],"meta":{"brief":"Git pack management routines","ingroup":"Git","comments":"\n"},"lines":161},{"file":"pathspec.h","functions":["git_pathspec_new","git_pathspec_free","git_pathspec_matches_path","git_pathspec_match_workdir","git_pathspec_match_index","git_pathspec_match_tree","git_pathspec_match_diff","git_pathspec_match_list_free","git_pathspec_match_list_entrycount","git_pathspec_match_list_entry","git_pathspec_match_list_diff_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_failed_entry"],"meta":{},"lines":260},{"file":"push.h","functions":["git_push_new","git_push_set_options","git_push_add_refspec","git_push_update_tips","git_push_finish","git_push_unpack_ok","git_push_status_foreach","git_push_free"],"meta":{"brief":"Git push management functions","defgroup":"git_push push management functions","ingroup":"Git","comments":"\n"},"lines":131},{"file":"refdb.h","functions":["git_refdb_new","git_refdb_open","git_refdb_compress","git_refdb_free"],"meta":{"brief":"Git custom refs backend functions","defgroup":"git_refdb Git custom refs backend API","ingroup":"Git","comments":"\n"},"lines":68},{"file":"reflog.h","functions":["git_reflog_read","git_reflog_write","git_reflog_append","git_reflog_rename","git_reflog_delete","git_reflog_entrycount","git_reflog_entry_byindex","git_reflog_drop","git_reflog_entry_id_old","git_reflog_entry_id_new","git_reflog_entry_committer","git_reflog_entry_message","git_reflog_free"],"meta":{"brief":"Git reflog management routines","defgroup":"git_reflog Git reflog management routines","ingroup":"Git","comments":"\n"},"lines":167},{"file":"refs.h","functions":["git_reference_lookup","git_reference_name_to_id","git_reference_dwim","git_reference_symbolic_create","git_reference_create","git_reference_target","git_reference_target_peel","git_reference_symbolic_target","git_reference_type","git_reference_name","git_reference_resolve","git_reference_owner","git_reference_symbolic_set_target","git_reference_set_target","git_reference_rename","git_reference_delete","git_reference_list","git_reference_foreach","git_reference_free","git_reference_cmp","git_reference_iterator_new","git_reference_iterator_glob_new","git_reference_next","git_reference_iterator_free","git_reference_foreach_glob","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_normalize_name","git_reference_peel","git_reference_is_valid_name","git_reference_shorthand"],"meta":{"brief":"Git reference management routines","defgroup":"git_reference Git reference management routines","ingroup":"Git","comments":"\n"},"lines":562},{"file":"refspec.h","functions":["git_refspec_src","git_refspec_dst","git_refspec_string","git_refspec_force","git_refspec_direction","git_refspec_src_matches","git_refspec_dst_matches","git_refspec_transform","git_refspec_rtransform"],"meta":{"brief":"Git refspec attributes","defgroup":"git_refspec Git refspec attributes","ingroup":"Git","comments":"\n"},"lines":105},{"file":"remote.h","functions":["git_remote_create","git_remote_create_inmemory","git_remote_load","git_remote_save","git_remote_owner","git_remote_name","git_remote_url","git_remote_pushurl","git_remote_set_url","git_remote_set_pushurl","git_remote_add_fetch","git_remote_get_fetch_refspecs","git_remote_add_push","git_remote_get_push_refspecs","git_remote_clear_refspecs","git_remote_refspec_count","git_remote_get_refspec","git_remote_remove_refspec","git_remote_connect","git_remote_ls","git_remote_download","git_remote_connected","git_remote_stop","git_remote_disconnect","git_remote_free","git_remote_update_tips","git_remote_valid_url","git_remote_supported_url","git_remote_list","git_remote_check_cert","git_remote_set_cred_acquire_cb","git_remote_set_transport","git_remote_set_callbacks","git_remote_stats","git_remote_autotag","git_remote_set_autotag","git_remote_rename","git_remote_update_fetchhead","git_remote_set_update_fetchhead","git_remote_is_valid_name"],"meta":{"brief":"Git remote management functions","defgroup":"git_remote remote management functions","ingroup":"Git","comments":"\n"},"lines":505},{"file":"repository.h","functions":["git_repository_open","git_repository_wrap_odb","git_repository_discover","git_repository_open_ext","git_repository_open_bare","git_repository_free","git_repository_init","git_repository_init_ext","git_repository_head","git_repository_head_detached","git_repository_head_unborn","git_repository_is_empty","git_repository_path","git_repository_workdir","git_repository_set_workdir","git_repository_is_bare","git_repository_config","git_repository_odb","git_repository_refdb","git_repository_index","git_repository_message","git_repository_message_remove","git_repository_merge_cleanup","git_repository_fetchhead_foreach","git_repository_mergehead_foreach","git_repository_hashfile","git_repository_set_head","git_repository_set_head_detached","git_repository_detach_head","git_repository_state","git_repository_set_namespace","git_repository_get_namespace","git_repository_is_shallow"],"meta":{"brief":"Git repository management routines","defgroup":"git_repository Git repository management routines","ingroup":"Git","comments":"\n"},"lines":675},{"file":"reset.h","functions":["git_reset","git_reset_default"],"meta":{"brief":"Git reset management routines","ingroup":"Git","comments":"\n"},"lines":81},{"file":"revparse.h","functions":["git_revparse_single","git_revparse_ext","git_revparse"],"meta":{"brief":"Git revision parsing routines","defgroup":"git_revparse Git revision parsing routines","ingroup":"Git","comments":"\n"},"lines":113},{"file":"revwalk.h","functions":["git_revwalk_new","git_revwalk_reset","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_push_ref","git_revwalk_hide_ref","git_revwalk_next","git_revwalk_sorting","git_revwalk_push_range","git_revwalk_simplify_first_parent","git_revwalk_free","git_revwalk_repository"],"meta":{"brief":"Git revision traversal routines","defgroup":"git_revwalk Git revision traversal routines","ingroup":"Git","comments":"\n"},"lines":260},{"file":"signature.h","functions":["git_signature_new","git_signature_now","git_signature_default","git_signature_dup","git_signature_free"],"meta":{"brief":"Git signature creation","defgroup":"git_signature Git signature creation","ingroup":"Git","comments":"\n"},"lines":89},{"file":"stash.h","functions":["git_stash_save","git_stash_foreach","git_stash_drop"],"meta":{"brief":"Git stash management routines","ingroup":"Git","comments":"\n"},"lines":121},{"file":"status.h","functions":["git_status_foreach","git_status_foreach_ext","git_status_file","git_status_list_new","git_status_list_entrycount","git_status_byindex","git_status_list_free","git_status_should_ignore"],"meta":{"brief":"Git file status routines","defgroup":"git_status Git file status routines","ingroup":"Git","comments":"\n"},"lines":318},{"file":"stdint.h","functions":[],"meta":{},"lines":247},{"file":"strarray.h","functions":["git_strarray_free","git_strarray_copy"],"meta":{"brief":"Git string array routines","defgroup":"git_strarray Git string array routines","ingroup":"Git","comments":"\n"},"lines":59},{"file":"submodule.h","functions":["git_submodule_lookup","git_submodule_foreach","git_submodule_add_setup","git_submodule_add_finalize","git_submodule_add_to_index","git_submodule_save","git_submodule_owner","git_submodule_name","git_submodule_path","git_submodule_url","git_submodule_set_url","git_submodule_index_id","git_submodule_head_id","git_submodule_wd_id","git_submodule_ignore","git_submodule_set_ignore","git_submodule_update","git_submodule_set_update","git_submodule_fetch_recurse_submodules","git_submodule_set_fetch_recurse_submodules","git_submodule_init","git_submodule_sync","git_submodule_open","git_submodule_reload","git_submodule_reload_all","git_submodule_status","git_submodule_location"],"meta":{"brief":"Git submodule management utilities","defgroup":"git_submodule Git submodule management routines","ingroup":"Git","comments":"\n"},"lines":524},{"file":"sys/commit.h","functions":["git_commit_create_from_oids"],"meta":{"brief":"Low-level Git commit creation","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":46},{"file":"sys/config.h","functions":["git_config_add_backend"],"meta":{"brief":"Git config backend routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":97},{"file":"sys/filter.h","functions":["git_filter_lookup","git_filter_list_new","git_filter_list_push","git_filter_list_length","git_filter_source_repo","git_filter_source_path","git_filter_source_filemode","git_filter_source_id","git_filter_source_mode","git_filter_register","git_filter_unregister"],"meta":{"brief":"Git filter backend and plugin routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":292},{"file":"sys/index.h","functions":["git_index_name_entrycount","git_index_name_get_byindex","git_index_name_add","git_index_name_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_bypath","git_index_reuc_get_byindex","git_index_reuc_add","git_index_reuc_remove","git_index_reuc_clear"],"meta":{"brief":"Low-level Git index manipulation routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":177},{"file":"sys/odb_backend.h","functions":[],"meta":{"brief":"Git custom backend implementors functions","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":84},{"file":"sys/refdb_backend.h","functions":["git_refdb_backend_fs","git_refdb_set_backend"],"meta":{"brief":"Git custom refs backend functions","defgroup":"git_refdb_backend Git custom refs backend API","ingroup":"Git","comments":"\n"},"lines":158},{"file":"sys/refs.h","functions":["git_reference__alloc","git_reference__alloc_symbolic"],"meta":{},"lines":38},{"file":"sys/repository.h","functions":["git_repository_new","git_repository__cleanup","git_repository_set_config","git_repository_set_odb","git_repository_set_refdb","git_repository_set_index"],"meta":{"brief":"Git repository custom implementation routines","defgroup":"git_backend Git custom backend APIs","ingroup":"Git","comments":"\n"},"lines":106},{"file":"tag.h","functions":["git_tag_lookup","git_tag_lookup_prefix","git_tag_free","git_tag_id","git_tag_owner","git_tag_target","git_tag_target_id","git_tag_target_type","git_tag_name","git_tag_tagger","git_tag_message","git_tag_create","git_tag_annotation_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_list","git_tag_list_match","git_tag_foreach","git_tag_peel"],"meta":{"brief":"Git tag parsing routines","defgroup":"git_tag Git tag management","ingroup":"Git","comments":"\n"},"lines":352},{"file":"threads.h","functions":["git_threads_init","git_threads_shutdown"],"meta":{"brief":"Library level thread functions","defgroup":"git_thread Threading functions","ingroup":"Git","comments":"\n"},"lines":49},{"file":"trace.h","functions":["git_trace_set"],"meta":{"brief":"Git tracing configuration routines","defgroup":"git_trace Git tracing configuration routines","ingroup":"Git","comments":"\n"},"lines":67},{"file":"transport.h","functions":["git_cred_has_username","git_cred_userpass_plaintext_new","git_cred_ssh_keyfile_passphrase_new","git_cred_ssh_publickey_new","git_transport_new","git_transport_dummy","git_transport_local","git_transport_smart","git_smart_subtransport_http","git_smart_subtransport_git","git_smart_subtransport_ssh"],"meta":{"brief":"Git transport interfaces and functions","defgroup":"git_transport interfaces and functions","ingroup":"Git","comments":"\n"},"lines":425},{"file":"tree.h","functions":["git_tree_lookup","git_tree_lookup_prefix","git_tree_free","git_tree_id","git_tree_owner","git_tree_entrycount","git_tree_entry_byname","git_tree_entry_byindex","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entry_dup","git_tree_entry_free","git_tree_entry_name","git_tree_entry_id","git_tree_entry_type","git_tree_entry_filemode","git_tree_entry_cmp","git_tree_entry_to_object","git_treebuilder_create","git_treebuilder_clear","git_treebuilder_entrycount","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_filter","git_treebuilder_write","git_tree_walk"],"meta":{"brief":"Git tree parsing, loading routines","defgroup":"git_tree Git tree parsing, loading routines","ingroup":"Git","comments":"\n"},"lines":393},{"file":"types.h","functions":[],"meta":{"brief":"libgit2 base & compatibility types","ingroup":"Git","comments":"\n"},"lines":306},{"file":"version.h","functions":[],"meta":{},"lines":15}],"functions":{"git_attr_get":{"type":"function","file":"attr.h","line":142,"lineto":147,"args":[{"name":"value_out","type":"const char **","comment":"Output of the value of the attribute. Use the GIT_ATTR_... macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just use the string value for attributes set to a value. You should NOT modify or free this value."},{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"The path to check for attributes. Relative paths are interpreted relative to the repo root. The file does not have to exist, but if it does not, then it will be treated as a plain file (not a directory)."},{"name":"name","type":"const char *","comment":"The name of the attribute to look up."}],"argline":"const char **value_out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tconst char *name","sig":"const char **::git_repository *::uint32_t::const char *::const char *","return":{"type":"int"},"description":"<p>Look up the value of one git attribute for path.</p>\n","comments":"","group":"attr"},"git_attr_get_many":{"type":"function","file":"attr.h","line":178,"lineto":186,"args":[{"name":"values_out","type":"const char **","comment":"An array of num_attr entries that will have string pointers written into it for the values of the attributes. You should not modify or free the values that are written into this array (although of course, you should free the array itself if you allocated it)."},{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"The path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."},{"name":"num_attr","type":"size_t","comment":"The number of attributes being looked up"},{"name":"names","type":"const char **","comment":"An array of num_attr strings containing attribute names."}],"argline":"const char **values_out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tsize_t num_attr,\n\tconst char **names","sig":"const char **::git_repository *::uint32_t::const char *::size_t::const char **","return":{"type":"int"},"description":"<p>Look up a list of git attributes for path.</p>\n","comments":"<p>Use this if you have a known list of attributes that you want to\nlook up in a single call. This is somewhat more efficient than\ncalling <code>git_attr_get()</code> multiple times.</p>\n\n<p>For example, you might write:</p>\n\n<pre><code>const char *attrs[] = { &quot;crlf&quot;, &quot;diff&quot;, &quot;foo&quot; };\nconst char **values[3];\ngit_attr_get_many(values, repo, 0, &quot;my/fun/file.c&quot;, 3, attrs);\n</code></pre>\n\n<p>Then you could loop through the 3 values to get the settings for\nthe three attributes you asked about.</p>\n","group":"attr"},"git_attr_foreach":{"type":"function","file":"attr.h","line":205,"lineto":210,"args":[{"name":"repo","type":"git_repository *","comment":"The repository containing the path."},{"name":"flags","type":"uint32_t","comment":"A combination of GIT_ATTR_CHECK... flags."},{"name":"path","type":"const char *","comment":"Path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."},{"name":"callback","type":"git_attr_foreach_cb","comment":"Function to invoke on each attribute name and value. The value may be NULL is the attribute is explicitly set to UNSPECIFIED using the '!' sign. Callback will be invoked only once per attribute name, even if there are multiple rules for a given file. The highest priority rule will be used. Return a non-zero value from this to stop looping."},{"name":"payload","type":"void *","comment":"Passed on as extra parameter to callback function."}],"argline":"git_repository *repo,\n\tuint32_t flags,\n\tconst char *path,\n\tgit_attr_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::uint32_t::const char *::git_attr_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the git attributes for a path.</p>\n","comments":"","group":"attr"},"git_attr_cache_flush":{"type":"function","file":"attr.h","line":220,"lineto":221,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Flush the gitattributes cache.</p>\n","comments":"<p>Call this if you have reason to believe that the attributes files on\ndisk no longer match the cached contents of memory. This will cause\nthe attributes files to be reloaded the next time that an attribute\naccess function is called.</p>\n","group":"attr"},"git_attr_add_macro":{"type":"function","file":"attr.h","line":233,"lineto":236,"args":[{"name":"repo","type":"git_repository *"},{"name":"name","type":"const char *"},{"name":"values","type":"const char *"}],"argline":"git_repository *repo,\n\tconst char *name,\n\tconst char *values","sig":"git_repository *::const char *::const char *","return":{"type":"int"},"description":"<p>Add a macro definition.</p>\n","comments":"<p>Macros will automatically be loaded from the top level <code>.gitattributes</code>\nfile of the repository (plus the build-in &quot;binary&quot; macro). This\nfunction allows you to add others. For example, to add the default\nmacro, you would call:</p>\n\n<pre><code>git_attr_add_macro(repo, &quot;binary&quot;, &quot;-diff -crlf&quot;);\n</code></pre>\n","group":"attr"},"git_blob_lookup":{"type":"function","file":"blob.h","line":33,"lineto":33,"args":[{"name":"blob","type":"git_blob **","comment":"pointer to the looked up blob"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the blob."},{"name":"id","type":"const git_oid *","comment":"identity of the blob to locate."}],"argline":"git_blob **blob, git_repository *repo, const git_oid *id","sig":"git_blob **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a blob object from a repository.</p>\n","comments":"","group":"blob","examples":{"general.c":["ex/HEAD/general.html#git_blob_lookup-1"]}},"git_blob_lookup_prefix":{"type":"function","file":"blob.h","line":47,"lineto":47,"args":[{"name":"blob","type":"git_blob **","comment":"pointer to the looked up blob"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the blob."},{"name":"id","type":"const git_oid *","comment":"identity of the blob to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_blob **blob, git_repository *repo, const git_oid *id, size_t len","sig":"git_blob **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a blob object from a repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"blob"},"git_blob_free":{"type":"function","file":"blob.h","line":60,"lineto":60,"args":[{"name":"blob","type":"git_blob *","comment":"the blob to close"}],"argline":"git_blob *blob","sig":"git_blob *","return":{"type":"void"},"description":"<p>Close an open blob</p>\n","comments":"<p>This is a wrapper around git_object_free()</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop\nusing a blob. Failure to do so will cause a memory leak.</p>\n","group":"blob"},"git_blob_id":{"type":"function","file":"blob.h","line":68,"lineto":68,"args":[{"name":"blob","type":"const git_blob *","comment":"a previously loaded blob."}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"const git_oid *","comment":"SHA1 hash for this blob."},"description":"<p>Get the id of a blob.</p>\n","comments":"","group":"blob"},"git_blob_owner":{"type":"function","file":"blob.h","line":76,"lineto":76,"args":[{"name":"blob","type":"const git_blob *","comment":"A previously loaded blob."}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"git_repository *","comment":"Repository that contains this blob."},"description":"<p>Get the repository that contains the blob.</p>\n","comments":"","group":"blob"},"git_blob_rawcontent":{"type":"function","file":"blob.h","line":89,"lineto":89,"args":[{"name":"blob","type":"const git_blob *","comment":"pointer to the blob"}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"const void *","comment":"the pointer; NULL if the blob has no contents"},"description":"<p>Get a read-only buffer with the raw content of a blob.</p>\n","comments":"<p>A pointer to the raw content of a blob is returned;\nthis pointer is owned internally by the object and shall\nnot be free&#39;d. The pointer may be invalidated at a later\ntime.</p>\n","group":"blob","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_blob_rawcontent-1"],"general.c":["ex/HEAD/general.html#git_blob_rawcontent-2"]}},"git_blob_rawsize":{"type":"function","file":"blob.h","line":97,"lineto":97,"args":[{"name":"blob","type":"const git_blob *","comment":"pointer to the blob"}],"argline":"const git_blob *blob","sig":"const git_blob *","return":{"type":"git_off_t","comment":"size on bytes"},"description":"<p>Get the size in bytes of the contents of a blob</p>\n","comments":"","group":"blob","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_blob_rawsize-2"],"general.c":["ex/HEAD/general.html#git_blob_rawsize-3","ex/HEAD/general.html#git_blob_rawsize-4"]}},"git_blob_filtered_content":{"type":"function","file":"blob.h","line":124,"lineto":128,"args":[{"name":"out","type":"git_buf *","comment":"The git_buf to be filled in"},{"name":"blob","type":"git_blob *","comment":"Pointer to the blob"},{"name":"as_path","type":"const char *","comment":"Path used for file attribute lookups, etc."},{"name":"check_for_binary_data","type":"int","comment":"Should this test if blob content contains NUL bytes / looks like binary data before applying filters?"}],"argline":"git_buf *out,\n\tgit_blob *blob,\n\tconst char *as_path,\n\tint check_for_binary_data","sig":"git_buf *::git_blob *::const char *::int","return":{"type":"int","comment":"0 on success or an error code"},"description":"<p>Get a buffer with the filtered content of a blob.</p>\n","comments":"<p>This applies filters as if the blob was being checked out to the\nworking directory under the specified filename. This may apply\nCRLF filtering or other types of changes depending on the file\nattributes set for the blob and the content detected in it.</p>\n\n<p>The output is written into a <code>git_buf</code> which the caller must free\nwhen done (via <code>git_buf_free</code>).</p>\n\n<p>If no filters need to be applied, then the <code>out</code> buffer will just be\npopulated with a pointer to the raw content of the blob. In that case,\nbe careful to <em>not</em> free the blob until done with the buffer. To keep\nthe data detached from the blob, call <code>git_buf_grow</code> on the buffer\nwith a <code>want_size</code> of 0 and the buffer will be reallocated to be\ndetached from the blob.</p>\n","group":"blob"},"git_blob_create_fromworkdir":{"type":"function","file":"blob.h","line":141,"lineto":141,"args":[{"name":"id","type":"git_oid *","comment":"return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. this repository cannot be bare"},{"name":"relative_path","type":"const char *","comment":"file from which the blob will be created, relative to the repository's working dir"}],"argline":"git_oid *id, git_repository *repo, const char *relative_path","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from the working folder of a repository\nand write it to the Object Database as a loose blob</p>\n","comments":"","group":"blob"},"git_blob_create_fromdisk":{"type":"function","file":"blob.h","line":153,"lineto":156,"args":[{"name":"id","type":"git_oid *","comment":"return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. this repository can be bare or not"},{"name":"path","type":"const char *","comment":"file from which the blob will be created"}],"argline":"git_oid *id, git_repository *repo, const char *path","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from the filesystem and write its content\nto the Object Database as a loose blob</p>\n","comments":"","group":"blob"},"git_blob_create_fromchunks":{"type":"function","file":"blob.h","line":194,"lineto":199,"args":[{"name":"id","type":"git_oid *","comment":"Return the id of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where the blob will be written. This repository can be bare or not."},{"name":"hintpath","type":"const char *","comment":"if not NULL, will help selecting the filters to apply onto the content of the blob to be created."},{"name":"callback","type":"git_blob_chunk_cb"},{"name":"payload","type":"void *"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *hintpath,\n\tgit_blob_chunk_cb callback,\n\tvoid *payload","sig":"git_oid *::git_repository *::const char *::git_blob_chunk_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write a loose blob to the Object Database from a\nprovider of chunks of data.</p>\n","comments":"<p>Provided the <code>hintpath</code> parameter is filled, its value\nwill help to determine what git filters should be applied\nto the object before it can be placed to the object database.</p>\n\n<p>The implementation of the callback has to respect the\nfollowing rules:</p>\n\n<ul>\n<li><p><code>content</code> will have to be filled by the consumer. The maximum number\nof bytes that the buffer can accept per call is defined by the\n<code>max_length</code> parameter. Allocation and freeing of the buffer will be taken\ncare of by the function.</p></li>\n<li><p>The callback is expected to return the number of bytes\nthat <code>content</code> have been filled with.</p></li>\n<li><p>When there is no more data to stream, the callback should\nreturn 0. This will prevent it from being invoked anymore.</p></li>\n<li><p>When an error occurs, the callback should return -1.</p></li>\n</ul>\n","group":"blob"},"git_blob_create_frombuffer":{"type":"function","file":"blob.h","line":210,"lineto":210,"args":[{"name":"oid","type":"git_oid *","comment":"return the oid of the written blob"},{"name":"repo","type":"git_repository *","comment":"repository where to blob will be written"},{"name":"buffer","type":"const void *","comment":"data to be written into the blob"},{"name":"len","type":"size_t","comment":"length of the data"}],"argline":"git_oid *oid, git_repository *repo, const void *buffer, size_t len","sig":"git_oid *::git_repository *::const void *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an in-memory buffer to the ODB as a blob</p>\n","comments":"","group":"blob"},"git_blob_is_binary":{"type":"function","file":"blob.h","line":223,"lineto":223,"args":[{"name":"blob","type":"git_blob *","comment":"The blob which content should be analyzed"}],"argline":"git_blob *blob","sig":"git_blob *","return":{"type":"int","comment":"1 if the content of the blob is detected as binary; 0 otherwise."},"description":"<p>Determine if the blob content is most certainly binary or not.</p>\n","comments":"<p>The heuristic used to guess if a file is binary is taken from core git:\nSearching for NUL bytes and looking for a reasonable ratio of printable\nto non-printable characters among the first 4000 bytes.</p>\n","group":"blob"},"git_branch_create":{"type":"function","file":"branch.h","line":50,"lineto":55,"args":[{"name":"out","type":"git_reference **","comment":"Pointer where to store the underlying reference."},{"name":"repo","type":"git_repository *"},{"name":"branch_name","type":"const char *","comment":"Name for the branch; this name is validated for consistency. It should also not conflict with an already existing branch name."},{"name":"target","type":"const git_commit *","comment":"Commit to which this branch should point. This object must belong to the given `repo`."},{"name":"force","type":"int","comment":"Overwrite existing branch."}],"argline":"git_reference **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tconst git_commit *target,\n\tint force","sig":"git_reference **::git_repository *::const char *::const git_commit *::int","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC or an error code. A proper reference is written in the refs/heads namespace pointing to the provided target commit."},"description":"<p>Create a new branch pointing at a target commit</p>\n","comments":"<p>A new direct reference will be created pointing to\nthis target commit. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The returned reference must be freed by the user.</p>\n\n<p>The branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_delete":{"type":"function","file":"branch.h","line":67,"lineto":72,"args":[{"name":"branch","type":"git_reference *","comment":"A valid reference representing a branch"}],"argline":"git_reference *branch","sig":"git_reference *","return":{"type":"int","comment":"0 on success, or an error code."},"description":"<p>Delete an existing branch reference.</p>\n","comments":"<p>If the branch is successfully deleted, the passed reference\nobject will be invalidated. The reference must be freed manually\nby the user.</p>\n","group":"branch"},"git_branch_foreach":{"type":"function","file":"branch.h","line":91,"lineto":95,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the branches."},{"name":"list_flags","type":"unsigned int","comment":"Filtering flags for the branch listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE or a combination of the two."},{"name":"branch_cb","type":"git_branch_foreach_cb","comment":"Callback to invoke per found branch."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tunsigned int list_flags,\n\tgit_branch_foreach_cb branch_cb,\n\tvoid *payload","sig":"git_repository *::unsigned int::git_branch_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the branches and issue a callback for each one.</p>\n","comments":"<p>If the callback returns a non-zero value, this will stop looping.</p>\n","group":"branch"},"git_branch_move":{"type":"function","file":"branch.h","line":112,"lineto":116,"args":[{"name":"out","type":"git_reference **"},{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."},{"name":"new_branch_name","type":"const char *","comment":"Target name of the branch once the move is performed; this name is validated for consistency."},{"name":"force","type":"int","comment":"Overwrite existing branch."}],"argline":"git_reference **out,\n\tgit_reference *branch,\n\tconst char *new_branch_name,\n\tint force","sig":"git_reference **::git_reference *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code."},"description":"<p>Move/rename an existing local branch reference.</p>\n","comments":"<p>The new branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_lookup":{"type":"function","file":"branch.h","line":139,"lineto":143,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the looked-up branch reference"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the branch"},{"name":"branch_name","type":"const char *","comment":"Name of the branch to be looked-up; this name is validated for consistency."},{"name":"branch_type","type":"git_branch_t","comment":"Type of the considered branch. This should be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE."}],"argline":"git_reference **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tgit_branch_t branch_type","sig":"git_reference **::git_repository *::const char *::git_branch_t","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND when no matching branch exists, GIT_EINVALIDSPEC, otherwise an error code."},"description":"<p>Lookup a branch by its name in a repository.</p>\n","comments":"<p>The generated reference must be freed by the user.</p>\n\n<p>The branch name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"branch"},"git_branch_name":{"type":"function","file":"branch.h","line":160,"lineto":161,"args":[{"name":"out","type":"const char **","comment":"where the pointer of branch name is stored; this is valid as long as the ref is not freed."},{"name":"ref","type":"git_reference *","comment":"the reference ideally pointing to a branch"}],"argline":"const char **out,\n\t\tgit_reference *ref","sig":"const char **::git_reference *","return":{"type":"int","comment":"0 on success; otherwise an error code (e.g., if the ref is no local or remote branch)."},"description":"<p>Return the name of the given local or remote branch.</p>\n","comments":"<p>The name of the branch matches the definition of the name\nfor git_branch_lookup. That is, if the returned name is given\nto git_branch_lookup() then the reference is returned that\nwas given to this function.</p>\n","group":"branch"},"git_branch_upstream":{"type":"function","file":"branch.h","line":175,"lineto":177,"args":[{"name":"out","type":"git_reference **","comment":"Pointer where to store the retrieved reference."},{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."}],"argline":"git_reference **out,\n\tgit_reference *branch","sig":"git_reference **::git_reference *","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code."},"description":"<p>Return the reference supporting the remote tracking branch,\ngiven a local branch reference.</p>\n","comments":"","group":"branch"},"git_branch_set_upstream":{"type":"function","file":"branch.h","line":189,"lineto":189,"args":[{"name":"branch","type":"git_reference *","comment":"the branch to configure"},{"name":"upstream_name","type":"const char *","comment":"remote-tracking or local branch to set as upstream. Pass NULL to unset."}],"argline":"git_reference *branch, const char *upstream_name","sig":"git_reference *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the upstream configuration for a given local branch</p>\n","comments":"","group":"branch"},"git_branch_upstream_name":{"type":"function","file":"branch.h","line":209,"lineto":213,"args":[{"name":"tracking_branch_name_out","type":"char *","comment":"The user-allocated buffer which will be filled with the name of the reference. Pass NULL if you just want to get the needed size of the name of the reference as the output value."},{"name":"buffer_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"repo","type":"git_repository *","comment":"the repository where the branches live"},{"name":"canonical_branch_name","type":"const char *","comment":"name of the local branch."}],"argline":"char *tracking_branch_name_out,\n\tsize_t buffer_size,\n\tgit_repository *repo,\n\tconst char *canonical_branch_name","sig":"char *::size_t::git_repository *::const char *","return":{"type":"int","comment":"number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code."},"description":"<p>Return the name of the reference supporting the remote tracking branch,\ngiven the name of a local branch reference.</p>\n","comments":"","group":"branch"},"git_branch_is_head":{"type":"function","file":"branch.h","line":223,"lineto":224,"args":[{"name":"branch","type":"git_reference *","comment":"Current underlying reference of the branch."}],"argline":"git_reference *branch","sig":"git_reference *","return":{"type":"int","comment":"1 if HEAD points at the branch, 0 if it isn't, error code otherwise."},"description":"<p>Determine if the current local branch is pointed at by HEAD.</p>\n","comments":"","group":"branch"},"git_branch_remote_name":{"type":"function","file":"branch.h","line":245,"lineto":249,"args":[{"name":"remote_name_out","type":"char *","comment":"The user-allocated buffer which will be filled with the name of the remote. Pass NULL if you just want to get the needed size of the name of the remote as the output value."},{"name":"buffer_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"repo","type":"git_repository *","comment":"The repository where the branch lives."},{"name":"canonical_branch_name","type":"const char *","comment":"name of the remote tracking branch."}],"argline":"char *remote_name_out,\n\tsize_t buffer_size,\n\tgit_repository *repo,\n\tconst char *canonical_branch_name","sig":"char *::size_t::git_repository *::const char *","return":{"type":"int","comment":"Number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote matching remote was found, GIT_EAMBIGUOUS when the branch maps to several remotes, otherwise an error code."},"description":"<p>Return the name of remote that the remote tracking branch belongs to.</p>\n","comments":"","group":"branch"},"git_buf_free":{"type":"function","file":"buffer.h","line":72,"lineto":72,"args":[{"name":"buffer","type":"git_buf *","comment":"The buffer to deallocate"}],"argline":"git_buf *buffer","sig":"git_buf *","return":{"type":"void"},"description":"<p>Free the memory referred to by the git_buf.</p>\n","comments":"<p>Note that this does not free the <code>git_buf</code> itself, just the memory\npointed to by <code>buffer-&gt;ptr</code>. This will not free the memory if it looks\nlike it was not allocated internally, but it will clear the buffer back\nto the empty state.</p>\n","group":"buf"},"git_buf_grow":{"type":"function","file":"buffer.h","line":95,"lineto":95,"args":[{"name":"buffer","type":"git_buf *","comment":"The buffer to be resized; may or may not be allocated yet"},{"name":"target_size","type":"size_t","comment":"The desired available size"}],"argline":"git_buf *buffer, size_t target_size","sig":"git_buf *::size_t","return":{"type":"int","comment":"0 on success, -1 on allocation failure"},"description":"<p>Resize the buffer allocation to make more space.</p>\n","comments":"<p>This will attempt to grow the buffer to accomodate the target size.</p>\n\n<p>If the buffer refers to memory that was not allocated by libgit2 (i.e.\nthe <code>asize</code> field is zero), then <code>ptr</code> will be replaced with a newly\nallocated block of data. Be careful so that memory allocated by the\ncaller is not lost. As a special variant, if you pass <code>target_size</code> as\n0 and the memory is not allocated by libgit2, this will allocate a new\nbuffer of size <code>size</code> and copy the external data into it.</p>\n\n<p>Currently, this will never shrink a buffer, only expand it.</p>\n\n<p>If the allocation fails, this will return an error and the buffer will be\nmarked as invalid for future operations, invaliding the contents.</p>\n","group":"buf"},"git_buf_set":{"type":"function","file":"buffer.h","line":105,"lineto":108,"args":[{"name":"buffer","type":"git_buf *","comment":"The buffer to set"},{"name":"data","type":"const void *","comment":"The data to copy into the buffer"},{"name":"datalen","type":"size_t","comment":"The length of the data to copy into the buffer"}],"argline":"git_buf *buffer, const void *data, size_t datalen","sig":"git_buf *::const void *::size_t","return":{"type":"int","comment":"0 on success, -1 on allocation failure"},"description":"<p>Set buffer to a copy of some raw data.</p>\n","comments":"","group":"buf"},"git_checkout_head":{"type":"function","file":"checkout.h","line":256,"lineto":258,"args":[{"name":"repo","type":"git_repository *","comment":"repository to check out (must be non-bare)"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tgit_checkout_opts *opts","sig":"git_repository *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing branch, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the index and the working tree to match the content of\nthe commit pointed at by HEAD.</p>\n","comments":"","group":"checkout"},"git_checkout_index":{"type":"function","file":"checkout.h","line":269,"lineto":272,"args":[{"name":"repo","type":"git_repository *","comment":"repository into which to check out (must be non-bare)"},{"name":"index","type":"git_index *","comment":"index to be checked out (or NULL to use repository index)"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tgit_index *index,\n\tgit_checkout_opts *opts","sig":"git_repository *::git_index *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the working tree to match the content of the index.</p>\n","comments":"","group":"checkout"},"git_checkout_tree":{"type":"function","file":"checkout.h","line":285,"lineto":288,"args":[{"name":"repo","type":"git_repository *","comment":"repository to check out (must be non-bare)"},{"name":"treeish","type":"const git_object *","comment":"a commit, tag or tree which content will be used to update the working directory"},{"name":"opts","type":"git_checkout_opts *","comment":"specifies checkout options (may be NULL)"}],"argline":"git_repository *repo,\n\tconst git_object *treeish,\n\tgit_checkout_opts *opts","sig":"git_repository *::const git_object *::git_checkout_opts *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Updates files in the index and working tree to match the content of the\ntree pointed at by the treeish.</p>\n","comments":"","group":"checkout"},"git_clone":{"type":"function","file":"clone.h","line":103,"lineto":107,"args":[{"name":"out","type":"git_repository **","comment":"pointer that will receive the resulting repository object"},{"name":"url","type":"const char *","comment":"the remote repository to clone"},{"name":"local_path","type":"const char *","comment":"local directory to clone to"},{"name":"options","type":"const git_clone_options *","comment":"configuration options for the clone. If NULL, the function works as though GIT_OPTIONS_INIT were passed."}],"argline":"git_repository **out,\n\t\tconst char *url,\n\t\tconst char *local_path,\n\t\tconst git_clone_options *options","sig":"git_repository **::const char *::const char *::const git_clone_options *","return":{"type":"int","comment":"0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)"},"description":"<p>Clone a remote repository, and checkout the branch pointed to by the remote\nHEAD.</p>\n","comments":"","group":"clone","examples":{"network/clone.c":["ex/HEAD/network/clone.html#git_clone-1"]}},"git_commit_lookup":{"type":"function","file":"commit.h","line":36,"lineto":37,"args":[{"name":"commit","type":"git_commit **","comment":"pointer to the looked up commit"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the commit."},{"name":"id","type":"const git_oid *","comment":"identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."}],"argline":"git_commit **commit, git_repository *repo, const git_oid *id","sig":"git_commit **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a commit object from a repository.</p>\n","comments":"<p>The returned object should be released with <code>git_commit_free</code> when no\nlonger needed.</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_lookup-5","ex/HEAD/general.html#git_commit_lookup-6","ex/HEAD/general.html#git_commit_lookup-7"],"log.c":["ex/HEAD/log.html#git_commit_lookup-1"]}},"git_commit_lookup_prefix":{"type":"function","file":"commit.h","line":55,"lineto":56,"args":[{"name":"commit","type":"git_commit **","comment":"pointer to the looked up commit"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the commit."},{"name":"id","type":"const git_oid *","comment":"identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_commit **commit, git_repository *repo, const git_oid *id, size_t len","sig":"git_commit **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a commit object from a repository, given a prefix of its\nidentifier (short id).</p>\n","comments":"<p>The returned object should be released with <code>git_commit_free</code> when no\nlonger needed.</p>\n\n<p>@see git_object_lookup_prefix</p>\n","group":"commit"},"git_commit_free":{"type":"function","file":"commit.h","line":69,"lineto":69,"args":[{"name":"commit","type":"git_commit *","comment":"the commit to close"}],"argline":"git_commit *commit","sig":"git_commit *","return":{"type":"void"},"description":"<p>Close an open commit</p>\n","comments":"<p>This is a wrapper around git_object_free()</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop\nusing a commit. Failure to do so will cause a memory leak.</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_free-8","ex/HEAD/general.html#git_commit_free-9","ex/HEAD/general.html#git_commit_free-10","ex/HEAD/general.html#git_commit_free-11"],"log.c":["ex/HEAD/log.html#git_commit_free-2","ex/HEAD/log.html#git_commit_free-3","ex/HEAD/log.html#git_commit_free-4","ex/HEAD/log.html#git_commit_free-5"]}},"git_commit_id":{"type":"function","file":"commit.h","line":78,"lineto":78,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_oid *","comment":"object identity for the commit."},"description":"<p>Get the id of a commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_id-12"],"log.c":["ex/HEAD/log.html#git_commit_id-6"]}},"git_commit_owner":{"type":"function","file":"commit.h","line":86,"lineto":86,"args":[{"name":"commit","type":"const git_commit *","comment":"A previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"git_repository *","comment":"Repository that contains this commit."},"description":"<p>Get the repository that contains the commit.</p>\n","comments":"","group":"commit","examples":{"log.c":["ex/HEAD/log.html#git_commit_owner-7","ex/HEAD/log.html#git_commit_owner-8"]}},"git_commit_message_encoding":{"type":"function","file":"commit.h","line":98,"lineto":98,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"NULL, or the encoding"},"description":"<p>Get the encoding for the message of a commit,\nas a string representing a standard encoding name.</p>\n","comments":"<p>The encoding may be NULL if the <code>encoding</code> header\nin the commit is missing; in that case UTF-8 is assumed.</p>\n","group":"commit"},"git_commit_message":{"type":"function","file":"commit.h","line":106,"lineto":106,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"the message of a commit"},"description":"<p>Get the full message of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_message-3","ex/HEAD/cat-file.html#git_commit_message-4"],"general.c":["ex/HEAD/general.html#git_commit_message-13","ex/HEAD/general.html#git_commit_message-14","ex/HEAD/general.html#git_commit_message-15"],"log.c":["ex/HEAD/log.html#git_commit_message-9"]}},"git_commit_time":{"type":"function","file":"commit.h","line":114,"lineto":114,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"git_time_t","comment":"the time of a commit"},"description":"<p>Get the commit time (i.e. committer time) of a commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_time-16","ex/HEAD/general.html#git_commit_time-17"]}},"git_commit_time_offset":{"type":"function","file":"commit.h","line":122,"lineto":122,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"int","comment":"positive or negative timezone offset, in minutes from UTC"},"description":"<p>Get the commit timezone offset (i.e. committer&#39;s preferred timezone) of a commit.</p>\n","comments":"","group":"commit"},"git_commit_committer":{"type":"function","file":"commit.h","line":130,"lineto":130,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_signature *","comment":"the committer of a commit"},"description":"<p>Get the committer of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_committer-5"],"general.c":["ex/HEAD/general.html#git_commit_committer-18"]}},"git_commit_author":{"type":"function","file":"commit.h","line":138,"lineto":138,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_signature *","comment":"the author of a commit"},"description":"<p>Get the author of a commit.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_author-6"],"general.c":["ex/HEAD/general.html#git_commit_author-19","ex/HEAD/general.html#git_commit_author-20"],"log.c":["ex/HEAD/log.html#git_commit_author-10"]}},"git_commit_raw_header":{"type":"function","file":"commit.h","line":146,"lineto":146,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit"}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const char *","comment":"the header text of the commit"},"description":"<p>Get the full raw text of the commit header.</p>\n","comments":"","group":"commit"},"git_commit_tree":{"type":"function","file":"commit.h","line":155,"lineto":155,"args":[{"name":"tree_out","type":"git_tree **","comment":"pointer where to store the tree object"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"git_tree **tree_out, const git_commit *commit","sig":"git_tree **::const git_commit *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the tree pointed to by a commit.</p>\n","comments":"","group":"commit","examples":{"diff.c":["ex/HEAD/diff.html#git_commit_tree-1"],"log.c":["ex/HEAD/log.html#git_commit_tree-11","ex/HEAD/log.html#git_commit_tree-12","ex/HEAD/log.html#git_commit_tree-13","ex/HEAD/log.html#git_commit_tree-14","ex/HEAD/log.html#git_commit_tree-15"]}},"git_commit_tree_id":{"type":"function","file":"commit.h","line":165,"lineto":165,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"const git_oid *","comment":"the id of tree pointed to by commit."},"description":"<p>Get the id of the tree pointed to by a commit. This differs from\n<code>git_commit_tree</code> in that no attempts are made to fetch an object\nfrom the ODB.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_tree_id-7"]}},"git_commit_parentcount":{"type":"function","file":"commit.h","line":173,"lineto":173,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."}],"argline":"const git_commit *commit","sig":"const git_commit *","return":{"type":"unsigned int","comment":"integer of count of parents"},"description":"<p>Get the number of parents of this commit</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_parentcount-8"],"general.c":["ex/HEAD/general.html#git_commit_parentcount-21"],"log.c":["ex/HEAD/log.html#git_commit_parentcount-16","ex/HEAD/log.html#git_commit_parentcount-17"]}},"git_commit_parent":{"type":"function","file":"commit.h","line":183,"lineto":186,"args":[{"name":"out","type":"git_commit **","comment":"Pointer where to store the parent commit"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the position of the parent (from 0 to `parentcount`)"}],"argline":"git_commit **out,\n\tconst git_commit *commit,\n\tunsigned int n","sig":"git_commit **::const git_commit *::unsigned int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the specified parent of the commit.</p>\n","comments":"","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_parent-22"],"log.c":["ex/HEAD/log.html#git_commit_parent-18","ex/HEAD/log.html#git_commit_parent-19"]}},"git_commit_parent_id":{"type":"function","file":"commit.h","line":197,"lineto":199,"args":[{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the position of the parent (from 0 to `parentcount`)"}],"argline":"const git_commit *commit,\n\tunsigned int n","sig":"const git_commit *::unsigned int","return":{"type":"const git_oid *","comment":"the id of the parent, NULL on error."},"description":"<p>Get the oid of a specified parent for a commit. This is different from\n<code>git_commit_parent</code>, which will attempt to load the parent commit from\nthe ODB.</p>\n","comments":"","group":"commit","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_commit_parent_id-9"],"log.c":["ex/HEAD/log.html#git_commit_parent_id-20"]}},"git_commit_nth_gen_ancestor":{"type":"function","file":"commit.h","line":215,"lineto":218,"args":[{"name":"ancestor","type":"git_commit **","comment":"Pointer where to store the ancestor commit"},{"name":"commit","type":"const git_commit *","comment":"a previously loaded commit."},{"name":"n","type":"unsigned int","comment":"the requested generation"}],"argline":"git_commit **ancestor,\n\tconst git_commit *commit,\n\tunsigned int n","sig":"git_commit **::const git_commit *::unsigned int","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if no matching ancestor exists or an error code"},"description":"<p>Get the commit object that is the <n>th generation ancestor\nof the named commit object, following only the first parents.\nThe returned commit has to be freed by the caller.</p>\n","comments":"<p>Passing <code>0</code> as the generation number returns another instance of the\nbase commit itself.</p>\n","group":"commit"},"git_commit_create":{"type":"function","file":"commit.h","line":263,"lineto":273,"args":[{"name":"id","type":"git_oid *","comment":"Pointer in which to store the OID of the newly created commit"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the commit"},{"name":"update_ref","type":"const char *","comment":"If not NULL, name of the reference that will be updated to point to this commit. If the reference is not direct, it will be resolved to a direct reference. Use \"HEAD\" to update the HEAD of the current branch and make it point to this commit. If the reference doesn't exist yet, it will be created."},{"name":"author","type":"const git_signature *","comment":"Signature with author and author time of commit"},{"name":"committer","type":"const git_signature *","comment":"Signature with committer and * commit time of commit"},{"name":"message_encoding","type":"const char *","comment":"The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."},{"name":"message","type":"const char *","comment":"_encoding The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."},{"name":"tree","type":"const git_tree *","comment":"An instance of a `git_tree` object that will be used as the tree for the commit. This tree object must also be owned by the given `repo`."},{"name":"parent_count","type":"int","comment":"Number of parents for this commit"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_tree *tree,\n\tint parent_count,\n\tconst git_commit *parents[]","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_tree *::int","return":{"type":"int","comment":"0 or an error code The created commit will be written to the Object Database and the given reference will be updated to point to it"},"description":"<p>Create new commit in the repository from a list of <code>git_object</code> pointers</p>\n","comments":"<p>The message will not be cleaned up automatically. You can do that with\nthe <code>git_message_prettify()</code> function.</p>\n","group":"commit"},"git_commit_create_v":{"type":"function","file":"commit.h","line":289,"lineto":299,"args":[{"name":"id","type":"git_oid *"},{"name":"repo","type":"git_repository *"},{"name":"update_ref","type":"const char *"},{"name":"author","type":"const git_signature *"},{"name":"committer","type":"const git_signature *"},{"name":"message_encoding","type":"const char *"},{"name":"message","type":"const char *"},{"name":"tree","type":"const git_tree *"},{"name":"parent_count","type":"int"}],"argline":"git_oid *id,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_tree *tree,\n\tint parent_count,\n\t...","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_tree *::int","return":{"type":"int"},"description":"<p>Create new commit in the repository using a variable argument list.</p>\n","comments":"<p>The message will be cleaned up from excess whitespace and it will be made\nsure that the last line ends with a &#39;\\n&#39;.</p>\n\n<p>The parents for the commit are specified as a variable list of pointers\nto <code>const git_commit *</code>. Note that this is a convenience method which may\nnot be safe to export for certain languages or compilers</p>\n\n<p>All other parameters remain the same at <code>git_commit_create()</code>.</p>\n\n<p>@see git_commit_create</p>\n","group":"commit","examples":{"general.c":["ex/HEAD/general.html#git_commit_create_v-23"],"init.c":["ex/HEAD/init.html#git_commit_create_v-1"]}},"git_libgit2_version":{"type":"function","file":"common.h","line":101,"lineto":101,"args":[{"name":"major","type":"int *","comment":"Store the major version number"},{"name":"minor","type":"int *","comment":"Store the minor version number"},{"name":"rev","type":"int *","comment":"Store the revision (patch) number"}],"argline":"int *major, int *minor, int *rev","sig":"int *::int *::int *","return":{"type":"void"},"description":"<p>Return the version of the libgit2 library\nbeing currently used.</p>\n","comments":"","group":"libgit2"},"git_libgit2_capabilities":{"type":"function","file":"common.h","line":126,"lineto":142,"args":[],"argline":"void","sig":"","return":{"type":"int","comment":"A combination of GIT_CAP_* values. - GIT_CAP_THREADS Libgit2 was compiled with thread support. Note that thread support is still to be seen as a 'work in progress' - basic object lookups are believed to be threadsafe, but other operations may not be. - GIT_CAP_HTTPS Libgit2 supports the https:// protocol. This requires the openssl library to be found when compiling libgit2."},"description":"<p>Query compile time options for libgit2.</p>\n","comments":"","group":"libgit2"},"git_libgit2_opts":{"type":"function","file":"common.h","line":231,"lineto":231,"args":[{"name":"option","type":"int","comment":"Option key"}],"argline":"int option, ...","sig":"int","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Set or query a library global option</p>\n","comments":"<p>Available options:</p>\n\n<ul>\n<li><p>opts(GIT_OPT_GET_MWINDOW_SIZE, size_t *):</p>\n\n<blockquote>\n<p>Get the maximum mmap window size</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_MWINDOW_SIZE, size_t):</p>\n\n<blockquote>\n<p>Set the maximum mmap window size</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_MWINDOW_MAPPED_LIMIT, size_t *):</p>\n\n<blockquote>\n<p>Get the maximum memory that will be mapped in total by the library</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size_t):</p>\n\n<blockquote>\n<p>Set the maximum amount of memory that can be mapped at any time\nby the library</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_SEARCH_PATH, int level, char *out, size_t len)</p>\n\n<blockquote>\n<p>Get the search path for a given level of config data. &quot;level&quot; must\nbe one of <code>GIT_CONFIG_LEVEL_SYSTEM</code>, <code>GIT_CONFIG_LEVEL_GLOBAL</code>, or\n<code>GIT_CONFIG_LEVEL_XDG</code>. The search path is written to the <code>out</code>\nbuffer up to size <code>len</code>. Returns GIT_EBUFS if buffer is too small.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_SEARCH_PATH, int level, const char *path)</p>\n\n<blockquote>\n<p>Set the search path for a level of config data. The search path\napplied to shared attributes and ignore files, too.</p>\n\n<ul>\n<li><p><code>path</code> lists directories delimited by GIT_PATH_LIST_SEPARATOR.\nPass NULL to reset to the default (generally based on environment\nvariables). Use magic path <code>$PATH</code> to include the old value\nof the path (if you want to prepend or append, for instance).</p></li>\n<li><p><code>level</code> must be GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL,\nor GIT_CONFIG_LEVEL_XDG.</p></li>\n</ul>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_CACHE_OBJECT_LIMIT, git_otype type, size_t size)</p>\n\n<blockquote>\n<p>Set the maximum data size for the given type of object to be\nconsidered eligible for caching in memory. Setting to value to\nzero means that that type of object will not be cached.\nDefaults to 0 for GIT_OBJ_BLOB (i.e. won&#39;t cache blobs) and 4k\nfor GIT_OBJ_COMMIT, GIT_OBJ_TREE, and GIT_OBJ_TAG.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_CACHE_MAX_SIZE, ssize_t max_storage_bytes)</p>\n\n<blockquote>\n<p>Set the maximum total data size that will be cached in memory\nacross all repositories before libgit2 starts evicting objects\nfrom the cache. This is a soft limit, in that the library might\nbriefly exceed it, but will start aggressively evicting objects\nfrom cache when that happens. The default cache size is 256Mb.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_ENABLE_CACHING, int enabled)</p>\n\n<blockquote>\n<p>Enable or disable caching completely.</p>\n\n<p>Because caches are repository-specific, disabling the cache\ncannot immediately clear all cached objects, but each cache will\nbe cleared on the next attempt to update anything in it.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_CACHED_MEMORY, ssize_t *current, ssize_t *allowed)</p>\n\n<blockquote>\n<p>Get the current bytes in cache and the maximum that would be\nallowed in the cache.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_GET_SEARCH_PATH, char *out, size_t len)</p>\n\n<blockquote>\n<p>Get the default template path.\nThe path is written to the <code>out</code>\nbuffer up to size <code>len</code>. Returns GIT_EBUFS if buffer is too small.</p>\n</blockquote></li>\n<li><p>opts(GIT_OPT_SET_TEMPLATE_PATH, const char *path)</p>\n\n<blockquote>\n<p>Set the default template path.</p>\n\n<ul>\n<li><code>path</code> directory of template.</li>\n</ul>\n</blockquote></li>\n</ul>\n","group":"libgit2"},"git_config_find_global":{"type":"function","file":"config.h","line":97,"lineto":97,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a global configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the global configuration file</p>\n","comments":"<p>The user or global configuration file is usually\nlocated in <code>$HOME/.gitconfig</code>.</p>\n\n<p>This method will try to guess the full path to that\nfile, if the file exists. The returned path\nmay be used on any <code>git_config</code> call to load the\nglobal configuration file.</p>\n\n<p>This method will not guess the path to the xdg compatible\nconfig file (.config/git/config).</p>\n","group":"config"},"git_config_find_xdg":{"type":"function","file":"config.h","line":115,"lineto":115,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a xdg compatible configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the global xdg compatible configuration file</p>\n","comments":"<p>The xdg compatible configuration file is usually\nlocated in <code>$HOME/.config/git/config</code>.</p>\n\n<p>This method will try to guess the full path to that\nfile, if the file exists. The returned path\nmay be used on any <code>git_config</code> call to load the\nxdg compatible configuration file.</p>\n","group":"config"},"git_config_find_system":{"type":"function","file":"config.h","line":128,"lineto":128,"args":[{"name":"out","type":"char *","comment":"Buffer to store the path in"},{"name":"length","type":"size_t","comment":"size of the buffer in bytes"}],"argline":"char *out, size_t length","sig":"char *::size_t","return":{"type":"int","comment":"0 if a system configuration file has been found. Its path will be stored in `buffer`."},"description":"<p>Locate the path to the system configuration file</p>\n","comments":"<p>If /etc/gitconfig doesn&#39;t exist, it will look for\n%PROGRAMFILES%\\Git\\etc\\gitconfig.</p>\n","group":"config"},"git_config_open_default":{"type":"function","file":"config.h","line":140,"lineto":140,"args":[{"name":"out","type":"git_config **","comment":"Pointer to store the config instance"}],"argline":"git_config **out","sig":"git_config **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open the global, XDG and system configuration files</p>\n","comments":"<p>Utility wrapper that finds the global, XDG and system configuration files\nand opens them into a single prioritized config object that can be\nused when accessing default config data outside a repository.</p>\n","group":"config"},"git_config_new":{"type":"function","file":"config.h","line":151,"lineto":151,"args":[{"name":"out","type":"git_config **","comment":"pointer to the new configuration"}],"argline":"git_config **out","sig":"git_config **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Allocate a new configuration object</p>\n","comments":"<p>This object is empty, so you have to add a file to it before you\ncan do anything with it.</p>\n","group":"config"},"git_config_add_file_ondisk":{"type":"function","file":"config.h","line":175,"lineto":179,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to add the file to"},{"name":"path","type":"const char *","comment":"path to the configuration file to add"},{"name":"level","type":"git_config_level_t","comment":"the priority level of the backend"},{"name":"force","type":"int","comment":"replace config file at the given priority level"}],"argline":"git_config *cfg,\n\tconst char *path,\n\tgit_config_level_t level,\n\tint force","sig":"git_config *::const char *::git_config_level_t::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), GIT_ENOTFOUND when the file doesn't exist or error code"},"description":"<p>Add an on-disk config file instance to an existing config</p>\n","comments":"<p>The on-disk file pointed at by <code>path</code> will be opened and\nparsed; it&#39;s expected to be a native Git config file following\nthe default Git config syntax (see man git-config).</p>\n\n<p>Note that the configuration object will free the file\nautomatically.</p>\n\n<p>Further queries on this config object will access each\nof the config file instances in order (instances with\na higher priority level will be accessed first).</p>\n","group":"config"},"git_config_open_ondisk":{"type":"function","file":"config.h","line":194,"lineto":194,"args":[{"name":"out","type":"git_config **","comment":"The configuration instance to create"},{"name":"path","type":"const char *","comment":"Path to the on-disk file to open"}],"argline":"git_config **out, const char *path","sig":"git_config **::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND when the file doesn't exist or an error code"},"description":"<p>Create a new config instance containing a single on-disk file</p>\n","comments":"<p>This method is a simple utility wrapper for the following sequence\nof calls:\n- git_config_new\n- git_config_add_file_ondisk</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_open_ondisk-24"]}},"git_config_open_level":{"type":"function","file":"config.h","line":212,"lineto":215,"args":[{"name":"out","type":"git_config **","comment":"The configuration instance to create"},{"name":"parent","type":"const git_config *","comment":"Multi-level config to search for the given level"},{"name":"level","type":"git_config_level_t","comment":"Configuration level to search for"}],"argline":"git_config **out,\n\tconst git_config *parent,\n\tgit_config_level_t level","sig":"git_config **::const git_config *::git_config_level_t","return":{"type":"int","comment":"0, GIT_ENOTFOUND if the passed level cannot be found in the multi-level parent config, or an error code"},"description":"<p>Build a single-level focused config object from a multi-level one.</p>\n","comments":"<p>The returned config object can be used to perform get/set/delete operations\non a single specific level.</p>\n\n<p>Getting several times the same level from the same parent multi-level config\nwill return different config instances, but containing the same config_file\ninstance.</p>\n","group":"config"},"git_config_open_global":{"type":"function","file":"config.h","line":229,"lineto":229,"args":[{"name":"out","type":"git_config **","comment":"pointer in which to store the config object"},{"name":"config","type":"git_config *","comment":"the config object in which to look"}],"argline":"git_config **out, git_config *config","sig":"git_config **::git_config *","return":{"type":"int"},"description":"<p>Open the global/XDG configuration file according to git&#39;s rules</p>\n","comments":"<p>Git allows you to store your global configuration at\n<code>$HOME/.config</code> or <code>$XDG_CONFIG_HOME/git/config</code>. For backwards\ncompatability, the XDG file shouldn&#39;t be used unless the use has\ncreated it explicitly. With this function you&#39;ll open the correct\none to write to.</p>\n","group":"config"},"git_config_refresh":{"type":"function","file":"config.h","line":243,"lineto":243,"args":[{"name":"cfg","type":"git_config *","comment":"The configuration to refresh"}],"argline":"git_config *cfg","sig":"git_config *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Reload changed config files</p>\n","comments":"<p>A config file may be changed on disk out from under the in-memory\nconfig object. This function causes us to look for files that have\nbeen modified since we last loaded them and refresh the config with\nthe latest information.</p>\n","group":"config"},"git_config_free":{"type":"function","file":"config.h","line":250,"lineto":250,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to free"}],"argline":"git_config *cfg","sig":"git_config *","return":{"type":"void"},"description":"<p>Free the configuration and its associated memory and files</p>\n","comments":"","group":"config"},"git_config_get_entry":{"type":"function","file":"config.h","line":263,"lineto":266,"args":[{"name":"out","type":"const git_config_entry **","comment":"pointer to the variable git_config_entry"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"const git_config_entry **out,\n\tconst git_config *cfg,\n\tconst char *name","sig":"const git_config_entry **::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the git_config_entry of a config variable.</p>\n","comments":"<p>The git_config_entry is owned by the config and should not be freed by the\nuser.</p>\n","group":"config"},"git_config_get_int32":{"type":"function","file":"config.h","line":280,"lineto":280,"args":[{"name":"out","type":"int32_t *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int32_t *out, const git_config *cfg, const char *name","sig":"int32_t *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of an integer config variable.</p>\n","comments":"<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurence of the variable will be returned here.</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_get_int32-25"]}},"git_config_get_int64":{"type":"function","file":"config.h","line":294,"lineto":294,"args":[{"name":"out","type":"int64_t *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int64_t *out, const git_config *cfg, const char *name","sig":"int64_t *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a long integer config variable.</p>\n","comments":"<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config"},"git_config_get_bool":{"type":"function","file":"config.h","line":311,"lineto":311,"args":[{"name":"out","type":"int *","comment":"pointer to the variable where the value should be stored"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"int *out, const git_config *cfg, const char *name","sig":"int *::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a boolean config variable.</p>\n","comments":"<p>This function uses the usual C convention of 0 being false and\nanything else true.</p>\n\n<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config"},"git_config_get_string":{"type":"function","file":"config.h","line":328,"lineto":328,"args":[{"name":"out","type":"const char **","comment":"pointer to the variable's value"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"}],"argline":"const char **out, const git_config *cfg, const char *name","sig":"const char **::const git_config *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the value of a string config variable.</p>\n","comments":"<p>The string is owned by the variable and should not be freed by the\nuser.</p>\n\n<p>All config files will be looked into, in the order of their\ndefined level. A higher level means a higher priority. The\nfirst occurrence of the variable will be returned here.</p>\n","group":"config","examples":{"general.c":["ex/HEAD/general.html#git_config_get_string-26"]}},"git_config_get_multivar_foreach":{"type":"function","file":"config.h","line":342,"lineto":342,"args":[{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"regular expression to filter which variables we're interested in. Use NULL to indicate all"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to be called on each value of the variable"},{"name":"payload","type":"void *","comment":"opaque pointer to pass to the callback"}],"argline":"const git_config *cfg, const char *name, const char *regexp, git_config_foreach_cb callback, void *payload","sig":"const git_config *::const char *::const char *::git_config_foreach_cb::void *","return":{"type":"int"},"description":"<p>Get each value of a multivar in a foreach callback</p>\n","comments":"<p>The callback will be called on each variable found</p>\n","group":"config"},"git_config_multivar_iterator_new":{"type":"function","file":"config.h","line":353,"lineto":353,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"regular expression to filter which variables we're interested in. Use NULL to indicate all"}],"argline":"git_config_iterator **out, const git_config *cfg, const char *name, const char *regexp","sig":"git_config_iterator **::const git_config *::const char *::const char *","return":{"type":"int"},"description":"<p>Get each value of a multivar</p>\n","comments":"","group":"config"},"git_config_next":{"type":"function","file":"config.h","line":362,"lineto":362,"args":[{"name":"entry","type":"git_config_entry **","comment":"pointer to store the entry"},{"name":"iter","type":"git_config_iterator *","comment":"the iterator"}],"argline":"git_config_entry **entry, git_config_iterator *iter","sig":"git_config_entry **::git_config_iterator *","return":{"type":"int","comment":"0 or an error code. GIT_ITEROVER if the iteration has completed"},"description":"<p>Return the current entry and advance the iterator</p>\n","comments":"","group":"config"},"git_config_iterator_free":{"type":"function","file":"config.h","line":369,"lineto":369,"args":[{"name":"iter","type":"git_config_iterator *","comment":"the iterator to free"}],"argline":"git_config_iterator *iter","sig":"git_config_iterator *","return":{"type":"void"},"description":"<p>Free a config iterator</p>\n","comments":"","group":"config"},"git_config_set_int32":{"type":"function","file":"config.h","line":380,"lineto":380,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int32_t","comment":"Integer value for the variable"}],"argline":"git_config *cfg, const char *name, int32_t value","sig":"git_config *::const char *::int32_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of an integer config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_int64":{"type":"function","file":"config.h","line":391,"lineto":391,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int64_t","comment":"Long integer value for the variable"}],"argline":"git_config *cfg, const char *name, int64_t value","sig":"git_config *::const char *::int64_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a long integer config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_bool":{"type":"function","file":"config.h","line":402,"lineto":402,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"int","comment":"the value to store"}],"argline":"git_config *cfg, const char *name, int value","sig":"git_config *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a boolean config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_set_string":{"type":"function","file":"config.h","line":416,"lineto":416,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"value","type":"const char *","comment":"the string to store."}],"argline":"git_config *cfg, const char *name, const char *value","sig":"git_config *::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the value of a string config variable in the config file\nwith the highest level (usually the local one).</p>\n","comments":"<p>A copy of the string is made and the user is free to use it\nafterwards.</p>\n","group":"config"},"git_config_set_multivar":{"type":"function","file":"config.h","line":426,"lineto":426,"args":[{"name":"cfg","type":"git_config *","comment":"where to look for the variable"},{"name":"name","type":"const char *","comment":"the variable's name"},{"name":"regexp","type":"const char *","comment":"a regular expression to indicate which values to replace"},{"name":"value","type":"const char *","comment":"the new value."}],"argline":"git_config *cfg, const char *name, const char *regexp, const char *value","sig":"git_config *::const char *::const char *::const char *","return":{"type":"int"},"description":"<p>Set a multivar in the local config file.</p>\n","comments":"","group":"config"},"git_config_delete_entry":{"type":"function","file":"config.h","line":435,"lineto":435,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration"},{"name":"name","type":"const char *","comment":"the variable to delete"}],"argline":"git_config *cfg, const char *name","sig":"git_config *::const char *","return":{"type":"int"},"description":"<p>Delete a config variable from the config file\nwith the highest level (usually the local one).</p>\n","comments":"","group":"config"},"git_config_foreach":{"type":"function","file":"config.h","line":450,"lineto":453,"args":[{"name":"cfg","type":"const git_config *","comment":"where to get the variables from"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to call on each variable"},{"name":"payload","type":"void *","comment":"the data to pass to the callback"}],"argline":"const git_config *cfg,\n\tgit_config_foreach_cb callback,\n\tvoid *payload","sig":"const git_config *::git_config_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform an operation on each config variable.</p>\n","comments":"<p>The callback receives the normalized name and value of each variable\nin the config backend, and the data pointer passed to this function.\nAs soon as one of the callback functions returns something other than 0,\nthis function stops iterating and returns <code>GIT_EUSER</code>.</p>\n","group":"config"},"git_config_iterator_new":{"type":"function","file":"config.h","line":464,"lineto":464,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to ge the variables from"}],"argline":"git_config_iterator **out, const git_config *cfg","sig":"git_config_iterator **::const git_config *","return":{"type":"int"},"description":"<p>Iterate over all the config variables</p>\n","comments":"<p>Use <code>git_config_next</code> to advance the iteration and\n<code>git_config_iterator_free</code> when done.</p>\n","group":"config"},"git_config_iterator_glob_new":{"type":"function","file":"config.h","line":476,"lineto":476,"args":[{"name":"out","type":"git_config_iterator **","comment":"pointer to store the iterator"},{"name":"cfg","type":"const git_config *","comment":"where to ge the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match the names"}],"argline":"git_config_iterator **out, const git_config *cfg, const char *regexp","sig":"git_config_iterator **::const git_config *::const char *","return":{"type":"int"},"description":"<p>Iterate over all the config variables whose name matches a pattern</p>\n","comments":"<p>Use <code>git_config_next</code> to advance the iteration and\n<code>git_config_iterator_free</code> when done.</p>\n","group":"config"},"git_config_foreach_match":{"type":"function","file":"config.h","line":491,"lineto":495,"args":[{"name":"cfg","type":"const git_config *","comment":"where to get the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match against config names"},{"name":"callback","type":"git_config_foreach_cb","comment":"the function to call on each variable"},{"name":"payload","type":"void *","comment":"the data to pass to the callback"}],"argline":"const git_config *cfg,\n\tconst char *regexp,\n\tgit_config_foreach_cb callback,\n\tvoid *payload","sig":"const git_config *::const char *::git_config_foreach_cb::void *","return":{"type":"int","comment":"0 or the return value of the callback which didn't return 0"},"description":"<p>Perform an operation on each config variable matching a regular expression.</p>\n","comments":"<p>This behaviors like <code>git_config_foreach</code> with an additional filter of a\nregular expression that filters which config keys are passed to the\ncallback.</p>\n","group":"config"},"git_config_get_mapped":{"type":"function","file":"config.h","line":531,"lineto":536,"args":[{"name":"out","type":"int *","comment":"place to store the result of the mapping"},{"name":"cfg","type":"const git_config *","comment":"config file to get the variables from"},{"name":"name","type":"const char *","comment":"name of the config variable to lookup"},{"name":"maps","type":"const git_cvar_map *","comment":"array of `git_cvar_map` objects specifying the possible mappings"},{"name":"map_n","type":"size_t","comment":"number of mapping objects in `maps`"}],"argline":"int *out,\n\tconst git_config *cfg,\n\tconst char *name,\n\tconst git_cvar_map *maps,\n\tsize_t map_n","sig":"int *::const git_config *::const char *::const git_cvar_map *::size_t","return":{"type":"int","comment":"0 on success, error code otherwise"},"description":"<p>Query the value of a config variable and return it mapped to\nan integer constant.</p>\n","comments":"<p>This is a helper method to easily map different possible values\nto a variable to integer constants that easily identify them.</p>\n\n<p>A mapping array looks as follows:</p>\n\n<p>git_cvar_map autocrlf_mapping[] = {\n {GIT_CVAR_FALSE, NULL, GIT_AUTO_CRLF_FALSE},\n {GIT_CVAR_TRUE, NULL, GIT_AUTO_CRLF_TRUE},\n {GIT_CVAR_STRING, &quot;input&quot;, GIT_AUTO_CRLF_INPUT},\n {GIT_CVAR_STRING, &quot;default&quot;, GIT_AUTO_CRLF_DEFAULT}};</p>\n\n<p>On any &quot;false&quot; value for the variable (e.g. &quot;false&quot;, &quot;FALSE&quot;, &quot;no&quot;), the\nmapping will store <code>GIT_AUTO_CRLF_FALSE</code> in the <code>out</code> parameter.</p>\n\n<p>The same thing applies for any &quot;true&quot; value such as &quot;true&quot;, &quot;yes&quot; or &quot;1&quot;, storing\nthe <code>GIT_AUTO_CRLF_TRUE</code> variable.</p>\n\n<p>Otherwise, if the value matches the string &quot;input&quot; (with case insensitive comparison),\nthe given constant will be stored in <code>out</code>, and likewise for &quot;default&quot;.</p>\n\n<p>If not a single match can be made to store in <code>out</code>, an error code will be\nreturned.</p>\n","group":"config"},"git_config_lookup_map_value":{"type":"function","file":"config.h","line":546,"lineto":550,"args":[{"name":"out","type":"int *","comment":"place to store the result of the parsing"},{"name":"maps","type":"const git_cvar_map *","comment":"array of `git_cvar_map` objects specifying the possible mappings"},{"name":"map_n","type":"size_t","comment":"number of mapping objects in `maps`"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int *out,\n\tconst git_cvar_map *maps,\n\tsize_t map_n,\n\tconst char *value","sig":"int *::const git_cvar_map *::size_t::const char *","return":{"type":"int"},"description":"<p>Maps a string value to an integer constant</p>\n","comments":"","group":"config"},"git_config_parse_bool":{"type":"function","file":"config.h","line":562,"lineto":562,"args":[{"name":"out","type":"int *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int *out, const char *value","sig":"int *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as a bool.</p>\n","comments":"<p>Valid values for true are: &#39;true&#39;, &#39;yes&#39;, &#39;on&#39;, 1 or any\n number different from 0\nValid values for false are: &#39;false&#39;, &#39;no&#39;, &#39;off&#39;, 0</p>\n","group":"config"},"git_config_parse_int32":{"type":"function","file":"config.h","line":574,"lineto":574,"args":[{"name":"out","type":"int32_t *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int32_t *out, const char *value","sig":"int32_t *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as an int32.</p>\n","comments":"<p>An optional value suffix of &#39;k&#39;, &#39;m&#39;, or &#39;g&#39; will\ncause the value to be multiplied by 1024, 1048576,\nor 1073741824 prior to output.</p>\n","group":"config"},"git_config_parse_int64":{"type":"function","file":"config.h","line":586,"lineto":586,"args":[{"name":"out","type":"int64_t *","comment":"place to store the result of the parsing"},{"name":"value","type":"const char *","comment":"value to parse"}],"argline":"int64_t *out, const char *value","sig":"int64_t *::const char *","return":{"type":"int"},"description":"<p>Parse a string value as an int64.</p>\n","comments":"<p>An optional value suffix of &#39;k&#39;, &#39;m&#39;, or &#39;g&#39; will\ncause the value to be multiplied by 1024, 1048576,\nor 1073741824 prior to output.</p>\n","group":"config"},"git_config_backend_foreach_match":{"type":"function","file":"config.h","line":601,"lineto":605,"args":[{"name":"backend","type":"git_config_backend *","comment":"where to get the variables from"},{"name":"regexp","type":"const char *","comment":"regular expression to match against config names (can be NULL)"},{"name":"fn","type":"int (*)(const git_config_entry *, void *)"},{"name":"data","type":"void *"}],"argline":"git_config_backend *backend,\n\tconst char *regexp,\n\tint (*fn)(const git_config_entry *, void *),\n\tvoid *data","sig":"git_config_backend *::const char *::int (*)(const git_config_entry *, void *)::void *","return":{"type":"int"},"description":"<p>Perform an operation on each config variable in given config backend\nmatching a regular expression.</p>\n","comments":"<p>This behaviors like <code>git_config_foreach_match</code> except instead of all config\nentries it just enumerates through the given backend entry.</p>\n","group":"config"},"git_cred_userpass":{"type":"function","file":"cred_helpers.h","line":43,"lineto":48,"args":[{"name":"cred","type":"git_cred **","comment":"The newly created credential object."},{"name":"url","type":"const char *","comment":"The resource for which we are demanding a credential."},{"name":"user_from_url","type":"const char *","comment":"The username that was embedded in a \"user@host\" remote url, or NULL if not included."},{"name":"allowed_types","type":"unsigned int","comment":"A bitmask stating which cred types are OK to return."},{"name":"payload","type":"void *","comment":"The payload provided when specifying this callback. (This is interpreted as a `git_cred_userpass_payload*`.)"}],"argline":"git_cred **cred,\n\t\tconst char *url,\n\t\tconst char *user_from_url,\n\t\tunsigned int allowed_types,\n\t\tvoid *payload","sig":"git_cred **::const char *::const char *::unsigned int::void *","return":{"type":"int"},"description":"<p>Stock callback usable as a git_cred_acquire_cb. This calls\ngit_cred_userpass_plaintext_new unless the protocol has not specified\n<code>GIT_CREDTYPE_USERPASS_PLAINTEXT</code> as an allowed type.</p>\n","comments":"","group":"cred"},"git_diff_list_free":{"type":"function","file":"diff.h","line":536,"lineto":536,"args":[{"name":"diff","type":"git_diff_list *","comment":"The previously created diff list; cannot be used after free."}],"argline":"git_diff_list *diff","sig":"git_diff_list *","return":{"type":"void"},"description":"<p>Deallocate a diff list.</p>\n","comments":"","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_list_free-2","ex/HEAD/diff.html#git_diff_list_free-3"],"log.c":["ex/HEAD/log.html#git_diff_list_free-21","ex/HEAD/log.html#git_diff_list_free-22"]}},"git_diff_tree_to_tree":{"type":"function","file":"diff.h","line":554,"lineto":559,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the trees."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"new_tree","type":"git_tree *","comment":"A git_tree object to diff to, or NULL for empty tree."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tgit_tree *new_tree,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::git_tree *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list with the difference between two tree objects.</p>\n","comments":"<p>This is equivalent to <code>git diff &lt;old-tree&gt; &lt;new-tree&gt;</code></p>\n\n<p>The first tree will be used for the &quot;old_file&quot; side of the delta and the\nsecond tree will be used for the &quot;new_file&quot; side of the delta. You can\npass NULL to indicate an empty tree, although it is an error to pass\nNULL for both the <code>old_tree</code> and <code>new_tree</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_tree_to_tree-4"],"log.c":["ex/HEAD/log.html#git_diff_tree_to_tree-23","ex/HEAD/log.html#git_diff_tree_to_tree-24"]}},"git_diff_tree_to_index":{"type":"function","file":"diff.h","line":576,"lineto":581,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the tree and index."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"index","type":"git_index *","comment":"The index to diff with; repo index used if NULL."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tgit_index *index,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::git_index *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between a tree and repository index.</p>\n","comments":"<p>This is equivalent to <code>git diff --cached &lt;treeish&gt;</code> or if you pass\nthe HEAD tree, then like <code>git diff --cached</code>.</p>\n\n<p>The tree you pass will be used for the &quot;old_file&quot; side of the delta, and\nthe index will be used for the &quot;new_file&quot; side of the delta.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_tree_to_index-5","ex/HEAD/diff.html#git_diff_tree_to_index-6","ex/HEAD/diff.html#git_diff_tree_to_index-7"]}},"git_diff_index_to_workdir":{"type":"function","file":"diff.h","line":599,"lineto":603,"args":[{"name":"diff","type":"git_diff_list **","comment":"Output pointer to a git_diff_list pointer to be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository."},{"name":"index","type":"git_index *","comment":"The index to diff from; repo index used if NULL."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_index *index,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_index *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between the repository index and the workdir directory.</p>\n","comments":"<p>This matches the <code>git diff</code> command. See the note below on\n<code>git_diff_tree_to_workdir</code> for a discussion of the difference between\n<code>git diff</code> and <code>git diff HEAD</code> and how to emulate a <code>git diff &lt;treeish&gt;</code>\nusing libgit2.</p>\n\n<p>The index will be used for the &quot;old_file&quot; side of the delta, and the\nworking directory will be used for the &quot;new_file&quot; side of the delta.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_index_to_workdir-8","ex/HEAD/diff.html#git_diff_index_to_workdir-9"]}},"git_diff_tree_to_workdir":{"type":"function","file":"diff.h","line":634,"lineto":638,"args":[{"name":"diff","type":"git_diff_list **","comment":"A pointer to a git_diff_list pointer that will be allocated."},{"name":"repo","type":"git_repository *","comment":"The repository containing the tree."},{"name":"old_tree","type":"git_tree *","comment":"A git_tree object to diff from, or NULL for empty tree."},{"name":"opts","type":"const git_diff_options *","comment":"Structure with options to influence diff or NULL for defaults."}],"argline":"git_diff_list **diff,\n\tgit_repository *repo,\n\tgit_tree *old_tree,\n\tconst git_diff_options *opts","sig":"git_diff_list **::git_repository *::git_tree *::const git_diff_options *","return":{"type":"int"},"description":"<p>Create a diff list between a tree and the working directory.</p>\n","comments":"<p>The tree you provide will be used for the &quot;old_file&quot; side of the delta,\nand the working directory will be used for the &quot;new_file&quot; side.</p>\n\n<p>Please note: this is <em>NOT</em> the same as <code>git diff &lt;treeish&gt;</code>. Running\n<code>git diff HEAD</code> or the like actually uses information from the index,\nalong with the tree and working directory info.</p>\n\n<p>This function returns strictly the differences between the tree and the\nfiles contained in the working directory, regardless of the state of\nfiles in the index. It may come as a surprise, but there is no direct\nequivalent in core git.</p>\n\n<p>To emulate <code>git diff &lt;treeish&gt;</code>, call both <code>git_diff_tree_to_index</code> and\n<code>git_diff_index_to_workdir</code>, then call <code>git_diff_merge</code> on the results.\nThat will yield a <code>git_diff_list</code> that matches the git output.</p>\n\n<p>If this seems confusing, take the case of a file with a staged deletion\nwhere the file has then been put back into the working dir and modified.\nThe tree-to-workdir diff for that file is &#39;modified&#39;, but core git would\nshow status &#39;deleted&#39; since there is a pending deletion in the index.</p>\n","group":"diff"},"git_diff_merge":{"type":"function","file":"diff.h","line":653,"lineto":655,"args":[{"name":"onto","type":"git_diff_list *","comment":"Diff to merge into."},{"name":"from","type":"const git_diff_list *","comment":"Diff to merge."}],"argline":"git_diff_list *onto,\n\tconst git_diff_list *from","sig":"git_diff_list *::const git_diff_list *","return":{"type":"int"},"description":"<p>Merge one diff list into another.</p>\n","comments":"<p>This merges items from the &quot;from&quot; list into the &quot;onto&quot; list. The\nresulting diff list will have all items that appear in either list.\nIf an item appears in both lists, then it will be &quot;merged&quot; to appear\nas if the old version was from the &quot;onto&quot; list and the new version\nis from the &quot;from&quot; list (with the exception that if the item has a\npending DELETE in the middle, then it will show as deleted).</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_merge-10"]}},"git_diff_find_similar":{"type":"function","file":"diff.h","line":669,"lineto":671,"args":[{"name":"diff","type":"git_diff_list *","comment":"Diff list to run detection algorithms on"},{"name":"options","type":"git_diff_find_options *","comment":"Control how detection should be run, NULL for defaults"}],"argline":"git_diff_list *diff,\n\tgit_diff_find_options *options","sig":"git_diff_list *::git_diff_find_options *","return":{"type":"int","comment":"0 on success, -1 on failure"},"description":"<p>Transform a diff list marking file renames, copies, etc.</p>\n","comments":"<p>This modifies a diff list in place, replacing old entries that look\nlike renames or copies with new entries reflecting those changes.\nThis also will, if requested, break modified files into add/remove\npairs if the amount of change is above a threshold.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_find_similar-11"]}},"git_diff_foreach":{"type":"function","file":"diff.h","line":708,"lineto":713,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback function to make per file in the diff."},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Optional callback to make per hunk of text diff. This callback is called to describe a range of lines in the diff. It will not be issued for binary files."},{"name":"line_cb","type":"git_diff_data_cb","comment":"Optional callback to make per line of diff text. This same callback will be made for context lines, added, and removed lines, and even for a deleted trailing newline."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_list *diff,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb line_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all deltas in a diff list issuing callbacks.</p>\n","comments":"<p>This will iterate through all of the files described in a diff. You\nshould provide a file callback to learn about each file.</p>\n\n<p>The &quot;hunk&quot; and &quot;line&quot; callbacks are optional, and the text diff of the\nfiles will only be calculated if they are not NULL. Of course, these\ncallbacks will not be invoked for binary files on the diff list or for\nfiles whose only changed is a file mode change.</p>\n\n<p>Returning a non-zero value from any of the callbacks will terminate\nthe iteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff"},"git_diff_print_compact":{"type":"function","file":"diff.h","line":726,"lineto":729,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback to make per line of diff text."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callback."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff --name-status&quot;.</p>\n","comments":"<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_compact-12"]}},"git_diff_print_raw":{"type":"function","file":"diff.h","line":742,"lineto":745,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback to make per line of diff text."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callback."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff --raw&quot;.</p>\n","comments":"<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_raw-13"]}},"git_diff_status_char":{"type":"function","file":"diff.h","line":759,"lineto":759,"args":[{"name":"status","type":"git_delta_t","comment":"The git_delta_t value to look up"}],"argline":"git_delta_t status","sig":"git_delta_t","return":{"type":"char","comment":"The single character label for that code"},"description":"<p>Look up the single character abbreviation for a delta status code.</p>\n","comments":"<p>When you call <code>git_diff_print_compact</code> it prints single letter codes into\nthe output such as &#39;A&#39; for added, &#39;D&#39; for deleted, &#39;M&#39; for modified, etc.\nIt is sometimes convenient to convert a git_delta_t value into these\nletters for your own purposes. This function does just that. By the\nway, unmodified will return a space (i.e. &#39; &#39;).</p>\n","group":"diff"},"git_diff_print_patch":{"type":"function","file":"diff.h","line":778,"lineto":781,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions."},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback function to output lines of the diff. This same function will be called for file headers, hunk headers, and diff lines. Fortunately, you can probably use various GIT_DIFF_LINE constants to determine what text you are given."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_list *diff,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_list *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Iterate over a diff generating text output like &quot;git diff&quot;.</p>\n","comments":"<p>This is a super easy way to generate a patch from a diff.</p>\n\n<p>Returning a non-zero value from the callbacks will terminate the\niteration and cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff","examples":{"diff.c":["ex/HEAD/diff.html#git_diff_print_patch-14"],"log.c":["ex/HEAD/log.html#git_diff_print_patch-25"]}},"git_diff_num_deltas":{"type":"function","file":"diff.h","line":789,"lineto":789,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions"}],"argline":"git_diff_list *diff","sig":"git_diff_list *","return":{"type":"size_t","comment":"Count of number of deltas in the list"},"description":"<p>Query how many diff records are there in a diff list.</p>\n","comments":"","group":"diff","examples":{"log.c":["ex/HEAD/log.html#git_diff_num_deltas-26"]}},"git_diff_num_deltas_of_type":{"type":"function","file":"diff.h","line":802,"lineto":804,"args":[{"name":"diff","type":"git_diff_list *","comment":"A git_diff_list generated by one of the above functions"},{"name":"type","type":"git_delta_t","comment":"A git_delta_t value to filter the count"}],"argline":"git_diff_list *diff,\n\tgit_delta_t type","sig":"git_diff_list *::git_delta_t","return":{"type":"size_t","comment":"Count of number of deltas matching delta_t type"},"description":"<p>Query how many diff deltas are there in a diff list filtered by type.</p>\n","comments":"<p>This works just like <code>git_diff_entrycount()</code> with an extra parameter\nthat is a <code>git_delta_t</code> and returns just the count of how many deltas\nmatch that particular type.</p>\n","group":"diff"},"git_diff_is_sorted_icase":{"type":"function","file":"diff.h","line":812,"lineto":812,"args":[{"name":"diff","type":"const git_diff_list *","comment":"Diff list to check"}],"argline":"const git_diff_list *diff","sig":"const git_diff_list *","return":{"type":"int","comment":"0 if case sensitive, 1 if case is ignored"},"description":"<p>Check if deltas are sorted case sensitively or insensitively.</p>\n","comments":"","group":"diff"},"git_diff_get_patch":{"type":"function","file":"diff.h","line":839,"lineto":843,"args":[{"name":"patch_out","type":"git_diff_patch **","comment":"Output parameter for the delta patch object"},{"name":"delta_out","type":"const git_diff_delta **","comment":"Output parameter for the delta object"},{"name":"diff","type":"git_diff_list *","comment":"Diff list object"},{"name":"idx","type":"size_t","comment":"Index into diff list"}],"argline":"git_diff_patch **patch_out,\n\tconst git_diff_delta **delta_out,\n\tgit_diff_list *diff,\n\tsize_t idx","sig":"git_diff_patch **::const git_diff_delta **::git_diff_list *::size_t","return":{"type":"int","comment":"0 on success, other value < 0 on error"},"description":"<p>Return the diff delta and patch for an entry in the diff list.</p>\n","comments":"<p>The <code>git_diff_patch</code> is a newly created object contains the text diffs\nfor the delta. You have to call <code>git_diff_patch_free()</code> when you are\ndone with it. You can use the patch object to loop over all the hunks\nand lines in the diff of the one delta.</p>\n\n<p>For an unchanged file or a binary file, no <code>git_diff_patch</code> will be\ncreated, the output will be set to NULL, and the <code>binary</code> flag will be\nset true in the <code>git_diff_delta</code> structure.</p>\n\n<p>The <code>git_diff_delta</code> pointer points to internal data and you do not have\nto release it when you are done with it. It will go away when the\n<code>git_diff_list</code> and <code>git_diff_patch</code> go away.</p>\n\n<p>It is okay to pass NULL for either of the output parameters; if you pass\nNULL for the <code>git_diff_patch</code>, then the text diff will not be calculated.</p>\n","group":"diff"},"git_diff_patch_free":{"type":"function","file":"diff.h","line":848,"lineto":849,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"void"},"description":"<p>Free a git_diff_patch object.</p>\n","comments":"","group":"diff"},"git_diff_patch_delta":{"type":"function","file":"diff.h","line":854,"lineto":855,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"const git_diff_delta *"},"description":"<p>Get the delta associated with a patch</p>\n","comments":"","group":"diff"},"git_diff_patch_num_hunks":{"type":"function","file":"diff.h","line":860,"lineto":861,"args":[{"name":"patch","type":"git_diff_patch *"}],"argline":"git_diff_patch *patch","sig":"git_diff_patch *","return":{"type":"size_t"},"description":"<p>Get the number of hunks in a patch</p>\n","comments":"","group":"diff"},"git_diff_patch_line_stats":{"type":"function","file":"diff.h","line":879,"lineto":883,"args":[{"name":"total_context","type":"size_t *","comment":"Count of context lines in output, can be NULL."},{"name":"total_additions","type":"size_t *","comment":"Count of addition lines in output, can be NULL."},{"name":"total_deletions","type":"size_t *","comment":"Count of deletion lines in output, can be NULL."},{"name":"patch","type":"const git_diff_patch *","comment":"The git_diff_patch object"}],"argline":"size_t *total_context,\n\tsize_t *total_additions,\n\tsize_t *total_deletions,\n\tconst git_diff_patch *patch","sig":"size_t *::size_t *::size_t *::const git_diff_patch *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get line counts of each type in a patch.</p>\n","comments":"<p>This helps imitate a diff --numstat type of output. For that purpose,\nyou only need the <code>total_additions</code> and <code>total_deletions</code> values, but we\ninclude the <code>total_context</code> line count in case you want the total number\nof lines of diff output that will be generated.</p>\n\n<p>All outputs are optional. Pass NULL if you don&#39;t need a particular count.</p>\n","group":"diff"},"git_diff_patch_get_hunk":{"type":"function","file":"diff.h","line":901,"lineto":907,"args":[{"name":"range","type":"const git_diff_range **","comment":"Output pointer to git_diff_range of hunk"},{"name":"header","type":"const char **","comment":"Output pointer to header string for hunk. Unlike the content pointer for each line, this will be NUL-terminated"},{"name":"header_len","type":"size_t *","comment":"Output value of characters in header string"},{"name":"lines_in_hunk","type":"size_t *","comment":"Output count of total lines in this hunk"},{"name":"patch","type":"git_diff_patch *","comment":"Input pointer to patch object"},{"name":"hunk_idx","type":"size_t","comment":"Input index of hunk to get information about"}],"argline":"const git_diff_range **range,\n\tconst char **header,\n\tsize_t *header_len,\n\tsize_t *lines_in_hunk,\n\tgit_diff_patch *patch,\n\tsize_t hunk_idx","sig":"const git_diff_range **::const char **::size_t *::size_t *::git_diff_patch *::size_t","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if hunk_idx out of range, <0 on error"},"description":"<p>Get the information about a hunk in a patch</p>\n","comments":"<p>Given a patch and a hunk index into the patch, this returns detailed\ninformation about that hunk. Any of the output pointers can be passed\nas NULL if you don&#39;t care about that particular piece of information.</p>\n","group":"diff"},"git_diff_patch_num_lines_in_hunk":{"type":"function","file":"diff.h","line":916,"lineto":918,"args":[{"name":"patch","type":"git_diff_patch *","comment":"The git_diff_patch object"},{"name":"hunk_idx","type":"size_t","comment":"Index of the hunk"}],"argline":"git_diff_patch *patch,\n\tsize_t hunk_idx","sig":"git_diff_patch *::size_t","return":{"type":"int","comment":"Number of lines in hunk or -1 if invalid hunk index"},"description":"<p>Get the number of lines in a hunk.</p>\n","comments":"","group":"diff"},"git_diff_patch_get_line_in_hunk":{"type":"function","file":"diff.h","line":938,"lineto":946,"args":[{"name":"line_origin","type":"char *","comment":"A GIT_DIFF_LINE constant from above"},{"name":"content","type":"const char **","comment":"Pointer to content of diff line, not NUL-terminated"},{"name":"content_len","type":"size_t *","comment":"Number of characters in content"},{"name":"old_lineno","type":"int *","comment":"Line number in old file or -1 if line is added"},{"name":"new_lineno","type":"int *","comment":"Line number in new file or -1 if line is deleted"},{"name":"patch","type":"git_diff_patch *","comment":"The patch to look in"},{"name":"hunk_idx","type":"size_t","comment":"The index of the hunk"},{"name":"line_of_hunk","type":"size_t","comment":"The index of the line in the hunk"}],"argline":"char *line_origin,\n\tconst char **content,\n\tsize_t *content_len,\n\tint *old_lineno,\n\tint *new_lineno,\n\tgit_diff_patch *patch,\n\tsize_t hunk_idx,\n\tsize_t line_of_hunk","sig":"char *::const char **::size_t *::int *::int *::git_diff_patch *::size_t::size_t","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Get data about a line in a hunk of a patch.</p>\n","comments":"<p>Given a patch, a hunk index, and a line index in the hunk, this\nwill return a lot of details about that line. If you pass a hunk\nindex larger than the number of hunks or a line index larger than\nthe number of lines in the hunk, this will return -1.</p>\n","group":"diff"},"git_diff_patch_size":{"type":"function","file":"diff.h","line":964,"lineto":968,"args":[{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"},{"name":"include_context","type":"int","comment":"Include context lines in size if non-zero"},{"name":"include_hunk_headers","type":"int","comment":"Include hunk header lines if non-zero"},{"name":"include_file_headers","type":"int","comment":"Include file header lines if non-zero"}],"argline":"git_diff_patch *patch,\n\tint include_context,\n\tint include_hunk_headers,\n\tint include_file_headers","sig":"git_diff_patch *::int::int::int","return":{"type":"size_t","comment":"The number of bytes of data"},"description":"<p>Look up size of patch diff data in bytes</p>\n","comments":"<p>This returns the raw size of the patch data. This only includes the\nactual data from the lines of the diff, not the file or hunk headers.</p>\n\n<p>If you pass <code>include_context</code> as true (non-zero), this will be the size\nof all of the diff output; if you pass it as false (zero), this will\nonly include the actual changed lines (as if <code>context_lines</code> was 0).</p>\n","group":"diff"},"git_diff_patch_print":{"type":"function","file":"diff.h","line":982,"lineto":985,"args":[{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"},{"name":"print_cb","type":"git_diff_data_cb","comment":"Callback function to output lines of the patch. Will be called for file headers, hunk headers, and diff lines."},{"name":"payload","type":"void *","comment":"Reference pointer that will be passed to your callbacks."}],"argline":"git_diff_patch *patch,\n\tgit_diff_data_cb print_cb,\n\tvoid *payload","sig":"git_diff_patch *::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Serialize the patch to text via callback.</p>\n","comments":"<p>Returning a non-zero value from the callback will terminate the iteration\nand cause this return <code>GIT_EUSER</code>.</p>\n","group":"diff"},"git_diff_patch_to_str":{"type":"function","file":"diff.h","line":994,"lineto":996,"args":[{"name":"string","type":"char **","comment":"Allocated string; caller must free."},{"name":"patch","type":"git_diff_patch *","comment":"A git_diff_patch representing changes to one file"}],"argline":"char **string,\n\tgit_diff_patch *patch","sig":"char **::git_diff_patch *","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Get the content of a patch as a single diff text.</p>\n","comments":"","group":"diff"},"git_diff_blobs":{"type":"function","file":"diff.h","line":1032,"lineto":1041,"args":[{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"new_blob","type":"const git_blob *","comment":"Blob for new side of diff, or NULL for empty blob"},{"name":"new_as_path","type":"const char *","comment":"Treat new blob as if it had this filename; can be NULL"},{"name":"options","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback for \"file\"; made once if there is a diff; can be NULL"},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Callback for each hunk in diff; can be NULL"},{"name":"line_cb","type":"git_diff_data_cb","comment":"Callback for each line in diff; can be NULL"},{"name":"payload","type":"void *","comment":"Payload passed to each callback function"}],"argline":"const git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst git_blob *new_blob,\n\tconst char *new_as_path,\n\tconst git_diff_options *options,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb line_cb,\n\tvoid *payload","sig":"const git_blob *::const char *::const git_blob *::const char *::const git_diff_options *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback return, or error code"},"description":"<p>Directly run a diff on two blobs.</p>\n","comments":"<p>Compared to a file, a blob lacks some contextual information. As such,\nthe <code>git_diff_file</code> given to the callback will have some fake data; i.e.\n<code>mode</code> will be 0 and <code>path</code> will be NULL.</p>\n\n<p>NULL is allowed for either <code>old_blob</code> or <code>new_blob</code> and will be treated\nas an empty blob, with the <code>oid</code> set to NULL in the <code>git_diff_file</code> data.\nPassing NULL for both blobs is a noop; no callbacks will be made at all.</p>\n\n<p>We do run a binary content check on the blob content and if either blob\nlooks like binary data, the <code>git_diff_delta</code> binary attribute will be set\nto 1 and no call to the hunk_cb nor line_cb will be made (unless you pass\n<code>GIT_DIFF_FORCE_TEXT</code> of course).</p>\n","group":"diff"},"git_diff_patch_from_blobs":{"type":"function","file":"diff.h","line":1059,"lineto":1065,"args":[{"name":"out","type":"git_diff_patch **","comment":"The generated patch; NULL on error"},{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"new_blob","type":"const git_blob *","comment":"Blob for new side of diff, or NULL for empty blob"},{"name":"new_as_path","type":"const char *","comment":"Treat new blob as if it had this filename; can be NULL"},{"name":"opts","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"}],"argline":"git_diff_patch **out,\n\tconst git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst git_blob *new_blob,\n\tconst char *new_as_path,\n\tconst git_diff_options *opts","sig":"git_diff_patch **::const git_blob *::const char *::const git_blob *::const char *::const git_diff_options *","return":{"type":"int","comment":"0 on success or error code < 0"},"description":"<p>Directly generate a patch from the difference between two blobs.</p>\n","comments":"<p>This is just like <code>git_diff_blobs()</code> except it generates a patch object\nfor the difference instead of directly making callbacks. You can use the\nstandard <code>git_diff_patch</code> accessor functions to read the patch data, and\nyou must call <code>git_diff_patch_free()</code> on the patch when done.</p>\n","group":"diff"},"git_diff_blob_to_buffer":{"type":"function","file":"diff.h","line":1091,"lineto":1101,"args":[{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"buffer","type":"const char *","comment":"Raw data for new side of diff, or NULL for empty"},{"name":"buffer_len","type":"size_t","comment":"Length of raw data for new side of diff"},{"name":"buffer_as_path","type":"const char *","comment":"Treat buffer as if it had this filename; can be NULL"},{"name":"options","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"},{"name":"file_cb","type":"git_diff_file_cb","comment":"Callback for \"file\"; made once if there is a diff; can be NULL"},{"name":"hunk_cb","type":"git_diff_hunk_cb","comment":"Callback for each hunk in diff; can be NULL"},{"name":"data_cb","type":"git_diff_data_cb","comment":"Callback for each line in diff; can be NULL"},{"name":"payload","type":"void *","comment":"Payload passed to each callback function"}],"argline":"const git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst char *buffer,\n\tsize_t buffer_len,\n\tconst char *buffer_as_path,\n\tconst git_diff_options *options,\n\tgit_diff_file_cb file_cb,\n\tgit_diff_hunk_cb hunk_cb,\n\tgit_diff_data_cb data_cb,\n\tvoid *payload","sig":"const git_blob *::const char *::const char *::size_t::const char *::const git_diff_options *::git_diff_file_cb::git_diff_hunk_cb::git_diff_data_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback return, or error code"},"description":"<p>Directly run a diff between a blob and a buffer.</p>\n","comments":"<p>As with <code>git_diff_blobs</code>, comparing a blob and buffer lacks some context,\nso the <code>git_diff_file</code> parameters to the callbacks will be faked a la the\nrules for <code>git_diff_blobs()</code>.</p>\n\n<p>Passing NULL for <code>old_blob</code> will be treated as an empty blob (i.e. the\n<code>file_cb</code> will be invoked with GIT_DELTA_ADDED and the diff will be the\nentire content of the buffer added). Passing NULL to the buffer will do\nthe reverse, with GIT_DELTA_REMOVED and blob content removed.</p>\n","group":"diff"},"git_diff_patch_from_blob_and_buffer":{"type":"function","file":"diff.h","line":1120,"lineto":1130,"args":[{"name":"out","type":"git_diff_patch **","comment":"The generated patch; NULL on error"},{"name":"old_blob","type":"const git_blob *","comment":"Blob for old side of diff, or NULL for empty blob"},{"name":"old_as_path","type":"const char *","comment":"Treat old blob as if it had this filename; can be NULL"},{"name":"buffer","type":"const char *","comment":"Raw data for new side of diff, or NULL for empty"},{"name":"buffer_len","type":"size_t","comment":"Length of raw data for new side of diff"},{"name":"buffer_as_path","type":"const char *","comment":"Treat buffer as if it had this filename; can be NULL"},{"name":"opts","type":"const git_diff_options *","comment":"Options for diff, or NULL for default options"}],"argline":"git_diff_patch **out,\n\tconst git_blob *old_blob,\n\tconst char *old_as_path,\n\tconst char *buffer,\n\tsize_t buffer_len,\n\tconst char *buffer_as_path,\n\tconst git_diff_options *opts","sig":"git_diff_patch **::const git_blob *::const char *::const char *::size_t::const char *::const git_diff_options *","return":{"type":"int","comment":"0 on success or error code < 0"},"description":"<p>Directly generate a patch from the difference between a blob and a buffer.</p>\n","comments":"<p>This is just like <code>git_diff_blob_to_buffer()</code> except it generates a patch\nobject for the difference instead of directly making callbacks. You can\nuse the standard <code>git_diff_patch</code> accessor functions to read the patch\ndata, and you must call <code>git_diff_patch_free()</code> on the patch when done.</p>\n","group":"diff"},"giterr_last":{"type":"function","file":"errors.h","line":80,"lineto":80,"args":[],"argline":"void","sig":"","return":{"type":"const git_error *","comment":"A git_error object."},"description":"<p>Return the last <code>git_error</code> object that was generated for the\ncurrent thread or NULL if no error has occurred.</p>\n","comments":"","group":"giterr","examples":{"general.c":["ex/HEAD/general.html#giterr_last-27"],"network/clone.c":["ex/HEAD/network/clone.html#giterr_last-2"],"network/git2.c":["ex/HEAD/network/git2.html#giterr_last-1","ex/HEAD/network/git2.html#giterr_last-2"],"rev-list.c":["ex/HEAD/rev-list.html#giterr_last-1"],"status.c":["ex/HEAD/status.html#giterr_last-1"]}},"giterr_clear":{"type":"function","file":"errors.h","line":85,"lineto":85,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Clear the last library error that occurred for this thread.</p>\n","comments":"","group":"giterr"},"giterr_set_str":{"type":"function","file":"errors.h","line":108,"lineto":108,"args":[{"name":"error_class","type":"int","comment":"One of the `git_error_t` enum above describing the general subsystem that is responsible for the error."},{"name":"string","type":"const char *","comment":"The formatted error message to keep"}],"argline":"int error_class, const char *string","sig":"int::const char *","return":{"type":"void"},"description":"<p>Set the error message string for this thread.</p>\n","comments":"<p>This function is public so that custom ODB backends and the like can\nrelay an error message through libgit2. Most regular users of libgit2\nwill never need to call this function -- actually, calling it in most\ncircumstances (for example, calling from within a callback function)\nwill just end up having the value overwritten by libgit2 internals.</p>\n\n<p>This error message is stored in thread-local storage and only applies\nto the particular thread that this libgit2 call is made from.</p>\n\n<p>NOTE: Passing the <code>error_class</code> as GITERR_OS has a special behavior: we\nattempt to append the system default error message for the last OS error\nthat occurred and then clear the last error. The specific implementation\nof looking up and clearing this last OS error will vary by platform.</p>\n","group":"giterr"},"giterr_set_oom":{"type":"function","file":"errors.h","line":119,"lineto":119,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Set the error message to a special value for memory allocation failure.</p>\n","comments":"<p>The normal <code>giterr_set_str()</code> function attempts to <code>strdup()</code> the string\nthat is passed in. This is not a good idea when the error in question\nis a memory allocation failure. That circumstance has a special setter\nfunction that sets the error string to a known and statically allocated\ninternal value.</p>\n","group":"giterr"},"git_filter_list_load":{"type":"function","file":"filter.h","line":81,"lineto":86,"args":[{"name":"filters","type":"git_filter_list **","comment":"Output newly created git_filter_list (or NULL)"},{"name":"repo","type":"git_repository *","comment":"Repository object that contains `path`"},{"name":"blob","type":"git_blob *","comment":"The blob to which the filter will be applied (if known)"},{"name":"path","type":"const char *","comment":"Relative path of the file to be filtered"},{"name":"mode","type":"git_filter_mode_t","comment":"Filtering direction (WT->ODB or ODB->WT)"}],"argline":"git_filter_list **filters,\n\tgit_repository *repo,\n\tgit_blob *blob, \n\tconst char *path,\n\tgit_filter_mode_t mode","sig":"git_filter_list **::git_repository *::git_blob *::const char *::git_filter_mode_t","return":{"type":"int","comment":"0 on success (which could still return NULL if no filters are needed for the requested file), <0 on error"},"description":"<p>Load the filter list for a given path.</p>\n","comments":"<p>This will return 0 (success) but set the output git_filter_list to NULL\nif no filters are requested for the given file.</p>\n","group":"filter"},"git_filter_list_apply_to_data":{"type":"function","file":"filter.h","line":108,"lineto":111,"args":[{"name":"out","type":"git_buf *","comment":"Buffer to store the result of the filtering"},{"name":"filters","type":"git_filter_list *","comment":"A loaded git_filter_list (or NULL)"},{"name":"in","type":"git_buf *","comment":"Buffer containing the data to filter"}],"argline":"git_buf *out,\n\tgit_filter_list *filters,\n\tgit_buf *in","sig":"git_buf *::git_filter_list *::git_buf *","return":{"type":"int","comment":"0 on success, an error code otherwise"},"description":"<p>Apply filter list to a data buffer.</p>\n","comments":"<p>See <code>git2/buffer.h</code> for background on <code>git_buf</code> objects.</p>\n\n<p>If the <code>in</code> buffer holds data allocated by libgit2 (i.e. <code>in-&gt;asize</code> is\nnot zero), then it will be overwritten when applying the filters. If\nnot, then it will be left untouched.</p>\n\n<p>If there are no filters to apply (or <code>filters</code> is NULL), then the <code>out</code>\nbuffer will reference the <code>in</code> buffer data (with <code>asize</code> set to zero)\ninstead of allocating data. This keeps allocations to a minimum, but\nit means you have to be careful about freeing the <code>in</code> data since <code>out</code>\nmay be pointing to it!</p>\n","group":"filter"},"git_filter_list_apply_to_file":{"type":"function","file":"filter.h","line":116,"lineto":120,"args":[{"name":"out","type":"git_buf *"},{"name":"filters","type":"git_filter_list *"},{"name":"repo","type":"git_repository *"},{"name":"path","type":"const char *"}],"argline":"git_buf *out,\n\tgit_filter_list *filters,\n\tgit_repository *repo,\n\tconst char *path","sig":"git_buf *::git_filter_list *::git_repository *::const char *","return":{"type":"int"},"description":"<p>Apply filter list to the contents of a file on disk</p>\n","comments":"","group":"filter"},"git_filter_list_apply_to_blob":{"type":"function","file":"filter.h","line":125,"lineto":128,"args":[{"name":"out","type":"git_buf *"},{"name":"filters","type":"git_filter_list *"},{"name":"blob","type":"git_blob *"}],"argline":"git_buf *out,\n\tgit_filter_list *filters,\n\tgit_blob *blob","sig":"git_buf *::git_filter_list *::git_blob *","return":{"type":"int"},"description":"<p>Apply filter list to the contents of a blob</p>\n","comments":"","group":"filter"},"git_filter_list_free":{"type":"function","file":"filter.h","line":135,"lineto":138,"args":[{"name":"filters","type":"git_filter_list *","comment":"A git_filter_list created by `git_filter_list_load`"}],"argline":"git_filter_list *filters","sig":"git_filter_list *","return":{"type":"void"},"description":"<p>Free a git_filter_list</p>\n","comments":"","group":"filter"},"git_graph_ahead_behind":{"type":"function","file":"graph.h","line":37,"lineto":37,"args":[{"name":"ahead","type":"size_t *","comment":"number of unique from commits in `upstream`"},{"name":"behind","type":"size_t *","comment":"number of unique from commits in `local`"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"local","type":"const git_oid *","comment":"the commit for local"},{"name":"upstream","type":"const git_oid *","comment":"the commit for upstream"}],"argline":"size_t *ahead, size_t *behind, git_repository *repo, const git_oid *local, const git_oid *upstream","sig":"size_t *::size_t *::git_repository *::const git_oid *::const git_oid *","return":{"type":"int"},"description":"<p>Count the number of unique commits between two commit objects</p>\n","comments":"<p>There is no need for branches containing the commits to have any\nupstream relationship, but it helps to think of one as a branch and\nthe other as its upstream, the <code>ahead</code> and <code>behind</code> values will be\nwhat git would report for the branches.</p>\n","group":"graph"},"git_ignore_add_rule":{"type":"function","file":"ignore.h","line":37,"lineto":39,"args":[{"name":"repo","type":"git_repository *","comment":"The repository to add ignore rules to."},{"name":"rules","type":"const char *","comment":"Text of rules, a la the contents of a .gitignore file. It is okay to have multiple rules in the text; if so, each rule should be terminated with a newline."}],"argline":"git_repository *repo,\n\tconst char *rules","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success"},"description":"<p>Add ignore rules for a repository.</p>\n","comments":"<p>Excludesfile rules (i.e. .gitignore rules) are generally read from\n.gitignore files in the repository tree or from a shared system file\nonly if a &quot;core.excludesfile&quot; config value is set. The library also\nkeeps a set of per-repository internal ignores that can be configured\nin-memory and will not persist. This function allows you to add to\nthat internal rules list.</p>\n\n<p>Example usage:</p>\n\n<pre><code>error = git_ignore_add_rule(myrepo, &quot;*.c\\ndir/\\nFile with space\\n&quot;);\n</code></pre>\n\n<p>This would add three rules to the ignores.</p>\n","group":"ignore"},"git_ignore_clear_internal_rules":{"type":"function","file":"ignore.h","line":52,"lineto":53,"args":[{"name":"repo","type":"git_repository *","comment":"The repository to remove ignore rules from."}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"0 on success"},"description":"<p>Clear ignore rules that were explicitly added.</p>\n","comments":"<p>Resets to the default internal ignore rules. This will not turn off\nrules in .gitignore files that actually exist in the filesystem.</p>\n\n<p>The default internal ignores ignore &quot;.&quot;, &quot;..&quot; and &quot;.git&quot; entries.</p>\n","group":"ignore"},"git_ignore_path_is_ignored":{"type":"function","file":"ignore.h","line":71,"lineto":78,"args":[{"name":"ignored","type":"int *","comment":"boolean returning 0 if the file is not ignored, 1 if it is"},{"name":"repo","type":"git_repository *","comment":"a repository object"},{"name":"path","type":"const char *","comment":"the file to check ignores for, relative to the repo's workdir."}],"argline":"int *ignored,\n\tgit_repository *repo,\n\tconst char *path","sig":"int *::git_repository *::const char *","return":{"type":"int","comment":"0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not."},"description":"<p>Test if the ignore rules apply to a given path.</p>\n","comments":"<p>This function checks the ignore rules to see if they would apply to the\ngiven file. This indicates if the file would be ignored regardless of\nwhether the file is already in the index or committed to the repository.</p>\n\n<p>One way to think of this is if you were to do &quot;git add .&quot; on the\ndirectory containing the file, would it be added or not?</p>\n","group":"ignore"},"git_index_open":{"type":"function","file":"index.h","line":173,"lineto":173,"args":[{"name":"out","type":"git_index **","comment":"the pointer for the new index"},{"name":"index_path","type":"const char *","comment":"the path to the index file in disk"}],"argline":"git_index **out, const char *index_path","sig":"git_index **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new bare Git index object as a memory representation\nof the Git index file in &#39;index_path&#39;, without a repository\nto back it.</p>\n","comments":"<p>Since there is no ODB or working directory behind this index,\nany Index methods which rely on these (e.g. index_add) will\nfail with the GIT_EBAREINDEX error code.</p>\n\n<p>If you need to access the index of an actual repository,\nuse the <code>git_repository_index</code> wrapper.</p>\n\n<p>The index must be freed once it&#39;s no longer in use.</p>\n","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_open-1"]}},"git_index_new":{"type":"function","file":"index.h","line":186,"lineto":186,"args":[{"name":"out","type":"git_index **","comment":"the pointer for the new index"}],"argline":"git_index **out","sig":"git_index **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an in-memory index object.</p>\n","comments":"<p>This index object cannot be read/written to the filesystem,\nbut may be used to perform in-memory index operations.</p>\n\n<p>The index must be freed once it&#39;s no longer in use.</p>\n","group":"index"},"git_index_free":{"type":"function","file":"index.h","line":193,"lineto":193,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Free an existing index object.</p>\n","comments":"","group":"index","examples":{"add.c":["ex/HEAD/add.html#git_index_free-1"],"general.c":["ex/HEAD/general.html#git_index_free-28"],"init.c":["ex/HEAD/init.html#git_index_free-2"],"showindex.c":["ex/HEAD/showindex.html#git_index_free-2"]}},"git_index_owner":{"type":"function","file":"index.h","line":201,"lineto":201,"args":[{"name":"index","type":"const git_index *","comment":"The index"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"git_repository *","comment":"A pointer to the repository"},"description":"<p>Get the repository this index relates to</p>\n","comments":"","group":"index"},"git_index_caps":{"type":"function","file":"index.h","line":209,"lineto":209,"args":[{"name":"index","type":"const git_index *","comment":"An existing index object"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"unsigned int","comment":"A combination of GIT_INDEXCAP values"},"description":"<p>Read index capabilities flags.</p>\n","comments":"","group":"index"},"git_index_set_caps":{"type":"function","file":"index.h","line":222,"lineto":222,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"caps","type":"int","comment":"A combination of GIT_INDEXCAP values"}],"argline":"git_index *index, int caps","sig":"git_index *::int","return":{"type":"int","comment":"0 on success, -1 on failure"},"description":"<p>Set index capabilities flags.</p>\n","comments":"<p>If you pass <code>GIT_INDEXCAP_FROM_OWNER</code> for the caps, then the\ncapabilities will be read from the config of the owner object,\nlooking at <code>core.ignorecase</code>, <code>core.filemode</code>, <code>core.symlinks</code>.</p>\n","group":"index"},"git_index_read":{"type":"function","file":"index.h","line":231,"lineto":231,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update the contents of an existing index object in memory\nby reading from the hard disk.</p>\n","comments":"","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_read-3"]}},"git_index_write":{"type":"function","file":"index.h","line":240,"lineto":240,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an existing index object from memory back to disk\nusing an atomic file lock.</p>\n","comments":"","group":"index","examples":{"add.c":["ex/HEAD/add.html#git_index_write-2"]}},"git_index_path":{"type":"function","file":"index.h","line":248,"lineto":248,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"const char *","comment":"path to index file or NULL for in-memory index"},"description":"<p>Get the full path to the index file on disk.</p>\n","comments":"","group":"index"},"git_index_read_tree":{"type":"function","file":"index.h","line":259,"lineto":259,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"tree","type":"const git_tree *","comment":"tree to read"}],"argline":"git_index *index, const git_tree *tree","sig":"git_index *::const git_tree *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a tree into the index file with stats</p>\n","comments":"<p>The current index contents will be replaced by the specified tree.</p>\n","group":"index"},"git_index_write_tree":{"type":"function","file":"index.h","line":280,"lineto":280,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store the OID of the written tree"},{"name":"index","type":"git_index *","comment":"Index to write"}],"argline":"git_oid *out, git_index *index","sig":"git_oid *::git_index *","return":{"type":"int","comment":"0 on success, GIT_EUNMERGED when the index is not clean or an error code"},"description":"<p>Write the index as a tree</p>\n","comments":"<p>This method will scan the index and write a representation\nof its current state back to disk; it recursively creates\ntree objects for each of the subtrees stored in the index,\nbut only returns the OID of the root tree. This is the OID\nthat can be used e.g. to create a commit.</p>\n\n<p>The index instance cannot be bare, and needs to be associated\nto an existing repository.</p>\n\n<p>The index must not contain any file in conflict.</p>\n","group":"index","examples":{"init.c":["ex/HEAD/init.html#git_index_write_tree-3"]}},"git_index_write_tree_to":{"type":"function","file":"index.h","line":297,"lineto":297,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store OID of the the written tree"},{"name":"index","type":"git_index *","comment":"Index to write"},{"name":"repo","type":"git_repository *","comment":"Repository where to write the tree"}],"argline":"git_oid *out, git_index *index, git_repository *repo","sig":"git_oid *::git_index *::git_repository *","return":{"type":"int","comment":"0 on success, GIT_EUNMERGED when the index is not clean or an error code"},"description":"<p>Write the index as a tree to the given repository</p>\n","comments":"<p>This method will do the same as <code>git_index_write_tree</code>, but\nletting the user choose the repository where the tree will\nbe written.</p>\n\n<p>The index must not contain any file in conflict.</p>\n","group":"index"},"git_index_entrycount":{"type":"function","file":"index.h","line":316,"lineto":316,"args":[{"name":"index","type":"const git_index *","comment":"an existing index object"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"size_t","comment":"integer of count of current entries"},"description":"<p>Get the count of entries currently in the index</p>\n","comments":"","group":"index","examples":{"general.c":["ex/HEAD/general.html#git_index_entrycount-29"],"showindex.c":["ex/HEAD/showindex.html#git_index_entrycount-4"]}},"git_index_clear":{"type":"function","file":"index.h","line":325,"lineto":325,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Clear the contents (all the entries) of an index object.\nThis clears the index object in memory; changes must be manually\nwritten to disk for them to take effect.</p>\n","comments":"","group":"index"},"git_index_get_byindex":{"type":"function","file":"index.h","line":338,"lineto":339,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_entry *","comment":"a pointer to the entry; NULL if out of bounds"},"description":"<p>Get a pointer to one of the entries in the index</p>\n","comments":"<p>The entry is not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index","examples":{"general.c":["ex/HEAD/general.html#git_index_get_byindex-30"],"showindex.c":["ex/HEAD/showindex.html#git_index_get_byindex-5"]}},"git_index_get_bypath":{"type":"function","file":"index.h","line":353,"lineto":354,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *path, int stage","sig":"git_index *::const char *::int","return":{"type":"const git_index_entry *","comment":"a pointer to the entry; NULL if it was not found"},"description":"<p>Get a pointer to one of the entries in the index</p>\n","comments":"<p>The entry is not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index"},"git_index_remove":{"type":"function","file":"index.h","line":364,"lineto":364,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *path, int stage","sig":"git_index *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an entry from the index</p>\n","comments":"","group":"index"},"git_index_remove_directory":{"type":"function","file":"index.h","line":374,"lineto":375,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"dir","type":"const char *","comment":"container directory path"},{"name":"stage","type":"int","comment":"stage to search"}],"argline":"git_index *index, const char *dir, int stage","sig":"git_index *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove all entries from the index under a given directory</p>\n","comments":"","group":"index"},"git_index_add":{"type":"function","file":"index.h","line":391,"lineto":391,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"source_entry","type":"const git_index_entry *","comment":"new entry object"}],"argline":"git_index *index, const git_index_entry *source_entry","sig":"git_index *::const git_index_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an index entry from an in-memory struct</p>\n","comments":"<p>If a previous index entry exists that has the same path and stage\nas the given &#39;source_entry&#39;, it will be replaced. Otherwise, the\n&#39;source_entry&#39; will be added.</p>\n\n<p>A full copy (including the &#39;path&#39; string) of the given\n&#39;source_entry&#39; will be inserted on the index.</p>\n","group":"index"},"git_index_entry_stage":{"type":"function","file":"index.h","line":403,"lineto":403,"args":[{"name":"entry","type":"const git_index_entry *","comment":"The entry"}],"argline":"const git_index_entry *entry","sig":"const git_index_entry *","return":{"type":"int"},"description":"<p>Return the stage number from a git index entry</p>\n","comments":"<p>This entry is calculated from the entry&#39;s flag attribute like this:</p>\n\n<p>(entry-&gt;flags &amp; GIT_IDXENTRY_STAGEMASK) &gt;&gt; GIT_IDXENTRY_STAGESHIFT</p>\n","group":"index","examples":{"showindex.c":["ex/HEAD/showindex.html#git_index_entry_stage-6"]}},"git_index_add_bypath":{"type":"function","file":"index.h","line":434,"lineto":434,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to add"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an index entry from a file on disk</p>\n","comments":"<p>The file <code>path</code> must be relative to the repository&#39;s\nworking folder and must be readable.</p>\n\n<p>This method will fail in bare index instances.</p>\n\n<p>This forces the file to be added to the index, not looking\nat gitignore rules. Those rules can be evaluated through\nthe git_status APIs (in status.h) before calling this.</p>\n\n<p>If this file currently is the result of a merge conflict, this\nfile will no longer be marked as conflicting. The data about\nthe conflict will be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n","group":"index","examples":{"init.c":["ex/HEAD/init.html#git_index_add_bypath-4"]}},"git_index_remove_bypath":{"type":"function","file":"index.h","line":450,"lineto":450,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to remove"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an index entry corresponding to a file on disk</p>\n","comments":"<p>The file <code>path</code> must be relative to the repository&#39;s\nworking folder. It may exist.</p>\n\n<p>If this file currently is the result of a merge conflict, this\nfile will no longer be marked as conflicting. The data about\nthe conflict will be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n","group":"index"},"git_index_add_all":{"type":"function","file":"index.h","line":497,"lineto":502,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"flags","type":"unsigned int","comment":"combination of git_index_add_option_t flags"},{"name":"callback","type":"git_index_matched_path_cb","comment":"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."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tunsigned int flags,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::unsigned int::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update index entries matching files in the working directory.</p>\n","comments":"<p>This method will fail in bare index instances.</p>\n\n<p>The <code>pathspec</code> is a list of file names or shell glob patterns that will\nmatched against files in the repository&#39;s working directory. Each file\nthat matches will be added to the index (either updating an existing\nentry or adding a new entry). You can disable glob expansion and force\nexact matching with the <code>GIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH</code> flag.</p>\n\n<p>Files that are ignored will be skipped (unlike <code>git_index_add_bypath</code>).\nIf a file is already tracked in the index, then it <em>will</em> be updated\neven if it is ignored. Pass the <code>GIT_INDEX_ADD_FORCE</code> flag to\nskip the checking of ignore rules.</p>\n\n<p>To emulate <code>git add -A</code> and generate an error if the pathspec contains\nthe exact path of an ignored file (when not using FORCE), add the\n<code>GIT_INDEX_ADD_CHECK_PATHSPEC</code> flag. This checks that each entry\nin the <code>pathspec</code> that is an exact match to a filename on disk is\neither not ignored or already in the index. If this check fails, the\nfunction will return GIT_EINVALIDSPEC.</p>\n\n<p>To emulate <code>git add -A</code> with the &quot;dry-run&quot; option, just use a callback\nfunction that always returns a positive value. See below for details.</p>\n\n<p>If any files are currently the result of a merge conflict, those files\nwill no longer be marked as conflicting. The data about the conflicts\nwill be moved to the &quot;resolve undo&quot; (REUC) section.</p>\n\n<p>If you provide a callback function, it will be invoked on each matching\nitem in the working directory immediately <em>before</em> it is added to /\nupdated in the index. Returning zero will add the item to the index,\ngreater than zero will skip the item, and less than zero will abort the\nscan and cause GIT_EUSER to be returned.</p>\n","group":"index","examples":{"add.c":["ex/HEAD/add.html#git_index_add_all-3"]}},"git_index_remove_all":{"type":"function","file":"index.h","line":519,"lineto":523,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"callback","type":"git_index_matched_path_cb","comment":"notification callback for each removed path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove all matching index entries.</p>\n","comments":"<p>If you provide a callback function, it will be invoked on each matching\nitem in the index immediately <em>before</em> it is removed. Return 0 to\nremove the item, &gt; 0 to skip the item, and &lt; 0 to abort the scan.</p>\n","group":"index"},"git_index_update_all":{"type":"function","file":"index.h","line":548,"lineto":552,"args":[{"name":"index","type":"git_index *","comment":"An existing index object"},{"name":"pathspec","type":"const git_strarray *","comment":"array of path patterns"},{"name":"callback","type":"git_index_matched_path_cb","comment":"notification callback for each updated path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan."},{"name":"payload","type":"void *","comment":"payload passed through to callback function"}],"argline":"git_index *index,\n\tconst git_strarray *pathspec,\n\tgit_index_matched_path_cb callback,\n\tvoid *payload","sig":"git_index *::const git_strarray *::git_index_matched_path_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update all index entries to match the working directory</p>\n","comments":"<p>This method will fail in bare index instances.</p>\n\n<p>This scans the existing index entries and synchronizes them with the\nworking directory, deleting them if the corresponding working directory\nfile no longer exists otherwise updating the information (including\nadding the latest version of file to the ODB if needed).</p>\n\n<p>If you provide a callback function, it will be invoked on each matching\nitem in the index immediately <em>before</em> it is updated (either refreshed\nor removed depending on working directory state). Return 0 to proceed\nwith updating the item, &gt; 0 to skip the item, and &lt; 0 to abort the scan.</p>\n","group":"index","examples":{"add.c":["ex/HEAD/add.html#git_index_update_all-4"]}},"git_index_find":{"type":"function","file":"index.h","line":564,"lineto":564,"args":[{"name":"at_pos","type":"size_t *","comment":"the address to which the position of the index entry is written (optional)"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"size_t *at_pos, git_index *index, const char *path","sig":"size_t *::git_index *::const char *","return":{"type":"int","comment":"a zero-based position in the index if found; GIT_ENOTFOUND otherwise"},"description":"<p>Find the first position of any entries which point to given\npath in the Git index.</p>\n","comments":"","group":"index"},"git_index_conflict_add":{"type":"function","file":"index.h","line":588,"lineto":592,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"ancestor_entry","type":"const git_index_entry *","comment":"the entry data for the ancestor of the conflict"},{"name":"our_entry","type":"const git_index_entry *","comment":"the entry data for our side of the merge conflict"},{"name":"their_entry","type":"const git_index_entry *","comment":"the entry data for their side of the merge conflict"}],"argline":"git_index *index,\n\tconst git_index_entry *ancestor_entry,\n\tconst git_index_entry *our_entry,\n\tconst git_index_entry *their_entry","sig":"git_index *::const git_index_entry *::const git_index_entry *::const git_index_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update index entries to represent a conflict</p>\n","comments":"<p>The entries are the entries from the tree included in the merge. Any\nentry may be null to indicate that that file was not present in the\ntrees during the merge. For example, ancestor_entry may be NULL to\nindicate that a file was added in both branches and must be resolved.</p>\n","group":"index"},"git_index_conflict_get":{"type":"function","file":"index.h","line":607,"lineto":612,"args":[{"name":"ancestor_out","type":"const git_index_entry **","comment":"Pointer to store the ancestor entry"},{"name":"our_out","type":"const git_index_entry **","comment":"Pointer to store the our entry"},{"name":"their_out","type":"const git_index_entry **","comment":"Pointer to store the their entry"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"const git_index_entry **ancestor_out,\n\tconst git_index_entry **our_out,\n\tconst git_index_entry **their_out,\n\tgit_index *index,\n\tconst char *path","sig":"const git_index_entry **::const git_index_entry **::const git_index_entry **::git_index *::const char *","return":{"type":"int"},"description":"<p>Get the index entries that represent a conflict of a single file.</p>\n","comments":"<p>The entries are not modifiable and should not be freed. Because the\n<code>git_index_entry</code> struct is a publicly defined struct, you should\nbe able to make your own permanent copy of the data if necessary.</p>\n","group":"index"},"git_index_conflict_remove":{"type":"function","file":"index.h","line":620,"lineto":620,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"to search"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"int"},"description":"<p>Removes the index entries that represent a conflict of a single file.</p>\n","comments":"","group":"index"},"git_index_conflict_cleanup":{"type":"function","file":"index.h","line":627,"lineto":627,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all conflicts in the index (entries with a stage greater than 0.)</p>\n","comments":"","group":"index"},"git_index_has_conflicts":{"type":"function","file":"index.h","line":634,"lineto":634,"args":[{"name":"index","type":"const git_index *"}],"argline":"const git_index *index","sig":"const git_index *","return":{"type":"int","comment":"1 if at least one conflict is found, 0 otherwise."},"description":"<p>Determine if the index contains entries representing file conflicts.</p>\n","comments":"","group":"index"},"git_index_conflict_iterator_new":{"type":"function","file":"index.h","line":642,"lineto":644,"args":[{"name":"iterator_out","type":"git_index_conflict_iterator **"},{"name":"index","type":"git_index *"}],"argline":"git_index_conflict_iterator **iterator_out,\n\tgit_index *index","sig":"git_index_conflict_iterator **::git_index *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the conflicts in the index. You may not modify the\nindex while iterating, the results are undefined.</p>\n","comments":"","group":"index"},"git_index_conflict_next":{"type":"function","file":"index.h","line":656,"lineto":660,"args":[{"name":"ancestor_out","type":"const git_index_entry **","comment":"Pointer to store the ancestor side of the conflict"},{"name":"our_out","type":"const git_index_entry **","comment":"Pointer to store our side of the conflict"},{"name":"their_out","type":"const git_index_entry **","comment":"Pointer to store their side of the conflict"},{"name":"iterator","type":"git_index_conflict_iterator *"}],"argline":"const git_index_entry **ancestor_out,\n\tconst git_index_entry **our_out,\n\tconst git_index_entry **their_out,\n\tgit_index_conflict_iterator *iterator","sig":"const git_index_entry **::const git_index_entry **::const git_index_entry **::git_index_conflict_iterator *","return":{"type":"int","comment":"0 (no error), GIT_ITEROVER (iteration is done) or an error code (negative value)"},"description":"<p>Returns the current conflict (ancestor, ours and theirs entry) and\nadvance the iterator internally to the next value.</p>\n","comments":"","group":"index"},"git_index_conflict_iterator_free":{"type":"function","file":"index.h","line":667,"lineto":668,"args":[{"name":"iterator","type":"git_index_conflict_iterator *","comment":"pointer to the iterator"}],"argline":"git_index_conflict_iterator *iterator","sig":"git_index_conflict_iterator *","return":{"type":"void"},"description":"<p>Frees a <code>git_index_conflict_iterator</code>.</p>\n","comments":"","group":"index"},"git_indexer_stream_new":{"type":"function","file":"indexer.h","line":26,"lineto":30,"args":[{"name":"out","type":"git_indexer_stream **","comment":"where to store the indexer instance"},{"name":"path","type":"const char *","comment":"to the directory where the packfile should be stored"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information"},{"name":"progress_cb_payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_indexer_stream **out,\n\t\tconst char *path,\n\t\tgit_transfer_progress_callback progress_cb,\n\t\tvoid *progress_cb_payload","sig":"git_indexer_stream **::const char *::git_transfer_progress_callback::void *","return":{"type":"int"},"description":"<p>Create a new streaming indexer instance</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_new-1"]}},"git_indexer_stream_add":{"type":"function","file":"indexer.h","line":40,"lineto":40,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer"},{"name":"data","type":"const void *","comment":"the data to add"},{"name":"size","type":"size_t","comment":"the size of the data in bytes"},{"name":"stats","type":"git_transfer_progress *","comment":"stat storage"}],"argline":"git_indexer_stream *idx, const void *data, size_t size, git_transfer_progress *stats","sig":"git_indexer_stream *::const void *::size_t::git_transfer_progress *","return":{"type":"int"},"description":"<p>Add data to the indexer</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_add-2"]}},"git_indexer_stream_finalize":{"type":"function","file":"indexer.h","line":49,"lineto":49,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer"},{"name":"stats","type":"git_transfer_progress *"}],"argline":"git_indexer_stream *idx, git_transfer_progress *stats","sig":"git_indexer_stream *::git_transfer_progress *","return":{"type":"int"},"description":"<p>Finalize the pack and index</p>\n","comments":"<p>Resolve any pending deltas and write out the index file</p>\n","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_finalize-3"]}},"git_indexer_stream_hash":{"type":"function","file":"indexer.h","line":59,"lineto":59,"args":[{"name":"idx","type":"const git_indexer_stream *","comment":"the indexer instance"}],"argline":"const git_indexer_stream *idx","sig":"const git_indexer_stream *","return":{"type":"const git_oid *"},"description":"<p>Get the packfile&#39;s hash</p>\n","comments":"<p>A packfile&#39;s name is derived from the sorted hashing of all object\nnames. This is only correct after the index has been finalized.</p>\n","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_hash-4"]}},"git_indexer_stream_free":{"type":"function","file":"indexer.h","line":66,"lineto":70,"args":[{"name":"idx","type":"git_indexer_stream *","comment":"the indexer to free"}],"argline":"git_indexer_stream *idx","sig":"git_indexer_stream *","return":{"type":"void"},"description":"<p>Free the indexer and its resources</p>\n","comments":"","group":"indexer","examples":{"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_indexer_stream_free-5"]}},"git_merge_base":{"type":"function","file":"merge.h","line":77,"lineto":81,"args":[{"name":"out","type":"git_oid *","comment":"the OID of a merge base between 'one' and 'two'"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"one","type":"const git_oid *","comment":"one of the commits"},{"name":"two","type":"const git_oid *","comment":"the other commit"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_oid *one,\n\tconst git_oid *two","sig":"git_oid *::git_repository *::const git_oid *::const git_oid *","return":{"type":"int","comment":"Zero on success; GIT_ENOTFOUND or -1 on failure."},"description":"<p>Find a merge base between two commits</p>\n","comments":"","group":"merge","examples":{"log.c":["ex/HEAD/log.html#git_merge_base-27"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_merge_base-1"]}},"git_merge_base_many":{"type":"function","file":"merge.h","line":92,"lineto":96,"args":[{"name":"out","type":"git_oid *","comment":"the OID of a merge base considering all the commits"},{"name":"repo","type":"git_repository *","comment":"the repository where the commits exist"},{"name":"length","type":"size_t","comment":"The number of commits in the provided `input_array`"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tsize_t length,\n\tconst git_oid input_array[]","sig":"git_oid *::git_repository *::size_t","return":{"type":"int","comment":"Zero on success; GIT_ENOTFOUND or -1 on failure."},"description":"<p>Find a merge base given a list of commits</p>\n","comments":"","group":"merge"},"git_merge_head_from_ref":{"type":"function","file":"merge.h","line":106,"lineto":109,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given reference"},{"name":"ref","type":"git_reference *","comment":"reference to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tgit_reference *ref","sig":"git_merge_head **::git_repository *::git_reference *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given reference</p>\n","comments":"","group":"merge"},"git_merge_head_from_fetchhead":{"type":"function","file":"merge.h","line":121,"lineto":126,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given commit"},{"name":"branch_name","type":"const char *","comment":"name of the (remote) branch"},{"name":"remote_url","type":"const char *","comment":"url of the remote"},{"name":"oid","type":"const git_oid *","comment":"the commit object id to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tconst char *branch_name,\n\tconst char *remote_url,\n\tconst git_oid *oid","sig":"git_merge_head **::git_repository *::const char *::const char *::const git_oid *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given fetch head data</p>\n","comments":"","group":"merge"},"git_merge_head_from_oid":{"type":"function","file":"merge.h","line":136,"lineto":139,"args":[{"name":"out","type":"git_merge_head **","comment":"pointer to store the git_merge_head result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given commit"},{"name":"oid","type":"const git_oid *","comment":"the commit object id to use as a merge input"}],"argline":"git_merge_head **out,\n\tgit_repository *repo,\n\tconst git_oid *oid","sig":"git_merge_head **::git_repository *::const git_oid *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Creates a <code>git_merge_head</code> from the given commit id</p>\n","comments":"","group":"merge"},"git_merge_head_free":{"type":"function","file":"merge.h","line":146,"lineto":147,"args":[{"name":"head","type":"git_merge_head *","comment":"merge head to free"}],"argline":"git_merge_head *head","sig":"git_merge_head *","return":{"type":"void"},"description":"<p>Frees a <code>git_merge_head</code></p>\n","comments":"","group":"merge"},"git_merge_trees":{"type":"function","file":"merge.h","line":163,"lineto":169,"args":[{"name":"out","type":"git_index **","comment":"pointer to store the index result in"},{"name":"repo","type":"git_repository *","comment":"repository that contains the given trees"},{"name":"ancestor_tree","type":"const git_tree *","comment":"the common ancestor between the trees (or null if none)"},{"name":"our_tree","type":"const git_tree *","comment":"the tree that reflects the destination tree"},{"name":"their_tree","type":"const git_tree *","comment":"the tree to merge in to `our_tree`"},{"name":"opts","type":"const git_merge_tree_opts *","comment":"the merge tree options (or null for defaults)"}],"argline":"git_index **out,\n\tgit_repository *repo,\n\tconst git_tree *ancestor_tree,\n\tconst git_tree *our_tree,\n\tconst git_tree *their_tree,\n\tconst git_merge_tree_opts *opts","sig":"git_index **::git_repository *::const git_tree *::const git_tree *::const git_tree *::const git_merge_tree_opts *","return":{"type":"int","comment":"zero on success, -1 on failure."},"description":"<p>Merge two trees, producing a <code>git_index</code> that reflects the result of\nthe merge.</p>\n","comments":"<p>The returned index must be freed explicitly with <code>git_index_free</code>.</p>\n","group":"merge"},"git_message_prettify":{"type":"function","file":"message.h","line":40,"lineto":44,"args":[{"name":"out","type":"char *","comment":"The user-allocated buffer which will be filled with the cleaned up message. Pass NULL if you just want to get the needed size of the prettified message as the output value."},{"name":"out_size","type":"size_t","comment":"Size of the `out` buffer in bytes."},{"name":"message","type":"const char *","comment":"The message to be prettified."},{"name":"strip_comments","type":"int","comment":"Non-zero to remove lines starting with \"#\", 0 to leave them in."}],"argline":"char *out,\n\tsize_t out_size,\n\tconst char *message,\n\tint strip_comments","sig":"char *::size_t::const char *::int","return":{"type":"int","comment":"-1 on error, else number of characters in prettified message including the trailing NUL byte"},"description":"<p>Clean up message from excess whitespace and make sure that the last line\nends with a &#39;\\n&#39;.</p>\n","comments":"<p>Optionally, can remove lines starting with a &quot;#&quot;.</p>\n","group":"message"},"git_note_iterator_new":{"type":"function","file":"notes.h","line":49,"lineto":52,"args":[{"name":"out","type":"git_note_iterator **","comment":"pointer to the iterator"},{"name":"repo","type":"git_repository *","comment":"repository where to look up the note"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""}],"argline":"git_note_iterator **out,\n\tgit_repository *repo,\n\tconst char *notes_ref","sig":"git_note_iterator **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Creates a new iterator for notes</p>\n","comments":"<p>The iterator must be freed manually by the user.</p>\n","group":"note"},"git_note_iterator_free":{"type":"function","file":"notes.h","line":59,"lineto":59,"args":[{"name":"it","type":"git_note_iterator *","comment":"pointer to the iterator"}],"argline":"git_note_iterator *it","sig":"git_note_iterator *","return":{"type":"void"},"description":"<p>Frees an git_note_iterator</p>\n","comments":"","group":"note"},"git_note_next":{"type":"function","file":"notes.h","line":74,"lineto":77,"args":[{"name":"note_id","type":"git_oid*","comment":"id of blob containing the message"},{"name":"annotated_id","type":"git_oid*","comment":"id of the git object being annotated"},{"name":"it","type":"git_note_iterator *","comment":"pointer to the iterator"}],"argline":"git_oid* note_id,\n\tgit_oid* annotated_id,\n\tgit_note_iterator *it","sig":"git_oid*::git_oid*::git_note_iterator *","return":{"type":"int","comment":"0 (no error), GIT_ITEROVER (iteration is done) or an error code (negative value)"},"description":"<p>Returns the current item (note_id and annotated_id) and advance the iterator\ninternally to the next value</p>\n","comments":"<p>The notes must not be freed manually by the user.</p>\n","group":"note"},"git_note_read":{"type":"function","file":"notes.h","line":93,"lineto":97,"args":[{"name":"out","type":"git_note **","comment":"pointer to the read note; NULL in case of error"},{"name":"repo","type":"git_repository *","comment":"repository where to look up the note"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to read the note from"}],"argline":"git_note **out,\n\tgit_repository *repo,\n\tconst char *notes_ref,\n\tconst git_oid *oid","sig":"git_note **::git_repository *::const char *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read the note for an object</p>\n","comments":"<p>The note must be freed manually by the user.</p>\n","group":"note"},"git_note_message":{"type":"function","file":"notes.h","line":105,"lineto":105,"args":[{"name":"note","type":"const git_note *","comment":"the note"}],"argline":"const git_note *note","sig":"const git_note *","return":{"type":"const char *","comment":"the note message"},"description":"<p>Get the note message</p>\n","comments":"","group":"note"},"git_note_oid":{"type":"function","file":"notes.h","line":114,"lineto":114,"args":[{"name":"note","type":"const git_note *","comment":"the note"}],"argline":"const git_note *note","sig":"const git_note *","return":{"type":"const git_oid *","comment":"the note object OID"},"description":"<p>Get the note object OID</p>\n","comments":"","group":"note"},"git_note_create":{"type":"function","file":"notes.h","line":131,"lineto":139,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the OID (optional); NULL in case of error"},{"name":"repo","type":"git_repository *","comment":"repository where to store the note"},{"name":"author","type":"const git_signature *","comment":"signature of the notes commit author"},{"name":"committer","type":"const git_signature *","comment":"signature of the notes commit committer"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to decorate"},{"name":"note","type":"const char *","comment":"s_ref canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"force","type":"int","comment":"Overwrite existing note"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *notes_ref,\n\tconst git_oid *oid,\n\tconst char *note,\n\tint force","sig":"git_oid *::git_repository *::const git_signature *::const git_signature *::const char *::const git_oid *::const char *::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a note for an object</p>\n","comments":"","group":"note"},"git_note_remove":{"type":"function","file":"notes.h","line":154,"lineto":159,"args":[{"name":"repo","type":"git_repository *","comment":"repository where the note lives"},{"name":"notes_ref","type":"const char *","comment":"canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""},{"name":"author","type":"const git_signature *","comment":"signature of the notes commit author"},{"name":"committer","type":"const git_signature *","comment":"signature of the notes commit committer"},{"name":"oid","type":"const git_oid *","comment":"OID of the git object to remove the note from"}],"argline":"git_repository *repo,\n\tconst char *notes_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst git_oid *oid","sig":"git_repository *::const char *::const git_signature *::const git_signature *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove the note for an object</p>\n","comments":"","group":"note"},"git_note_free":{"type":"function","file":"notes.h","line":166,"lineto":166,"args":[{"name":"note","type":"git_note *","comment":"git_note object"}],"argline":"git_note *note","sig":"git_note *","return":{"type":"void"},"description":"<p>Free a git_note object</p>\n","comments":"","group":"note"},"git_note_default_ref":{"type":"function","file":"notes.h","line":176,"lineto":176,"args":[{"name":"out","type":"const char **","comment":"Pointer to the default notes reference"},{"name":"repo","type":"git_repository *","comment":"The Git repository"}],"argline":"const char **out, git_repository *repo","sig":"const char **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the default notes reference for a repository</p>\n","comments":"","group":"note"},"git_note_foreach":{"type":"function","file":"notes.h","line":194,"lineto":198,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the notes."},{"name":"notes_ref","type":"const char *","comment":"Reference to read from (optional); defaults to \"refs/notes/commits\"."},{"name":"note_cb","type":"git_note_foreach_cb","comment":"Callback to invoke per found annotation. Return non-zero to stop looping."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tconst char *notes_ref,\n\tgit_note_foreach_cb note_cb,\n\tvoid *payload","sig":"git_repository *::const char *::git_note_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the notes within a specified namespace\nand issue a callback for each one.</p>\n","comments":"","group":"note"},"git_object_lookup":{"type":"function","file":"object.h","line":41,"lineto":45,"args":[{"name":"object","type":"git_object **","comment":"pointer to the looked-up object"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the object"},{"name":"id","type":"const git_oid *","comment":"the unique identifier for the object"},{"name":"type","type":"git_otype","comment":"the type of the object"}],"argline":"git_object **object,\n\t\tgit_repository *repo,\n\t\tconst git_oid *id,\n\t\tgit_otype type","sig":"git_object **::git_repository *::const git_oid *::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference to one of the objects in a repository.</p>\n","comments":"<p>The generated reference is owned by the repository and\nshould be closed with the <code>git_object_free</code> method\ninstead of free&#39;d manually.</p>\n\n<p>The &#39;type&#39; parameter must match the type of the object\nin the odb; the method will fail otherwise.\nThe special value &#39;GIT_OBJ_ANY&#39; may be passed to let\nthe method guess the object&#39;s type.</p>\n","group":"object","examples":{"log.c":["ex/HEAD/log.html#git_object_lookup-28"]}},"git_object_lookup_prefix":{"type":"function","file":"object.h","line":74,"lineto":79,"args":[{"name":"object_out","type":"git_object **","comment":"pointer where to store the looked-up object"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the object"},{"name":"id","type":"const git_oid *","comment":"a short identifier for the object"},{"name":"len","type":"size_t","comment":"the length of the short identifier"},{"name":"type","type":"git_otype","comment":"the type of the object"}],"argline":"git_object **object_out,\n\t\tgit_repository *repo,\n\t\tconst git_oid *id,\n\t\tsize_t len,\n\t\tgit_otype type","sig":"git_object **::git_repository *::const git_oid *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference to one of the objects in a repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>The object obtained will be so that its identifier\nmatches the first &#39;len&#39; hexadecimal characters\n(packets of 4 bits) of the given &#39;id&#39;.\n&#39;len&#39; must be at least GIT_OID_MINPREFIXLEN, and\nlong enough to identify a unique object matching\nthe prefix; otherwise the method will fail.</p>\n\n<p>The generated reference is owned by the repository and\nshould be closed with the <code>git_object_free</code> method\ninstead of free&#39;d manually.</p>\n\n<p>The &#39;type&#39; parameter must match the type of the object\nin the odb; the method will fail otherwise.\nThe special value &#39;GIT_OBJ_ANY&#39; may be passed to let\nthe method guess the object&#39;s type.</p>\n","group":"object"},"git_object_id":{"type":"function","file":"object.h","line":87,"lineto":87,"args":[{"name":"obj","type":"const git_object *","comment":"the repository object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"const git_oid *","comment":"the SHA1 id"},"description":"<p>Get the id (SHA1) of a repository object</p>\n","comments":"","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_id-10","ex/HEAD/cat-file.html#git_object_id-11"],"log.c":["ex/HEAD/log.html#git_object_id-29","ex/HEAD/log.html#git_object_id-30","ex/HEAD/log.html#git_object_id-31","ex/HEAD/log.html#git_object_id-32"],"rev-list.c":["ex/HEAD/rev-list.html#git_object_id-2","ex/HEAD/rev-list.html#git_object_id-3","ex/HEAD/rev-list.html#git_object_id-4"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_object_id-2","ex/HEAD/rev-parse.html#git_object_id-3","ex/HEAD/rev-parse.html#git_object_id-4","ex/HEAD/rev-parse.html#git_object_id-5","ex/HEAD/rev-parse.html#git_object_id-6"]}},"git_object_type":{"type":"function","file":"object.h","line":95,"lineto":95,"args":[{"name":"obj","type":"const git_object *","comment":"the repository object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"git_otype","comment":"the object's type"},"description":"<p>Get the object type of an object</p>\n","comments":"","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_type-12","ex/HEAD/cat-file.html#git_object_type-13","ex/HEAD/cat-file.html#git_object_type-14"],"diff.c":["ex/HEAD/diff.html#git_object_type-15"]}},"git_object_owner":{"type":"function","file":"object.h","line":109,"lineto":109,"args":[{"name":"obj","type":"const git_object *","comment":"the object"}],"argline":"const git_object *obj","sig":"const git_object *","return":{"type":"git_repository *","comment":"the repository who owns this object"},"description":"<p>Get the repository that owns this object</p>\n","comments":"<p>Freeing or calling <code>git_repository_close</code> on the\nreturned pointer will invalidate the actual object.</p>\n\n<p>Any other operation may be run on the repository without\naffecting the object.</p>\n","group":"object"},"git_object_free":{"type":"function","file":"object.h","line":126,"lineto":126,"args":[{"name":"object","type":"git_object *","comment":"the object to close"}],"argline":"git_object *object","sig":"git_object *","return":{"type":"void"},"description":"<p>Close an open object</p>\n","comments":"<p>This method instructs the library to close an existing\nobject; note that git_objects are owned and cached by the repository\nso the object may or may not be freed after this library call,\ndepending on how aggressive is the caching mechanism used\nby the repository.</p>\n\n<p>IMPORTANT:\nIt <em>is</em> necessary to call this method when you stop using\nan object. Failure to do so will cause a memory leak.</p>\n","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_free-15"],"diff.c":["ex/HEAD/diff.html#git_object_free-16"],"general.c":["ex/HEAD/general.html#git_object_free-31"],"log.c":["ex/HEAD/log.html#git_object_free-33"],"rev-list.c":["ex/HEAD/rev-list.html#git_object_free-5","ex/HEAD/rev-list.html#git_object_free-6","ex/HEAD/rev-list.html#git_object_free-7"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_object_free-7","ex/HEAD/rev-parse.html#git_object_free-8","ex/HEAD/rev-parse.html#git_object_free-9"]}},"git_object_type2string":{"type":"function","file":"object.h","line":137,"lineto":137,"args":[{"name":"type","type":"git_otype","comment":"object type to convert."}],"argline":"git_otype type","sig":"git_otype","return":{"type":"const char *","comment":"the corresponding string representation."},"description":"<p>Convert an object type to it&#39;s string representation.</p>\n","comments":"<p>The result is a pointer to a string in static memory and\nshould not be free()&#39;ed.</p>\n","group":"object","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_object_type2string-16","ex/HEAD/cat-file.html#git_object_type2string-17","ex/HEAD/cat-file.html#git_object_type2string-18","ex/HEAD/cat-file.html#git_object_type2string-19"],"general.c":["ex/HEAD/general.html#git_object_type2string-32"]}},"git_object_string2type":{"type":"function","file":"object.h","line":145,"lineto":145,"args":[{"name":"str","type":"const char *","comment":"the string to convert."}],"argline":"const char *str","sig":"const char *","return":{"type":"git_otype","comment":"the corresponding git_otype."},"description":"<p>Convert a string object type representation to it&#39;s git_otype.</p>\n","comments":"","group":"object"},"git_object_typeisloose":{"type":"function","file":"object.h","line":154,"lineto":154,"args":[{"name":"type","type":"git_otype","comment":"object type to test."}],"argline":"git_otype type","sig":"git_otype","return":{"type":"int","comment":"true if the type represents a valid loose object type, false otherwise."},"description":"<p>Determine if the given git_otype is a valid loose object type.</p>\n","comments":"","group":"object"},"git_object__size":{"type":"function","file":"object.h","line":168,"lineto":168,"args":[{"name":"type","type":"git_otype","comment":"object type to get its size"}],"argline":"git_otype type","sig":"git_otype","return":{"type":"size_t","comment":"size in bytes of the object"},"description":"<p>Get the size in bytes for the structure which\nacts as an in-memory representation of any given\nobject type.</p>\n","comments":"<p>For all the core types, this would the equivalent\nof calling <code>sizeof(git_commit)</code> if the core types\nwere not opaque on the external API.</p>\n","group":"object"},"git_object_peel":{"type":"function","file":"object.h","line":186,"lineto":189,"args":[{"name":"peeled","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"object","type":"const git_object *","comment":"The object to be processed"},{"name":"target_type","type":"git_otype","comment":"The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."}],"argline":"git_object **peeled,\n\tconst git_object *object,\n\tgit_otype target_type","sig":"git_object **::const git_object *::git_otype","return":{"type":"int","comment":"0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code"},"description":"<p>Recursively peel an object until an object of the specified type is met.</p>\n","comments":"<p>The retrieved <code>peeled</code> object is owned by the repository and should be\nclosed with the <code>git_object_free</code> method.</p>\n\n<p>If you pass <code>GIT_OBJ_ANY</code> as the target type, then the object will be\npeeled until the type changes (e.g. a tag will be chased until the\nreferenced object is no longer a tag).</p>\n","group":"object"},"git_object_dup":{"type":"function","file":"object.h","line":198,"lineto":198,"args":[{"name":"dest","type":"git_object **","comment":"Pointer to store the copy of the object"},{"name":"source","type":"git_object *","comment":"Original object to copy"}],"argline":"git_object **dest, git_object *source","sig":"git_object **::git_object *","return":{"type":"int"},"description":"<p>Create an in-memory copy of a Git object. The copy must be\nexplicitly free&#39;d or it will leak.</p>\n","comments":"","group":"object"},"git_odb_new":{"type":"function","file":"odb.h","line":38,"lineto":38,"args":[{"name":"out","type":"git_odb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."}],"argline":"git_odb **out","sig":"git_odb **","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new object database with no backends.</p>\n","comments":"<p>Before the ODB can be used for read/writing, a custom database\nbackend must be manually added using <code>git_odb_add_backend()</code></p>\n","group":"odb"},"git_odb_open":{"type":"function","file":"odb.h","line":56,"lineto":56,"args":[{"name":"out","type":"git_odb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"objects_dir","type":"const char *","comment":"path of the backends' \"objects\" directory."}],"argline":"git_odb **out, const char *objects_dir","sig":"git_odb **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new object database and automatically add\nthe two default backends:</p>\n","comments":"<ul>\n<li><p>git_odb_backend_loose: read and write loose object files\nfrom disk, assuming <code>objects_dir</code> as the Objects folder</p></li>\n<li><p>git_odb_backend_pack: read objects from packfiles,\nassuming <code>objects_dir</code> as the Objects folder which\ncontains a &#39;pack/&#39; folder with the corresponding data</p></li>\n</ul>\n","group":"odb"},"git_odb_add_disk_alternate":{"type":"function","file":"odb.h","line":73,"lineto":73,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"path","type":"const char *","comment":"path to the objects folder for the alternate"}],"argline":"git_odb *odb, const char *path","sig":"git_odb *::const char *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add an on-disk alternate to an existing Object DB.</p>\n","comments":"<p>Note that the added path must point to an <code>objects</code>, not\nto a full repository, to use it as an alternate store.</p>\n\n<p>Alternate backends are always checked for objects <em>after</em>\nall the main backends have been exhausted.</p>\n\n<p>Writing is disabled on alternate backends.</p>\n","group":"odb"},"git_odb_free":{"type":"function","file":"odb.h","line":80,"lineto":80,"args":[{"name":"db","type":"git_odb *","comment":"database pointer to close. If NULL no action is taken."}],"argline":"git_odb *db","sig":"git_odb *","return":{"type":"void"},"description":"<p>Close an open object database.</p>\n","comments":"","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_free-20"]}},"git_odb_read":{"type":"function","file":"odb.h","line":99,"lineto":99,"args":[{"name":"out","type":"git_odb_object **","comment":"pointer where to store the read object"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"id","type":"const git_oid *","comment":"identity of the object to read."}],"argline":"git_odb_object **out, git_odb *db, const git_oid *id","sig":"git_odb_object **::git_odb *::const git_oid *","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database."},"description":"<p>Read an object from the database.</p>\n","comments":"<p>This method queries all available ODB backends\ntrying to read the given OID.</p>\n\n<p>The returned object is reference counted and\ninternally cached, so it should be closed\nby the user once it&#39;s no longer in use.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_read-21"],"general.c":["ex/HEAD/general.html#git_odb_read-33"]}},"git_odb_read_prefix":{"type":"function","file":"odb.h","line":128,"lineto":128,"args":[{"name":"out","type":"git_odb_object **","comment":"pointer where to store the read object"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"short_id","type":"const git_oid *","comment":"a prefix of the id of the object to read."},{"name":"len","type":"size_t","comment":"the length of the prefix"}],"argline":"git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len","sig":"git_odb_object **::git_odb *::const git_oid *::size_t","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database. - GIT_EAMBIGUOUS if the prefix is ambiguous (several objects match the prefix)"},"description":"<p>Read an object from the database, given a prefix\nof its identifier.</p>\n","comments":"<p>This method queries all available ODB backends\ntrying to match the &#39;len&#39; first hexadecimal\ncharacters of the &#39;short_id&#39;.\nThe remaining (GIT_OID_HEXSZ-len)*4 bits of\n&#39;short_id&#39; must be 0s.\n&#39;len&#39; must be at least GIT_OID_MINPREFIXLEN,\nand the prefix must be long enough to identify\na unique object in all the backends; the\nmethod will fail otherwise.</p>\n\n<p>The returned object is reference counted and\ninternally cached, so it should be closed\nby the user once it&#39;s no longer in use.</p>\n","group":"odb"},"git_odb_read_header":{"type":"function","file":"odb.h","line":148,"lineto":148,"args":[{"name":"len_out","type":"size_t *","comment":"pointer where to store the length"},{"name":"type_out","type":"git_otype *","comment":"pointer where to store the type"},{"name":"db","type":"git_odb *","comment":"database to search for the object in."},{"name":"id","type":"const git_oid *","comment":"identity of the object to read."}],"argline":"size_t *len_out, git_otype *type_out, git_odb *db, const git_oid *id","sig":"size_t *::git_otype *::git_odb *::const git_oid *","return":{"type":"int","comment":"- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database."},"description":"<p>Read the header of an object from the database, without\nreading its full contents.</p>\n","comments":"<p>The header includes the length and the type of an object.</p>\n\n<p>Note that most backends do not support reading only the header\nof an object, so the whole object will be read and then the\nheader will be returned.</p>\n","group":"odb"},"git_odb_exists":{"type":"function","file":"odb.h","line":159,"lineto":159,"args":[{"name":"db","type":"git_odb *","comment":"database to be searched for the given object."},{"name":"id","type":"const git_oid *","comment":"the object to search for."}],"argline":"git_odb *db, const git_oid *id","sig":"git_odb *::const git_oid *","return":{"type":"int","comment":"- 1, if the object was found - 0, otherwise"},"description":"<p>Determine if the given object can be found in the object database.</p>\n","comments":"","group":"odb"},"git_odb_refresh":{"type":"function","file":"odb.h","line":179,"lineto":179,"args":[{"name":"db","type":"struct git_odb *","comment":"database to refresh"}],"argline":"struct git_odb *db","sig":"struct git_odb *","return":{"type":"int","comment":"0 on success, error code otherwise"},"description":"<p>Refresh the object database to load newly added files.</p>\n","comments":"<p>If the object databases have changed on disk while the library\nis running, this function will force a reload of the underlying\nindexes.</p>\n\n<p>Use this function when you&#39;re confident that an external\napplication has tampered with the ODB.</p>\n\n<p>NOTE that it is not necessary to call this function at all. The\nlibrary will automatically attempt to refresh the ODB\nwhen a lookup fails, to see if the looked up object exists\non disk but hasn&#39;t been loaded yet.</p>\n","group":"odb"},"git_odb_foreach":{"type":"function","file":"odb.h","line":194,"lineto":194,"args":[{"name":"db","type":"git_odb *","comment":"database to use"},{"name":"cb","type":"git_odb_foreach_cb","comment":"the callback to call for each object"},{"name":"payload","type":"void *","comment":"data to pass to the callback"}],"argline":"git_odb *db, git_odb_foreach_cb cb, void *payload","sig":"git_odb *::git_odb_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>List all objects available in the database</p>\n","comments":"<p>The callback will be called for each object available in the\ndatabase. Note that the objects are likely to be returned in the index\norder, which would make accessing the objects in that order inefficient.\nReturn a non-zero value from the callback to stop looping.</p>\n","group":"odb"},"git_odb_write":{"type":"function","file":"odb.h","line":214,"lineto":214,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the OID result of the write"},{"name":"odb","type":"git_odb *","comment":"object database where to store the object"},{"name":"data","type":"const void *","comment":"buffer with the data to store"},{"name":"len","type":"size_t","comment":"size of the buffer"},{"name":"type","type":"git_otype","comment":"type of the data to store"}],"argline":"git_oid *out, git_odb *odb, const void *data, size_t len, git_otype type","sig":"git_oid *::git_odb *::const void *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an object directly into the ODB</p>\n","comments":"<p>This method writes a full object straight into the ODB.\nFor most cases, it is preferred to write objects through a write\nstream, which is both faster and less memory intensive, specially\nfor big objects.</p>\n\n<p>This method is provided for compatibility with custom backends\nwhich are not able to support streaming writes</p>\n","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_write-34"]}},"git_odb_open_wstream":{"type":"function","file":"odb.h","line":237,"lineto":237,"args":[{"name":"out","type":"git_odb_stream **","comment":"pointer where to store the stream"},{"name":"db","type":"git_odb *","comment":"object database where the stream will write"},{"name":"size","type":"size_t","comment":"final size of the object that will be written"},{"name":"type","type":"git_otype","comment":"type of the object that will be written"}],"argline":"git_odb_stream **out, git_odb *db, size_t size, git_otype type","sig":"git_odb_stream **::git_odb *::size_t::git_otype","return":{"type":"int","comment":"0 if the stream was created; error code otherwise"},"description":"<p>Open a stream to write an object into the ODB</p>\n","comments":"<p>The type and final length of the object must be specified\nwhen opening the stream.</p>\n\n<p>The returned stream will be of type <code>GIT_STREAM_WRONLY</code>, and it\nwon&#39;t be effective until <code>git_odb_stream_finalize_write</code> is called\nand returns without an error</p>\n\n<p>The stream must always be freed when done with <code>git_odb_stream_free</code> or\nwill leak memory.</p>\n\n<p>@see git_odb_stream</p>\n","group":"odb"},"git_odb_stream_write":{"type":"function","file":"odb.h","line":250,"lineto":250,"args":[{"name":"stream","type":"git_odb_stream *","comment":"the stream"},{"name":"buffer","type":"const char *","comment":"the data to write"},{"name":"len","type":"size_t","comment":"the buffer's length"}],"argline":"git_odb_stream *stream, const char *buffer, size_t len","sig":"git_odb_stream *::const char *::size_t","return":{"type":"int","comment":"0 if the write succeeded; error code otherwise"},"description":"<p>Write to an odb stream</p>\n","comments":"<p>This method will fail if the total number of received bytes exceeds the\nsize declared with <code>git_odb_open_wstream()</code></p>\n","group":"odb"},"git_odb_stream_finalize_write":{"type":"function","file":"odb.h","line":265,"lineto":265,"args":[{"name":"out","type":"git_oid *","comment":"pointer to store the resulting object's id"},{"name":"stream","type":"git_odb_stream *","comment":"the stream"}],"argline":"git_oid *out, git_odb_stream *stream","sig":"git_oid *::git_odb_stream *","return":{"type":"int","comment":"0 on success; an error code otherwise"},"description":"<p>Finish writing to an odb stream</p>\n","comments":"<p>The object will take its final name and will be available to the\nodb.</p>\n\n<p>This method will fail if the total number of received bytes\ndiffers from the size declared with <code>git_odb_open_wstream()</code></p>\n","group":"odb"},"git_odb_stream_read":{"type":"function","file":"odb.h","line":272,"lineto":272,"args":[{"name":"stream","type":"git_odb_stream *"},{"name":"buffer","type":"char *"},{"name":"len","type":"size_t"}],"argline":"git_odb_stream *stream, char *buffer, size_t len","sig":"git_odb_stream *::char *::size_t","return":{"type":"int"},"description":"<p>Read from an odb stream</p>\n","comments":"<p>Most backends don&#39;t implement streaming reads</p>\n","group":"odb"},"git_odb_stream_free":{"type":"function","file":"odb.h","line":279,"lineto":279,"args":[{"name":"stream","type":"git_odb_stream *","comment":"the stream to free"}],"argline":"git_odb_stream *stream","sig":"git_odb_stream *","return":{"type":"void"},"description":"<p>Free an odb stream</p>\n","comments":"","group":"odb"},"git_odb_open_rstream":{"type":"function","file":"odb.h","line":305,"lineto":305,"args":[{"name":"out","type":"git_odb_stream **","comment":"pointer where to store the stream"},{"name":"db","type":"git_odb *","comment":"object database where the stream will read from"},{"name":"oid","type":"const git_oid *","comment":"oid of the object the stream will read from"}],"argline":"git_odb_stream **out, git_odb *db, const git_oid *oid","sig":"git_odb_stream **::git_odb *::const git_oid *","return":{"type":"int","comment":"0 if the stream was created; error code otherwise"},"description":"<p>Open a stream to read an object from the ODB</p>\n","comments":"<p>Note that most backends do <em>not</em> support streaming reads\nbecause they store their objects as compressed/delta&#39;ed blobs.</p>\n\n<p>It&#39;s recommended to use <code>git_odb_read</code> instead, which is\nassured to work on all backends.</p>\n\n<p>The returned stream will be of type <code>GIT_STREAM_RDONLY</code> and\nwill have the following methods:</p>\n\n<pre><code>- stream-&gt;read: read `n` bytes from the stream\n- stream-&gt;free: free the stream\n</code></pre>\n\n<p>The stream must always be free&#39;d or will leak memory.</p>\n\n<p>@see git_odb_stream</p>\n","group":"odb"},"git_odb_write_pack":{"type":"function","file":"odb.h","line":325,"lineto":329,"args":[{"name":"out","type":"git_odb_writepack **","comment":"pointer to the writepack functions"},{"name":"db","type":"git_odb *","comment":"object database where the stream will read from"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."},{"name":"progress_payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_odb_writepack **out,\n\tgit_odb *db,\n\tgit_transfer_progress_callback progress_cb,\n\tvoid *progress_payload","sig":"git_odb_writepack **::git_odb *::git_transfer_progress_callback::void *","return":{"type":"int"},"description":"<p>Open a stream for writing a pack file to the ODB.</p>\n","comments":"<p>If the ODB layer understands pack files, then the given\npackfile will likely be streamed directly to disk (and a\ncorresponding index created). If the ODB layer does not\nunderstand pack files, the objects will be stored in whatever\nformat the ODB layer uses.</p>\n\n<p>@see git_odb_writepack</p>\n","group":"odb"},"git_odb_hash":{"type":"function","file":"odb.h","line":343,"lineto":343,"args":[{"name":"out","type":"git_oid *","comment":"the resulting object-ID."},{"name":"data","type":"const void *","comment":"data to hash"},{"name":"len","type":"size_t","comment":"size of the data"},{"name":"type","type":"git_otype","comment":"of the data to hash"}],"argline":"git_oid *out, const void *data, size_t len, git_otype type","sig":"git_oid *::const void *::size_t::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Determine the object-ID (sha1 hash) of a data buffer</p>\n","comments":"<p>The resulting SHA-1 OID will be the identifier for the data\nbuffer as if the data buffer it were to written to the ODB.</p>\n","group":"odb"},"git_odb_hashfile":{"type":"function","file":"odb.h","line":358,"lineto":358,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"path","type":"const char *","comment":"file to read and determine object id for"},{"name":"type","type":"git_otype","comment":"the type of the object that will be hashed"}],"argline":"git_oid *out, const char *path, git_otype type","sig":"git_oid *::const char *::git_otype","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read a file from disk and fill a git_oid with the object id\nthat the file would have if it were written to the Object\nDatabase as an object of the given type (w/o applying filters).\nSimilar functionality to git.git&#39;s <code>git hash-object</code> without\nthe <code>-w</code> flag, however, with the --no-filters flag.\nIf you need filters, see git_repository_hashfile.</p>\n","comments":"","group":"odb"},"git_odb_object_free":{"type":"function","file":"odb.h","line":368,"lineto":368,"args":[{"name":"object","type":"git_odb_object *","comment":"object to close"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"void"},"description":"<p>Close an ODB object</p>\n","comments":"<p>This method must always be called once a <code>git_odb_object</code> is no\nlonger needed, otherwise memory will leak.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_object_free-22"],"general.c":["ex/HEAD/general.html#git_odb_object_free-35"]}},"git_odb_object_id":{"type":"function","file":"odb.h","line":378,"lineto":378,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"const git_oid *","comment":"a pointer to the OID"},"description":"<p>Return the OID of an ODB object</p>\n","comments":"<p>This is the OID from which the object was read from</p>\n","group":"odb"},"git_odb_object_data":{"type":"function","file":"odb.h","line":391,"lineto":391,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"const void *","comment":"a pointer to the data"},"description":"<p>Return the data of an ODB object</p>\n","comments":"<p>This is the uncompressed, raw data as read from the ODB,\nwithout the leading header.</p>\n\n<p>This pointer is owned by the object and shall not be free&#39;d.</p>\n","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_object_data-36"]}},"git_odb_object_size":{"type":"function","file":"odb.h","line":402,"lineto":402,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"size_t","comment":"the size"},"description":"<p>Return the size of an ODB object</p>\n","comments":"<p>This is the real size of the <code>data</code> buffer, not the\nactual size of the object.</p>\n","group":"odb","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_odb_object_size-23"],"general.c":["ex/HEAD/general.html#git_odb_object_size-37"]}},"git_odb_object_type":{"type":"function","file":"odb.h","line":410,"lineto":410,"args":[{"name":"object","type":"git_odb_object *","comment":"the object"}],"argline":"git_odb_object *object","sig":"git_odb_object *","return":{"type":"git_otype","comment":"the type"},"description":"<p>Return the type of an ODB object</p>\n","comments":"","group":"odb","examples":{"general.c":["ex/HEAD/general.html#git_odb_object_type-38"]}},"git_odb_add_backend":{"type":"function","file":"odb.h","line":425,"lineto":425,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"backend","type":"git_odb_backend *","comment":"pointer to a git_odb_backend instance"},{"name":"priority","type":"int","comment":"Value for ordering the backends queue"}],"argline":"git_odb *odb, git_odb_backend *backend, int priority","sig":"git_odb *::git_odb_backend *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add a custom backend to an existing Object DB</p>\n","comments":"<p>The backends are checked in relative ordering, based on the\nvalue of the <code>priority</code> parameter.</p>\n\n<p>Read <odb_backends.h> for more information.</p>\n","group":"odb"},"git_odb_add_alternate":{"type":"function","file":"odb.h","line":446,"lineto":446,"args":[{"name":"odb","type":"git_odb *","comment":"database to add the backend to"},{"name":"backend","type":"git_odb_backend *","comment":"pointer to a git_odb_backend instance"},{"name":"priority","type":"int","comment":"Value for ordering the backends queue"}],"argline":"git_odb *odb, git_odb_backend *backend, int priority","sig":"git_odb *::git_odb_backend *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Add a custom backend to an existing Object DB; this\nbackend will work as an alternate.</p>\n","comments":"<p>Alternate backends are always checked for objects <em>after</em>\nall the main backends have been exhausted.</p>\n\n<p>The backends are checked in relative ordering, based on the\nvalue of the <code>priority</code> parameter.</p>\n\n<p>Writing is disabled on alternate backends.</p>\n\n<p>Read <odb_backends.h> for more information.</p>\n","group":"odb"},"git_odb_num_backends":{"type":"function","file":"odb.h","line":454,"lineto":454,"args":[{"name":"odb","type":"git_odb *","comment":"object database"}],"argline":"git_odb *odb","sig":"git_odb *","return":{"type":"size_t","comment":"number of backends in the ODB"},"description":"<p>Get the number of ODB backend objects</p>\n","comments":"","group":"odb"},"git_odb_get_backend":{"type":"function","file":"odb.h","line":464,"lineto":464,"args":[{"name":"out","type":"git_odb_backend **","comment":"output pointer to ODB backend at pos"},{"name":"odb","type":"git_odb *","comment":"object database"},{"name":"pos","type":"size_t","comment":"index into object database backend list"}],"argline":"git_odb_backend **out, git_odb *odb, size_t pos","sig":"git_odb_backend **::git_odb *::size_t","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if pos is invalid; other errors < 0"},"description":"<p>Lookup an ODB backend object by index</p>\n","comments":"","group":"odb"},"git_odb_backend_pack":{"type":"function","file":"odb_backend.h","line":34,"lineto":34,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"objects_dir","type":"const char *","comment":"the Git repository's objects directory"}],"argline":"git_odb_backend **out, const char *objects_dir","sig":"git_odb_backend **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend for the packfiles.</p>\n","comments":"","group":"odb"},"git_odb_backend_loose":{"type":"function","file":"odb_backend.h","line":46,"lineto":46,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"objects_dir","type":"const char *","comment":"the Git repository's objects directory"},{"name":"compression_level","type":"int","comment":"zlib compression level to use"},{"name":"do_fsync","type":"int","comment":"whether to do an fsync() after writing (currently ignored)"}],"argline":"git_odb_backend **out, const char *objects_dir, int compression_level, int do_fsync","sig":"git_odb_backend **::const char *::int::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend for loose objects</p>\n","comments":"","group":"odb"},"git_odb_backend_one_pack":{"type":"function","file":"odb_backend.h","line":59,"lineto":59,"args":[{"name":"out","type":"git_odb_backend **","comment":"location to store the odb backend pointer"},{"name":"index_file","type":"const char *","comment":"path to the packfile's .idx file"}],"argline":"git_odb_backend **out, const char *index_file","sig":"git_odb_backend **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a backend out of a single packfile</p>\n","comments":"<p>This can be useful for inspecting the contents of a single\npackfile.</p>\n","group":"odb"},"git_oid_fromstr":{"type":"function","file":"oid.h","line":47,"lineto":47,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes)."}],"argline":"git_oid *out, const char *str","sig":"git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse a hex formatted object id into a git_oid.</p>\n","comments":"","group":"oid","examples":{"general.c":["ex/HEAD/general.html#git_oid_fromstr-39","ex/HEAD/general.html#git_oid_fromstr-40","ex/HEAD/general.html#git_oid_fromstr-41","ex/HEAD/general.html#git_oid_fromstr-42","ex/HEAD/general.html#git_oid_fromstr-43","ex/HEAD/general.html#git_oid_fromstr-44","ex/HEAD/general.html#git_oid_fromstr-45","ex/HEAD/general.html#git_oid_fromstr-46"]}},"git_oid_fromstrp":{"type":"function","file":"oid.h","line":57,"lineto":57,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string; must be at least 4 characters long and null-terminated."}],"argline":"git_oid *out, const char *str","sig":"git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse a hex formatted null-terminated string into a git_oid.</p>\n","comments":"","group":"oid"},"git_oid_fromstrn":{"type":"function","file":"oid.h","line":70,"lineto":70,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"str","type":"const char *","comment":"input hex string of at least size `length`"},{"name":"length","type":"size_t","comment":"length of the input string"}],"argline":"git_oid *out, const char *str, size_t length","sig":"git_oid *::const char *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Parse N characters of a hex formatted object id into a git_oid</p>\n","comments":"<p>If N is odd, N-1 characters will be parsed instead.\nThe remaining space in the git_oid will be set to zero.</p>\n","group":"oid"},"git_oid_fromraw":{"type":"function","file":"oid.h","line":78,"lineto":78,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"raw","type":"const unsigned char *","comment":"the raw input bytes to be copied."}],"argline":"git_oid *out, const unsigned char *raw","sig":"git_oid *::const unsigned char *","return":{"type":"void"},"description":"<p>Copy an already raw oid into a git_oid structure.</p>\n","comments":"","group":"oid"},"git_oid_fmt":{"type":"function","file":"oid.h","line":90,"lineto":90,"args":[{"name":"out","type":"char *","comment":"output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, const git_oid *id","sig":"char *::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a hex string.</p>\n","comments":"","group":"oid","examples":{"general.c":["ex/HEAD/general.html#git_oid_fmt-47","ex/HEAD/general.html#git_oid_fmt-48","ex/HEAD/general.html#git_oid_fmt-49","ex/HEAD/general.html#git_oid_fmt-50","ex/HEAD/general.html#git_oid_fmt-51"],"network/fetch.c":["ex/HEAD/network/fetch.html#git_oid_fmt-1","ex/HEAD/network/fetch.html#git_oid_fmt-2"],"network/index-pack.c":["ex/HEAD/network/index-pack.html#git_oid_fmt-6"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_oid_fmt-1"],"rev-list.c":["ex/HEAD/rev-list.html#git_oid_fmt-8"],"showindex.c":["ex/HEAD/showindex.html#git_oid_fmt-7"]}},"git_oid_nfmt":{"type":"function","file":"oid.h","line":101,"lineto":101,"args":[{"name":"out","type":"char *","comment":"output hex string; you say how many bytes to write. If the number of bytes is > GIT_OID_HEXSZ, extra bytes will be zeroed; if not, a '\\0' terminator is NOT added."},{"name":"n","type":"size_t","comment":"number of characters to write into out string"},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, size_t n, const git_oid *id","sig":"char *::size_t::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a partial hex string.</p>\n","comments":"","group":"oid"},"git_oid_pathfmt":{"type":"function","file":"oid.h","line":116,"lineto":116,"args":[{"name":"out","type":"char *","comment":"output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (41 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."},{"name":"id","type":"const git_oid *","comment":"oid structure to format."}],"argline":"char *out, const git_oid *id","sig":"char *::const git_oid *","return":{"type":"void"},"description":"<p>Format a git_oid into a loose-object path string.</p>\n","comments":"<p>The resulting string is &quot;aa/...&quot;, where &quot;aa&quot; is the first two\nhex digits of the oid and &quot;...&quot; is the remaining 38 digits.</p>\n","group":"oid"},"git_oid_allocfmt":{"type":"function","file":"oid.h","line":125,"lineto":125,"args":[{"name":"id","type":"const git_oid *","comment":"the oid structure to format"}],"argline":"const git_oid *id","sig":"const git_oid *","return":{"type":"char *","comment":"the c-string; NULL if memory is exhausted. Caller must deallocate the string with git__free()."},"description":"<p>Format a git_oid into a newly allocated c-string.</p>\n","comments":"","group":"oid"},"git_oid_tostr":{"type":"function","file":"oid.h","line":144,"lineto":144,"args":[{"name":"out","type":"char *","comment":"the buffer into which the oid string is output."},{"name":"n","type":"size_t","comment":"the size of the out buffer."},{"name":"id","type":"const git_oid *","comment":"the oid structure to format."}],"argline":"char *out, size_t n, const git_oid *id","sig":"char *::size_t::const git_oid *","return":{"type":"char *","comment":"the out buffer pointer, assuming no input parameter errors, otherwise a pointer to an empty string."},"description":"<p>Format a git_oid into a buffer as a hex format c-string.</p>\n","comments":"<p>If the buffer is smaller than GIT_OID_HEXSZ+1, then the resulting\noid c-string will be truncated to n-1 characters (but will still be\nNUL-byte terminated).</p>\n\n<p>If there are any input parameter errors (out == NULL, n == 0, oid ==\nNULL), then a pointer to an empty string is returned, so that the\nreturn value can always be printed.</p>\n","group":"oid","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_oid_tostr-24","ex/HEAD/cat-file.html#git_oid_tostr-25","ex/HEAD/cat-file.html#git_oid_tostr-26","ex/HEAD/cat-file.html#git_oid_tostr-27","ex/HEAD/cat-file.html#git_oid_tostr-28"],"log.c":["ex/HEAD/log.html#git_oid_tostr-34","ex/HEAD/log.html#git_oid_tostr-35"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_oid_tostr-10","ex/HEAD/rev-parse.html#git_oid_tostr-11","ex/HEAD/rev-parse.html#git_oid_tostr-12","ex/HEAD/rev-parse.html#git_oid_tostr-13"]}},"git_oid_cpy":{"type":"function","file":"oid.h","line":152,"lineto":152,"args":[{"name":"out","type":"git_oid *","comment":"oid structure the result is written into."},{"name":"src","type":"const git_oid *","comment":"oid structure to copy from."}],"argline":"git_oid *out, const git_oid *src","sig":"git_oid *::const git_oid *","return":{"type":"void"},"description":"<p>Copy an oid from one structure to another.</p>\n","comments":"","group":"oid"},"git_oid_cmp":{"type":"function","file":"oid.h","line":161,"lineto":161,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."}],"argline":"const git_oid *a, const git_oid *b","sig":"const git_oid *::const git_oid *","return":{"type":"int","comment":"<0, 0, >0 if a < b, a == b, a > b."},"description":"<p>Compare two oid structures.</p>\n","comments":"","group":"oid"},"git_oid_equal":{"type":"function","file":"oid.h","line":170,"lineto":173,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."}],"argline":"const git_oid *a, const git_oid *b","sig":"const git_oid *::const git_oid *","return":{"type":"int","comment":"true if equal, false otherwise"},"description":"<p>Compare two oid structures for equality</p>\n","comments":"","group":"oid"},"git_oid_ncmp":{"type":"function","file":"oid.h","line":184,"lineto":184,"args":[{"name":"a","type":"const git_oid *","comment":"first oid structure."},{"name":"b","type":"const git_oid *","comment":"second oid structure."},{"name":"len","type":"size_t","comment":"the number of hex chars to compare"}],"argline":"const git_oid *a, const git_oid *b, size_t len","sig":"const git_oid *::const git_oid *::size_t","return":{"type":"int","comment":"0 in case of a match"},"description":"<p>Compare the first &#39;len&#39; hexadecimal characters (packets of 4 bits)\nof two oid structures.</p>\n","comments":"","group":"oid"},"git_oid_streq":{"type":"function","file":"oid.h","line":193,"lineto":193,"args":[{"name":"id","type":"const git_oid *","comment":"oid structure."},{"name":"str","type":"const char *","comment":"input hex string of an object id."}],"argline":"const git_oid *id, const char *str","sig":"const git_oid *::const char *","return":{"type":"int","comment":"0 in case of a match, -1 otherwise."},"description":"<p>Check if an oid equals an hex formatted object id.</p>\n","comments":"","group":"oid"},"git_oid_strcmp":{"type":"function","file":"oid.h","line":203,"lineto":203,"args":[{"name":"id","type":"const git_oid *","comment":"oid structure."},{"name":"str","type":"const char *","comment":"input hex string of an object id."}],"argline":"const git_oid *id, const char *str","sig":"const git_oid *::const char *","return":{"type":"int","comment":"-1 if str is not valid, <0 if id sorts before str, 0 if id matches str, >0 if id sorts after str."},"description":"<p>Compare an oid to an hex formatted object id.</p>\n","comments":"","group":"oid"},"git_oid_iszero":{"type":"function","file":"oid.h","line":210,"lineto":210,"args":[{"name":"id","type":"const git_oid *"}],"argline":"const git_oid *id","sig":"const git_oid *","return":{"type":"int","comment":"1 if all zeros, 0 otherwise."},"description":"<p>Check is an oid is all zeros.</p>\n","comments":"","group":"oid","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_oid_iszero-3"]}},"git_oid_shorten_new":{"type":"function","file":"oid.h","line":231,"lineto":231,"args":[{"name":"min_length","type":"size_t","comment":"The minimal length for all identifiers, which will be used even if shorter OIDs would still be unique."}],"argline":"size_t min_length","sig":"size_t","return":{"type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance, NULL if OOM"},"description":"<p>Create a new OID shortener.</p>\n","comments":"<p>The OID shortener is used to process a list of OIDs\nin text form and return the shortest length that would\nuniquely identify all of them.</p>\n\n<p>E.g. look at the result of <code>git log --abbrev</code>.</p>\n","group":"oid"},"git_oid_shorten_add":{"type":"function","file":"oid.h","line":257,"lineto":257,"args":[{"name":"os","type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance"},{"name":"text_id","type":"const char *","comment":"an OID in text form"}],"argline":"git_oid_shorten *os, const char *text_id","sig":"git_oid_shorten *::const char *","return":{"type":"int","comment":"the minimal length to uniquely identify all OIDs added so far to the set; or an error code (<0) if an error occurs."},"description":"<p>Add a new OID to set of shortened OIDs and calculate\nthe minimal length to uniquely identify all the OIDs in\nthe set.</p>\n","comments":"<p>The OID is expected to be a 40-char hexadecimal string.\nThe OID is owned by the user and will not be modified\nor freed.</p>\n\n<p>For performance reasons, there is a hard-limit of how many\nOIDs can be added to a single set (around ~32000, assuming\na mostly randomized distribution), which should be enough\nfor any kind of program, and keeps the algorithm fast and\nmemory-efficient.</p>\n\n<p>Attempting to add more than those OIDs will result in a\nGITERR_INVALID error</p>\n","group":"oid"},"git_oid_shorten_free":{"type":"function","file":"oid.h","line":264,"lineto":264,"args":[{"name":"os","type":"git_oid_shorten *","comment":"a `git_oid_shorten` instance"}],"argline":"git_oid_shorten *os","sig":"git_oid_shorten *","return":{"type":"void"},"description":"<p>Free an OID shortener instance</p>\n","comments":"","group":"oid"},"git_packbuilder_new":{"type":"function","file":"pack.h","line":56,"lineto":56,"args":[{"name":"out","type":"git_packbuilder **","comment":"The new packbuilder object"},{"name":"repo","type":"git_repository *","comment":"The repository"}],"argline":"git_packbuilder **out, git_repository *repo","sig":"git_packbuilder **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Initialize a new packbuilder</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_set_threads":{"type":"function","file":"pack.h","line":69,"lineto":69,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"n","type":"unsigned int","comment":"Number of threads to spawn"}],"argline":"git_packbuilder *pb, unsigned int n","sig":"git_packbuilder *::unsigned int","return":{"type":"unsigned int","comment":"number of actual threads to be used"},"description":"<p>Set number of threads to spawn</p>\n","comments":"<p>By default, libgit2 won&#39;t spawn any threads at all;\nwhen set to 0, libgit2 will autodetect the number of\nCPUs.</p>\n","group":"packbuilder"},"git_packbuilder_insert":{"type":"function","file":"pack.h","line":83,"lineto":83,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the commit"},{"name":"name","type":"const char *","comment":"The name; might be NULL"}],"argline":"git_packbuilder *pb, const git_oid *id, const char *name","sig":"git_packbuilder *::const git_oid *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a single object</p>\n","comments":"<p>For an optimal pack it&#39;s mandatory to insert objects in recency order,\ncommits followed by trees and blobs.</p>\n","group":"packbuilder"},"git_packbuilder_insert_tree":{"type":"function","file":"pack.h","line":95,"lineto":95,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the root tree"}],"argline":"git_packbuilder *pb, const git_oid *id","sig":"git_packbuilder *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a root tree object</p>\n","comments":"<p>This will add the tree as well as all referenced trees and blobs.</p>\n","group":"packbuilder"},"git_packbuilder_insert_commit":{"type":"function","file":"pack.h","line":107,"lineto":107,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"id","type":"const git_oid *","comment":"The oid of the commit"}],"argline":"git_packbuilder *pb, const git_oid *id","sig":"git_packbuilder *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Insert a commit object</p>\n","comments":"<p>This will add a commit as well as the completed referenced tree.</p>\n","group":"packbuilder"},"git_packbuilder_write":{"type":"function","file":"pack.h","line":119,"lineto":125,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"},{"name":"path","type":"const char *","comment":"to the directory where the packfile and index should be stored"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information from the indexer (optional)"},{"name":"progress_cb_payload","type":"void *","comment":"payload for the progress callback (optional)"}],"argline":"git_packbuilder *pb,\n\tconst char *path,\n\tgit_transfer_progress_callback progress_cb,\n\tvoid *progress_cb_payload","sig":"git_packbuilder *::const char *::git_transfer_progress_callback::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write the new pack and corresponding index file to path.</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_foreach":{"type":"function","file":"pack.h","line":134,"lineto":134,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"},{"name":"cb","type":"git_packbuilder_foreach_cb","comment":"the callback to call with each packed object's buffer"},{"name":"payload","type":"void *","comment":"the callback's data"}],"argline":"git_packbuilder *pb, git_packbuilder_foreach_cb cb, void *payload","sig":"git_packbuilder *::git_packbuilder_foreach_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create the new pack and pass each object to the callback</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_object_count":{"type":"function","file":"pack.h","line":142,"lineto":142,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"uint32_t","comment":"the number of objects in the packfile"},"description":"<p>Get the total number of objects the packbuilder will write out</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_written":{"type":"function","file":"pack.h","line":150,"lineto":150,"args":[{"name":"pb","type":"git_packbuilder *","comment":"the packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"uint32_t","comment":"the number of objects which have already been written"},"description":"<p>Get the number of objects the packbuilder has already written out</p>\n","comments":"","group":"packbuilder"},"git_packbuilder_free":{"type":"function","file":"pack.h","line":157,"lineto":157,"args":[{"name":"pb","type":"git_packbuilder *","comment":"The packbuilder"}],"argline":"git_packbuilder *pb","sig":"git_packbuilder *","return":{"type":"void"},"description":"<p>Free the packbuilder and all associated data</p>\n","comments":"","group":"packbuilder"},"git_pathspec_new":{"type":"function","file":"pathspec.h","line":63,"lineto":64,"args":[{"name":"out","type":"git_pathspec **","comment":"Output of the compiled pathspec"},{"name":"pathspec","type":"const git_strarray *","comment":"A git_strarray of the paths to match"}],"argline":"git_pathspec **out, const git_strarray *pathspec","sig":"git_pathspec **::const git_strarray *","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Compile a pathspec</p>\n","comments":"","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_new-36"]}},"git_pathspec_free":{"type":"function","file":"pathspec.h","line":71,"lineto":71,"args":[{"name":"ps","type":"git_pathspec *","comment":"The compiled pathspec"}],"argline":"git_pathspec *ps","sig":"git_pathspec *","return":{"type":"void"},"description":"<p>Free a pathspec</p>\n","comments":"","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_free-37"]}},"git_pathspec_matches_path":{"type":"function","file":"pathspec.h","line":86,"lineto":87,"args":[{"name":"ps","type":"const git_pathspec *","comment":"The compiled pathspec"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"path","type":"const char *","comment":"The pathname to attempt to match"}],"argline":"const git_pathspec *ps, uint32_t flags, const char *path","sig":"const git_pathspec *::uint32_t::const char *","return":{"type":"int","comment":"1 is path matches spec, 0 if it does not"},"description":"<p>Try to match a path against a pathspec</p>\n","comments":"<p>Unlike most of the other pathspec matching functions, this will not\nfall back on the native case-sensitivity for your platform. You must\nexplicitly pass flags to control case sensitivity or else this will\nfall back on being case sensitive.</p>\n","group":"pathspec"},"git_pathspec_match_workdir":{"type":"function","file":"pathspec.h","line":111,"lineto":115,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"repo","type":"git_repository *","comment":"The repository in which to match; bare repo is an error"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_repository *repo,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_repository *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag was given"},"description":"<p>Match a pathspec against the working directory of a repository.</p>\n","comments":"<p>This matches the pathspec against the current files in the working\ndirectory of the repository. It is an error to invoke this on a bare\nrepo. This handles git ignores (i.e. ignored files will not be\nconsidered to match the <code>pathspec</code> unless the file is tracked in the\nindex).</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_index":{"type":"function","file":"pathspec.h","line":140,"lineto":144,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"index","type":"git_index *","comment":"The index to match against"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_index *index,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_index *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against entries in an index.</p>\n","comments":"<p>This matches the pathspec against the files in the repository index.</p>\n\n<p>NOTE: At the moment, the case sensitivity of this match is controlled\nby the current case-sensitivity of the index object itself and the\nUSE_CASE and IGNORE_CASE flags will have no effect. This behavior will\nbe corrected in a future release.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_tree":{"type":"function","file":"pathspec.h","line":164,"lineto":168,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"tree","type":"git_tree *","comment":"The root-level tree to match against"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_tree *tree,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_tree *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against files in a tree.</p>\n","comments":"<p>This matches the pathspec against the files in the given tree.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec","examples":{"log.c":["ex/HEAD/log.html#git_pathspec_match_tree-38"]}},"git_pathspec_match_diff":{"type":"function","file":"pathspec.h","line":188,"lineto":192,"args":[{"name":"out","type":"git_pathspec_match_list **","comment":"Output list of matches; pass NULL to just get return value"},{"name":"diff","type":"git_diff_list *","comment":"A generated diff list"},{"name":"flags","type":"uint32_t","comment":"Combination of git_pathspec_flag_t options to control match"},{"name":"ps","type":"git_pathspec *","comment":"Pathspec to be matched"}],"argline":"git_pathspec_match_list **out,\n\tgit_diff_list *diff,\n\tuint32_t flags,\n\tgit_pathspec *ps","sig":"git_pathspec_match_list **::git_diff_list *::uint32_t::git_pathspec *","return":{"type":"int","comment":"0 on success, -1 on error, GIT_ENOTFOUND if no matches and the GIT_PATHSPEC_NO_MATCH_ERROR flag is used"},"description":"<p>Match a pathspec against files in a diff list.</p>\n","comments":"<p>This matches the pathspec against the files in the given diff list.</p>\n\n<p>If <code>out</code> is not NULL, this returns a <code>git_patchspec_match_list</code>. That\ncontains the list of all matched filenames (unless you pass the\n<code>GIT_PATHSPEC_FAILURES_ONLY</code> flag) and may also contain the list of\npathspecs with no match (if you used the <code>GIT_PATHSPEC_FIND_FAILURES</code>\nflag). You must call <code>git_pathspec_match_list_free()</code> on this object.</p>\n","group":"pathspec"},"git_pathspec_match_list_free":{"type":"function","file":"pathspec.h","line":199,"lineto":199,"args":[{"name":"m","type":"git_pathspec_match_list *","comment":"The git_pathspec_match_list to be freed"}],"argline":"git_pathspec_match_list *m","sig":"git_pathspec_match_list *","return":{"type":"void"},"description":"<p>Free memory associates with a git_pathspec_match_list</p>\n","comments":"","group":"pathspec"},"git_pathspec_match_list_entrycount":{"type":"function","file":"pathspec.h","line":207,"lineto":208,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"}],"argline":"const git_pathspec_match_list *m","sig":"const git_pathspec_match_list *","return":{"type":"size_t","comment":"Number of items in match list"},"description":"<p>Get the number of items in a match list.</p>\n","comments":"","group":"pathspec"},"git_pathspec_match_list_entry":{"type":"function","file":"pathspec.h","line":220,"lineto":221,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the list"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const char *","comment":"The filename of the match"},"description":"<p>Get a matching filename by position.</p>\n","comments":"<p>This routine cannot be used if the match list was generated by\n<code>git_pathspec_match_diff</code>. If so, it will always return NULL.</p>\n","group":"pathspec"},"git_pathspec_match_list_diff_entry":{"type":"function","file":"pathspec.h","line":233,"lineto":234,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the list"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const git_diff_delta *","comment":"The filename of the match"},"description":"<p>Get a matching diff delta by position.</p>\n","comments":"<p>This routine can only be used if the match list was generated by\n<code>git_pathspec_match_diff</code>. Otherwise it will always return NULL.</p>\n","group":"pathspec"},"git_pathspec_match_list_failed_entrycount":{"type":"function","file":"pathspec.h","line":245,"lineto":246,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"}],"argline":"const git_pathspec_match_list *m","sig":"const git_pathspec_match_list *","return":{"type":"size_t","comment":"Number of items in original pathspec that had no matches"},"description":"<p>Get the number of pathspec items that did not match.</p>\n","comments":"<p>This will be zero unless you passed GIT_PATHSPEC_FIND_FAILURES when\ngenerating the git_pathspec_match_list.</p>\n","group":"pathspec"},"git_pathspec_match_list_failed_entry":{"type":"function","file":"pathspec.h","line":257,"lineto":260,"args":[{"name":"m","type":"const git_pathspec_match_list *","comment":"The git_pathspec_match_list object"},{"name":"pos","type":"size_t","comment":"The index into the failed items"}],"argline":"const git_pathspec_match_list *m, size_t pos","sig":"const git_pathspec_match_list *::size_t","return":{"type":"const char *","comment":"The pathspec pattern that didn't match anything"},"description":"<p>Get an original pathspec string that had no matches.</p>\n","comments":"<p>This will be return NULL for positions out of range.</p>\n","group":"pathspec"},"git_push_new":{"type":"function","file":"push.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_push **","comment":"New push object"},{"name":"remote","type":"git_remote *","comment":"Remote instance"}],"argline":"git_push **out, git_remote *remote","sig":"git_push **::git_remote *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new push object</p>\n","comments":"","group":"push"},"git_push_set_options":{"type":"function","file":"push.h","line":59,"lineto":61,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"opts","type":"const git_push_options *","comment":"The options to set on the push object"}],"argline":"git_push *push,\n\tconst git_push_options *opts","sig":"git_push *::const git_push_options *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set options on a push object</p>\n","comments":"","group":"push"},"git_push_add_refspec":{"type":"function","file":"push.h","line":71,"lineto":71,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"refspec","type":"const char *","comment":"Refspec string"}],"argline":"git_push *push, const char *refspec","sig":"git_push *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a refspec to be pushed</p>\n","comments":"","group":"push"},"git_push_update_tips":{"type":"function","file":"push.h","line":80,"lineto":80,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update remote tips after a push</p>\n","comments":"","group":"push"},"git_push_finish":{"type":"function","file":"push.h","line":94,"lineto":94,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Actually push all given refspecs</p>\n","comments":"<p>Note: To check if the push was successful (i.e. all remote references\nhave been updated as requested), you need to call both\n<code>git_push_unpack_ok</code> and <code>git_push_status_foreach</code>. The remote\nrepository might have refused to update some or all of the references.</p>\n","group":"push"},"git_push_unpack_ok":{"type":"function","file":"push.h","line":103,"lineto":103,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"int","comment":"true if remote side successfully unpacked, false otherwise"},"description":"<p>Check if remote side successfully unpacked</p>\n","comments":"","group":"push"},"git_push_status_foreach":{"type":"function","file":"push.h","line":118,"lineto":120,"args":[{"name":"push","type":"git_push *","comment":"The push object"},{"name":"cb","type":"int (*)(const char *ref, const char *msg, void *data)","comment":"The callback to call on each object"},{"name":"data","type":"void *"}],"argline":"git_push *push,\n\t\t\tint (*cb)(const char *ref, const char *msg, void *data),\n\t\t\tvoid *data","sig":"git_push *::int (*)(const char *ref, const char *msg, void *data)::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Call callback `cb&#39; on each status</p>\n","comments":"<p>For each of the updated references, we receive a status report in the\nform of <code>ok refs/heads/master</code> or <code>ng refs/heads/master &lt;msg&gt;</code>.\n<code>msg != NULL</code> means the reference has not been updated for the given\nreason.</p>\n","group":"push"},"git_push_free":{"type":"function","file":"push.h","line":127,"lineto":127,"args":[{"name":"push","type":"git_push *","comment":"The push object"}],"argline":"git_push *push","sig":"git_push *","return":{"type":"void"},"description":"<p>Free the given push object</p>\n","comments":"","group":"push"},"git_refdb_new":{"type":"function","file":"refdb.h","line":35,"lineto":35,"args":[{"name":"out","type":"git_refdb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference database with no backends.</p>\n","comments":"<p>Before the Ref DB can be used for read/writing, a custom database\nbackend must be manually set using <code>git_refdb_set_backend()</code></p>\n","group":"refdb"},"git_refdb_open":{"type":"function","file":"refdb.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_refdb **","comment":"location to store the database pointer, if opened. Set to NULL if the open failed."},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference database and automatically add\nthe default backends:</p>\n","comments":"<ul>\n<li>git_refdb_dir: read and write loose and packed refs\n from disk, assuming the repository dir as the folder</li>\n</ul>\n","group":"refdb"},"git_refdb_compress":{"type":"function","file":"refdb.h","line":56,"lineto":56,"args":[{"name":"refdb","type":"git_refdb *"}],"argline":"git_refdb *refdb","sig":"git_refdb *","return":{"type":"int"},"description":"<p>Suggests that the given refdb compress or optimize its references.\nThis mechanism is implementation specific. For on-disk reference\ndatabases, for example, this may pack all loose references.</p>\n","comments":"","group":"refdb"},"git_refdb_free":{"type":"function","file":"refdb.h","line":63,"lineto":63,"args":[{"name":"refdb","type":"git_refdb *","comment":"reference database pointer or NULL"}],"argline":"git_refdb *refdb","sig":"git_refdb *","return":{"type":"void"},"description":"<p>Close an open reference database.</p>\n","comments":"","group":"refdb"},"git_reflog_read":{"type":"function","file":"reflog.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_reflog **","comment":"pointer to reflog"},{"name":"ref","type":"const git_reference *","comment":"reference to read the reflog for"}],"argline":"git_reflog **out, const git_reference *ref","sig":"git_reflog **::const git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Read the reflog for the given reference</p>\n","comments":"<p>If there is no reflog file for the given\nreference yet, an empty reflog object will\nbe returned.</p>\n\n<p>The reflog must be freed manually by using\ngit_reflog_free().</p>\n","group":"reflog"},"git_reflog_write":{"type":"function","file":"reflog.h","line":46,"lineto":46,"args":[{"name":"reflog","type":"git_reflog *","comment":"an existing reflog object"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write an existing in-memory reflog object back to disk\nusing an atomic file lock.</p>\n","comments":"","group":"reflog"},"git_reflog_append":{"type":"function","file":"reflog.h","line":59,"lineto":59,"args":[{"name":"reflog","type":"git_reflog *","comment":"an existing reflog object"},{"name":"id","type":"const git_oid *","comment":"the OID the reference is now pointing to"},{"name":"committer","type":"const git_signature *","comment":"the signature of the committer"},{"name":"msg","type":"const char *","comment":"the reflog message"}],"argline":"git_reflog *reflog, const git_oid *id, const git_signature *committer, const char *msg","sig":"git_reflog *::const git_oid *::const git_signature *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add a new entry to the reflog.</p>\n","comments":"<p><code>msg</code> is optional and can be NULL.</p>\n","group":"reflog"},"git_reflog_rename":{"type":"function","file":"reflog.h","line":73,"lineto":73,"args":[{"name":"ref","type":"git_reference *","comment":"the reference"},{"name":"name","type":"const char *","comment":"the new name of the reference"}],"argline":"git_reference *ref, const char *name","sig":"git_reference *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Rename the reflog for the given reference</p>\n","comments":"<p>The reflog to be renamed is expected to already exist</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reflog"},"git_reflog_delete":{"type":"function","file":"reflog.h","line":81,"lineto":81,"args":[{"name":"ref","type":"git_reference *","comment":"the reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Delete the reflog for the given reference</p>\n","comments":"","group":"reflog"},"git_reflog_entrycount":{"type":"function","file":"reflog.h","line":89,"lineto":89,"args":[{"name":"reflog","type":"git_reflog *","comment":"the previously loaded reflog"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"size_t","comment":"the number of log entries"},"description":"<p>Get the number of log entries in a reflog</p>\n","comments":"","group":"reflog"},"git_reflog_entry_byindex":{"type":"function","file":"reflog.h","line":102,"lineto":102,"args":[{"name":"reflog","type":"git_reflog *","comment":"a previously loaded reflog"},{"name":"idx","type":"size_t","comment":"the position of the entry to lookup. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."}],"argline":"git_reflog *reflog, size_t idx","sig":"git_reflog *::size_t","return":{"type":"const git_reflog_entry *","comment":"the entry; NULL if not found"},"description":"<p>Lookup an entry by its index</p>\n","comments":"<p>Requesting the reflog entry with an index of 0 (zero) will\nreturn the most recently created entry.</p>\n","group":"reflog"},"git_reflog_drop":{"type":"function","file":"reflog.h","line":121,"lineto":124,"args":[{"name":"reflog","type":"git_reflog *","comment":"a previously loaded reflog."},{"name":"idx","type":"size_t","comment":"the position of the entry to remove. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."},{"name":"rewrite_previous_entry","type":"int","comment":"1 to rewrite the history; 0 otherwise."}],"argline":"git_reflog *reflog,\n\tsize_t idx,\n\tint rewrite_previous_entry","sig":"git_reflog *::size_t::int","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if the entry doesn't exist or an error code."},"description":"<p>Remove an entry from the reflog by its index</p>\n","comments":"<p>To ensure there&#39;s no gap in the log history, set <code>rewrite_previous_entry</code>\nparam value to 1. When deleting entry <code>n</code>, member old_oid of entry <code>n-1</code>\n(if any) will be updated with the value of member new_oid of entry <code>n+1</code>.</p>\n","group":"reflog"},"git_reflog_entry_id_old":{"type":"function","file":"reflog.h","line":132,"lineto":132,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_oid *","comment":"the old oid"},"description":"<p>Get the old oid</p>\n","comments":"","group":"reflog"},"git_reflog_entry_id_new":{"type":"function","file":"reflog.h","line":140,"lineto":140,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_oid *","comment":"the new oid at this time"},"description":"<p>Get the new oid</p>\n","comments":"","group":"reflog"},"git_reflog_entry_committer":{"type":"function","file":"reflog.h","line":148,"lineto":148,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const git_signature *","comment":"the committer"},"description":"<p>Get the committer of this entry</p>\n","comments":"","group":"reflog"},"git_reflog_entry_message":{"type":"function","file":"reflog.h","line":156,"lineto":156,"args":[{"name":"entry","type":"const git_reflog_entry *","comment":"a reflog entry"}],"argline":"const git_reflog_entry *entry","sig":"const git_reflog_entry *","return":{"type":"const char *","comment":"the log msg"},"description":"<p>Get the log message</p>\n","comments":"","group":"reflog"},"git_reflog_free":{"type":"function","file":"reflog.h","line":163,"lineto":163,"args":[{"name":"reflog","type":"git_reflog *","comment":"reflog to free"}],"argline":"git_reflog *reflog","sig":"git_reflog *","return":{"type":"void"},"description":"<p>Free the reflog</p>\n","comments":"","group":"reflog"},"git_reference_lookup":{"type":"function","file":"refs.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the looked-up reference"},{"name":"repo","type":"git_repository *","comment":"the repository to look up the reference"},{"name":"name","type":"const char *","comment":"the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"}],"argline":"git_reference **out, git_repository *repo, const char *name","sig":"git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code."},"description":"<p>Lookup a reference by name in a repository.</p>\n","comments":"<p>The returned reference must be freed by the user.</p>\n\n<p>The name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_lookup-52"]}},"git_reference_name_to_id":{"type":"function","file":"refs.h","line":54,"lineto":55,"args":[{"name":"out","type":"git_oid *","comment":"Pointer to oid to be filled in"},{"name":"repo","type":"git_repository *","comment":"The repository in which to look up the reference"},{"name":"name","type":"const char *","comment":"The long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"}],"argline":"git_oid *out, git_repository *repo, const char *name","sig":"git_oid *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code."},"description":"<p>Lookup a reference by name and resolve immediately to OID.</p>\n","comments":"<p>This function provides a quick way to resolve a reference name straight\nthrough to the object id that it refers to. This avoids having to\nallocate or free any <code>git_reference</code> objects for simple situations.</p>\n\n<p>The name will be checked for validity.\nSee <code>git_reference_symbolic_create()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_dwim":{"type":"function","file":"refs.h","line":68,"lineto":68,"args":[{"name":"out","type":"git_reference **","comment":"pointer in which to store the reference"},{"name":"repo","type":"git_repository *","comment":"the repository in which to look"},{"name":"shorthand","type":"const char *","comment":"the short name for the reference"}],"argline":"git_reference **out, git_repository *repo, const char *shorthand","sig":"git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a reference by DWIMing its short name</p>\n","comments":"<p>Apply the git precendence rules to the given shorthand to determine\nwhich reference the user is refering to.</p>\n","group":"reference"},"git_reference_symbolic_create":{"type":"function","file":"refs.h","line":99,"lineto":99,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"repo","type":"git_repository *","comment":"Repository where that reference will live"},{"name":"name","type":"const char *","comment":"The name of the reference"},{"name":"target","type":"const char *","comment":"The target of the reference"},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_reference **out, git_repository *repo, const char *name, const char *target, int force","sig":"git_reference **::git_repository *::const char *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new symbolic reference.</p>\n","comments":"<p>A symbolic reference is a reference name that refers to another\nreference name. If the other name moves, the symbolic name will move,\ntoo. As a simple example, the &quot;HEAD&quot; reference might refer to\n&quot;refs/heads/master&quot; while on the &quot;master&quot; branch of a repository.</p>\n\n<p>The symbolic reference will be created in the repository and written to\nthe disk. The generated reference object must be freed by the user.</p>\n\n<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n\n<p>This function will return an error if a reference already exists with the\ngiven name unless <code>force</code> is true, in which case it will be overwritten.</p>\n","group":"reference"},"git_reference_create":{"type":"function","file":"refs.h","line":131,"lineto":131,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"repo","type":"git_repository *","comment":"Repository where that reference will live"},{"name":"name","type":"const char *","comment":"The name of the reference"},{"name":"id","type":"const git_oid *","comment":"The object id pointed to by the reference."},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_reference **out, git_repository *repo, const char *name, const git_oid *id, int force","sig":"git_reference **::git_repository *::const char *::const git_oid *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new direct reference.</p>\n","comments":"<p>A direct reference (also called an object id reference) refers directly\nto a specific object id (a.k.a. OID or SHA) in the repository. The id\npermanently refers to the object (although the reference itself can be\nmoved). For example, in libgit2 the direct ref &quot;refs/tags/v0.17.0&quot;\nrefers to OID 5b9fac39d8a76b9139667c26a63e6b3f204b3977.</p>\n\n<p>The direct reference will be created in the repository and written to\nthe disk. The generated reference object must be freed by the user.</p>\n\n<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n\n<p>This function will return an error if a reference already exists with the\ngiven name unless <code>force</code> is true, in which case it will be overwritten.</p>\n","group":"reference"},"git_reference_target":{"type":"function","file":"refs.h","line":146,"lineto":146,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const git_oid *","comment":"a pointer to the oid if available, NULL otherwise"},"description":"<p>Get the OID pointed to by a direct reference.</p>\n","comments":"<p>Only available if the reference is direct (i.e. an object id reference,\nnot a symbolic one).</p>\n\n<p>To find the OID of a symbolic ref, call <code>git_reference_resolve()</code> and\nthen this function (or maybe use <code>git_reference_name_to_id()</code> to\ndirectly resolve a reference name all the way through to an OID).</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_target-53"]}},"git_reference_target_peel":{"type":"function","file":"refs.h","line":157,"lineto":157,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const git_oid *","comment":"a pointer to the oid if available, NULL otherwise"},"description":"<p>Return the peeled OID target of this reference.</p>\n","comments":"<p>This peeled OID only applies to direct references that point to\na hard Tag object: it is the result of peeling such Tag.</p>\n","group":"reference"},"git_reference_symbolic_target":{"type":"function","file":"refs.h","line":167,"lineto":167,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const char *","comment":"a pointer to the name if available, NULL otherwise"},"description":"<p>Get full name to the reference pointed to by a symbolic reference.</p>\n","comments":"<p>Only available if the reference is symbolic.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_symbolic_target-54"]}},"git_reference_type":{"type":"function","file":"refs.h","line":177,"lineto":177,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"git_ref_t","comment":"the type"},"description":"<p>Get the type of a reference.</p>\n","comments":"<p>Either direct (GIT_REF_OID) or symbolic (GIT_REF_SYMBOLIC)</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_type-55"]}},"git_reference_name":{"type":"function","file":"refs.h","line":187,"lineto":187,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"const char *","comment":"the full name for the ref"},"description":"<p>Get the full name of a reference.</p>\n","comments":"<p>See <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference","examples":{"status.c":["ex/HEAD/status.html#git_reference_name-2"]}},"git_reference_resolve":{"type":"function","file":"refs.h","line":205,"lineto":205,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the peeled reference"},{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"git_reference **out, const git_reference *ref","sig":"git_reference **::const git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Resolve a symbolic reference to a direct reference.</p>\n","comments":"<p>This method iteratively peels a symbolic reference until it resolves to\na direct reference to an OID.</p>\n\n<p>The peeled reference is returned in the <code>resolved_ref</code> argument, and\nmust be freed manually once it&#39;s no longer needed.</p>\n\n<p>If a direct reference is passed as an argument, a copy of that\nreference is returned. This copy must be manually freed too.</p>\n","group":"reference"},"git_reference_owner":{"type":"function","file":"refs.h","line":213,"lineto":213,"args":[{"name":"ref","type":"const git_reference *","comment":"The reference"}],"argline":"const git_reference *ref","sig":"const git_reference *","return":{"type":"git_repository *","comment":"a pointer to the repo"},"description":"<p>Get the repository where a reference resides.</p>\n","comments":"","group":"reference"},"git_reference_symbolic_set_target":{"type":"function","file":"refs.h","line":230,"lineto":233,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"ref","type":"git_reference *","comment":"The reference"},{"name":"target","type":"const char *","comment":"The new target for the reference"}],"argline":"git_reference **out,\n\tgit_reference *ref,\n\tconst char *target","sig":"git_reference **::git_reference *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Create a new reference with the same name as the given reference but a\ndifferent symbolic target. The reference must be a symbolic reference,\notherwise this will fail.</p>\n","comments":"<p>The new reference will be written to disk, overwriting the given reference.</p>\n\n<p>The target name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_set_target":{"type":"function","file":"refs.h","line":247,"lineto":250,"args":[{"name":"out","type":"git_reference **","comment":"Pointer to the newly created reference"},{"name":"ref","type":"git_reference *","comment":"The reference"},{"name":"id","type":"const git_oid *","comment":"The new target OID for the reference"}],"argline":"git_reference **out,\n\tgit_reference *ref,\n\tconst git_oid *id","sig":"git_reference **::git_reference *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new reference with the same name as the given reference but a\ndifferent OID target. The reference must be a direct reference, otherwise\nthis will fail.</p>\n","comments":"<p>The new reference will be written to disk, overwriting the given reference.</p>\n","group":"reference"},"git_reference_rename":{"type":"function","file":"refs.h","line":274,"lineto":278,"args":[{"name":"new_ref","type":"git_reference **"},{"name":"ref","type":"git_reference *","comment":"The reference to rename"},{"name":"new_name","type":"const char *","comment":"The new name for the reference"},{"name":"force","type":"int","comment":"Overwrite an existing reference"}],"argline":"git_reference **new_ref,\n\tgit_reference *ref,\n\tconst char *new_name,\n\tint force","sig":"git_reference **::git_reference *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Rename an existing reference.</p>\n","comments":"<p>This method works for both direct and symbolic references.</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n\n<p>If the <code>force</code> flag is not enabled, and there&#39;s already\na reference with the given name, the renaming will fail.</p>\n\n<p>IMPORTANT:\nThe user needs to write a proper reflog entry if the\nreflog is enabled for the repository. We only rename\nthe reflog if it exists.</p>\n","group":"reference"},"git_reference_delete":{"type":"function","file":"refs.h","line":290,"lineto":290,"args":[{"name":"ref","type":"git_reference *","comment":"The reference to remove"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Delete an existing reference.</p>\n","comments":"<p>This method works for both direct and symbolic references. The reference\nwill be immediately removed on disk but the memory will not be freed.\nCallers must call <code>git_reference_free</code>.</p>\n","group":"reference"},"git_reference_list":{"type":"function","file":"refs.h","line":304,"lineto":307,"args":[{"name":"array","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the reference names will be stored"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"}],"argline":"git_strarray *array, git_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the references that can be found in a repository.</p>\n","comments":"<p>The string array will be filled with the names of all references; these\nvalues are owned by the user and should be free&#39;d manually when no\nlonger needed, using <code>git_strarray_free()</code>.</p>\n","group":"reference","examples":{"general.c":["ex/HEAD/general.html#git_reference_list-56"]}},"git_reference_foreach":{"type":"function","file":"refs.h","line":322,"lineto":330,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"},{"name":"callback","type":"git_reference_foreach_cb","comment":"Function which will be called for every listed ref"},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_repository *repo,\n\tgit_reference_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_reference_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform a callback on each reference in the repository.</p>\n","comments":"<p>The <code>callback</code> function will be called for each reference in the\nrepository, receiving the name of the reference and the <code>payload</code> value\npassed to this method. Returning a non-zero value from the callback\nwill terminate the iteration.</p>\n","group":"reference"},"git_reference_free":{"type":"function","file":"refs.h","line":337,"lineto":337,"args":[{"name":"ref","type":"git_reference *","comment":"git_reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"void"},"description":"<p>Free the given reference.</p>\n","comments":"","group":"reference","examples":{"status.c":["ex/HEAD/status.html#git_reference_free-3"]}},"git_reference_cmp":{"type":"function","file":"refs.h","line":346,"lineto":346,"args":[{"name":"ref1","type":"git_reference *","comment":"The first git_reference"},{"name":"ref2","type":"git_reference *","comment":"The second git_reference"}],"argline":"git_reference *ref1, git_reference *ref2","sig":"git_reference *::git_reference *","return":{"type":"int","comment":"0 if the same, else a stable but meaningless ordering."},"description":"<p>Compare two references.</p>\n","comments":"","group":"reference"},"git_reference_iterator_new":{"type":"function","file":"refs.h","line":355,"lineto":357,"args":[{"name":"out","type":"git_reference_iterator **","comment":"pointer in which to store the iterator"},{"name":"repo","type":"git_repository *","comment":"the repository"}],"argline":"git_reference_iterator **out,\n\tgit_repository *repo","sig":"git_reference_iterator **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the repo&#39;s references</p>\n","comments":"","group":"reference"},"git_reference_iterator_glob_new":{"type":"function","file":"refs.h","line":368,"lineto":371,"args":[{"name":"out","type":"git_reference_iterator **","comment":"pointer in which to store the iterator"},{"name":"repo","type":"git_repository *","comment":"the repository"},{"name":"glob","type":"const char *","comment":"the glob to match against the reference names"}],"argline":"git_reference_iterator **out,\n\tgit_repository *repo,\n\tconst char *glob","sig":"git_reference_iterator **::git_repository *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an iterator for the repo&#39;s references that match the\nspecified glob</p>\n","comments":"","group":"reference"},"git_reference_next":{"type":"function","file":"refs.h","line":380,"lineto":382,"args":[{"name":"out","type":"git_reference **","comment":"pointer in which to store the reference"},{"name":"iter","type":"git_reference_iterator *","comment":"the iterator"}],"argline":"git_reference **out, git_reference_iterator *iter","sig":"git_reference **::git_reference_iterator *","return":{"type":"int","comment":"0, GIT_ITEROVER if there are no more; or an error code"},"description":"<p>Get the next reference</p>\n","comments":"","group":"reference"},"git_reference_iterator_free":{"type":"function","file":"refs.h","line":389,"lineto":389,"args":[{"name":"iter","type":"git_reference_iterator *","comment":"the iterator to free"}],"argline":"git_reference_iterator *iter","sig":"git_reference_iterator *","return":{"type":"void"},"description":"<p>Free the iterator and its associated resources</p>\n","comments":"","group":"reference"},"git_reference_foreach_glob":{"type":"function","file":"refs.h","line":409,"lineto":413,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the refs"},{"name":"glob","type":"const char *","comment":"Pattern to match (fnmatch-style) against reference name."},{"name":"callback","type":"git_reference_foreach_name_cb","comment":"Function which will be called for every listed ref"},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_repository *repo,\n\tconst char *glob,\n\tgit_reference_foreach_name_cb callback,\n\tvoid *payload","sig":"git_repository *::const char *::git_reference_foreach_name_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Perform a callback on each reference in the repository whose name\nmatches the given pattern.</p>\n","comments":"<p>This function acts like <code>git_reference_foreach()</code> with an additional\npattern match being applied to the reference name before issuing the\ncallback function. See that function for more information.</p>\n\n<p>The pattern is matched using fnmatch or &quot;glob&quot; style where a &#39;*&#39; matches\nany sequence of letters, a &#39;?&#39; matches any letter, and square brackets\ncan be used to define character ranges (such as &quot;[0-9]&quot; for digits).</p>\n","group":"reference"},"git_reference_has_log":{"type":"function","file":"refs.h","line":423,"lineto":423,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"0 when no reflog can be found, 1 when it exists; otherwise an error code."},"description":"<p>Check if a reflog exists for the specified reference.</p>\n","comments":"","group":"reference"},"git_reference_is_branch":{"type":"function","file":"refs.h","line":433,"lineto":433,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/heads namespace; 0 otherwise."},"description":"<p>Check if a reference is a local branch.</p>\n","comments":"","group":"reference"},"git_reference_is_remote":{"type":"function","file":"refs.h","line":443,"lineto":443,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/remotes namespace; 0 otherwise."},"description":"<p>Check if a reference is a remote tracking branch</p>\n","comments":"","group":"reference"},"git_reference_is_tag":{"type":"function","file":"refs.h","line":453,"lineto":456,"args":[{"name":"ref","type":"git_reference *","comment":"A git reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"int","comment":"1 when the reference lives in the refs/tags namespace; 0 otherwise."},"description":"<p>Check if a reference is a tag</p>\n","comments":"","group":"reference"},"git_reference_normalize_name":{"type":"function","file":"refs.h","line":503,"lineto":507,"args":[{"name":"buffer_out","type":"char *","comment":"User allocated buffer to store normalized name"},{"name":"buffer_size","type":"size_t","comment":"Size of buffer_out"},{"name":"name","type":"const char *","comment":"Reference name to be checked."},{"name":"flags","type":"unsigned int","comment":"Flags to constrain name validation rules - see the GIT_REF_FORMAT constants above."}],"argline":"char *buffer_out,\n\tsize_t buffer_size,\n\tconst char *name,\n\tunsigned int flags","sig":"char *::size_t::const char *::unsigned int","return":{"type":"int","comment":"0 on success, GIT_EBUFS if buffer is too small, GIT_EINVALIDSPEC or an error code."},"description":"<p>Normalize reference name and check validity.</p>\n","comments":"<p>This will normalize the reference name by removing any leading slash\n&#39;/&#39; characters and collapsing runs of adjacent slashes between name\ncomponents into a single slash.</p>\n\n<p>Once normalized, if the reference name is valid, it will be returned in\nthe user allocated buffer.</p>\n\n<p>See <code>git_reference_create_symbolic()</code> for rules about valid names.</p>\n","group":"reference"},"git_reference_peel":{"type":"function","file":"refs.h","line":524,"lineto":527,"args":[{"name":"out","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"ref","type":"git_reference *","comment":"The reference to be processed"},{"name":"type","type":"git_otype","comment":"The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."}],"argline":"git_object **out,\n\tgit_reference *ref,\n\tgit_otype type","sig":"git_object **::git_reference *::git_otype","return":{"type":"int","comment":"0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code"},"description":"<p>Recursively peel reference until object of the specified type is found.</p>\n","comments":"<p>The retrieved <code>peeled</code> object is owned by the repository\nand should be closed with the <code>git_object_free</code> method.</p>\n\n<p>If you pass <code>GIT_OBJ_ANY</code> as the target type, then the object\nwill be peeled until a non-tag object is met.</p>\n","group":"reference"},"git_reference_is_valid_name":{"type":"function","file":"refs.h","line":543,"lineto":543,"args":[{"name":"refname","type":"const char *","comment":"name to be checked."}],"argline":"const char *refname","sig":"const char *","return":{"type":"int","comment":"1 if the reference name is acceptable; 0 if it isn't"},"description":"<p>Ensure the reference name is well-formed.</p>\n","comments":"<p>Valid reference names must follow one of two patterns:</p>\n\n<ol>\n<li>Top-level names must contain only capital letters and underscores,\nand must begin and end with a letter. (e.g. &quot;HEAD&quot;, &quot;ORIG_HEAD&quot;).</li>\n<li>Names prefixed with &quot;refs/&quot; can be almost anything. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</li>\n</ol>\n","group":"reference"},"git_reference_shorthand":{"type":"function","file":"refs.h","line":557,"lineto":557,"args":[{"name":"ref","type":"git_reference *","comment":"a reference"}],"argline":"git_reference *ref","sig":"git_reference *","return":{"type":"const char *","comment":"the human-readable version of the name"},"description":"<p>Get the reference&#39;s short name</p>\n","comments":"<p>This will transform the reference name into a name &quot;human-readable&quot;\nversion. If no shortname is appropriate, it will return the full\nname.</p>\n\n<p>The memory is owned by the reference and must not be freed.</p>\n","group":"reference"},"git_refspec_src":{"type":"function","file":"refspec.h","line":29,"lineto":29,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *","comment":"the refspec's source specifier"},"description":"<p>Get the source specifier</p>\n","comments":"","group":"refspec"},"git_refspec_dst":{"type":"function","file":"refspec.h","line":37,"lineto":37,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *","comment":"the refspec's destination specifier"},"description":"<p>Get the destination specifier</p>\n","comments":"","group":"refspec"},"git_refspec_string":{"type":"function","file":"refspec.h","line":45,"lineto":45,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"const char *"},"description":"<p>Get the refspec&#39;s string</p>\n","comments":"","group":"refspec"},"git_refspec_force":{"type":"function","file":"refspec.h","line":53,"lineto":53,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"}],"argline":"const git_refspec *refspec","sig":"const git_refspec *","return":{"type":"int","comment":"1 if force update has been set, 0 otherwise"},"description":"<p>Get the force update setting</p>\n","comments":"","group":"refspec"},"git_refspec_direction":{"type":"function","file":"refspec.h","line":61,"lineto":61,"args":[{"name":"spec","type":"const git_refspec *","comment":"refspec"}],"argline":"const git_refspec *spec","sig":"const git_refspec *","return":{"type":"git_direction","comment":"GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH"},"description":"<p>Get the refspec&#39;s direction.</p>\n","comments":"","group":"refspec"},"git_refspec_src_matches":{"type":"function","file":"refspec.h","line":70,"lineto":70,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"},{"name":"refname","type":"const char *","comment":"the name of the reference to check"}],"argline":"const git_refspec *refspec, const char *refname","sig":"const git_refspec *::const char *","return":{"type":"int","comment":"1 if the refspec matches, 0 otherwise"},"description":"<p>Check if a refspec&#39;s source descriptor matches a reference</p>\n","comments":"","group":"refspec"},"git_refspec_dst_matches":{"type":"function","file":"refspec.h","line":79,"lineto":79,"args":[{"name":"refspec","type":"const git_refspec *","comment":"the refspec"},{"name":"refname","type":"const char *","comment":"the name of the reference to check"}],"argline":"const git_refspec *refspec, const char *refname","sig":"const git_refspec *::const char *","return":{"type":"int","comment":"1 if the refspec matches, 0 otherwise"},"description":"<p>Check if a refspec&#39;s destination descriptor matches a reference</p>\n","comments":"","group":"refspec"},"git_refspec_transform":{"type":"function","file":"refspec.h","line":90,"lineto":90,"args":[{"name":"out","type":"char *","comment":"where to store the target name"},{"name":"outlen","type":"size_t","comment":"the size of the `out` buffer"},{"name":"spec","type":"const git_refspec *","comment":"the refspec"},{"name":"name","type":"const char *","comment":"the name of the reference to transform"}],"argline":"char *out, size_t outlen, const git_refspec *spec, const char *name","sig":"char *::size_t::const git_refspec *::const char *","return":{"type":"int","comment":"0, GIT_EBUFS or another error"},"description":"<p>Transform a reference to its target following the refspec&#39;s rules</p>\n","comments":"","group":"refspec"},"git_refspec_rtransform":{"type":"function","file":"refspec.h","line":101,"lineto":105,"args":[{"name":"out","type":"char *","comment":"where to store the source reference name"},{"name":"outlen","type":"size_t","comment":"the size of the `out` buffer"},{"name":"spec","type":"const git_refspec *","comment":"the refspec"},{"name":"name","type":"const char *","comment":"the name of the reference to transform"}],"argline":"char *out, size_t outlen, const git_refspec *spec, const char *name","sig":"char *::size_t::const git_refspec *::const char *","return":{"type":"int","comment":"0, GIT_EBUFS or another error"},"description":"<p>Transform a target reference to its source reference following the refspec&#39;s rules</p>\n","comments":"","group":"refspec"},"git_remote_create":{"type":"function","file":"remote.h","line":39,"lineto":43,"args":[{"name":"out","type":"git_remote **","comment":"the resulting remote"},{"name":"repo","type":"git_repository *","comment":"the repository in which to create the remote"},{"name":"name","type":"const char *","comment":"the remote's name"},{"name":"url","type":"const char *","comment":"the remote's url"}],"argline":"git_remote **out,\n\t\tgit_repository *repo,\n\t\tconst char *name,\n\t\tconst char *url","sig":"git_remote **::git_repository *::const char *::const char *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Add a remote with the default fetch refspec to the repository&#39;s configuration. This\ncalls git_remote_save before returning.</p>\n","comments":"","group":"remote"},"git_remote_create_inmemory":{"type":"function","file":"remote.h","line":61,"lineto":65,"args":[{"name":"out","type":"git_remote **","comment":"pointer to the new remote object"},{"name":"repo","type":"git_repository *","comment":"the associated repository"},{"name":"fetch","type":"const char *","comment":"the fetch refspec to use for this remote. May be NULL for defaults."},{"name":"url","type":"const char *","comment":"the remote repository's URL"}],"argline":"git_remote **out,\n\t\tgit_repository *repo,\n\t\tconst char *fetch,\n\t\tconst char *url","sig":"git_remote **::git_repository *::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a remote in memory</p>\n","comments":"<p>Create a remote with the given refspec in memory. You can use\nthis when you have a URL instead of a remote&#39;s name. Note that in-memory\nremotes cannot be converted to persisted remotes.</p>\n\n<p>The name, when provided, will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_create_inmemory-4"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_create_inmemory-2"]}},"git_remote_load":{"type":"function","file":"remote.h","line":78,"lineto":78,"args":[{"name":"out","type":"git_remote **","comment":"pointer to the new remote object"},{"name":"repo","type":"git_repository *","comment":"the associated repository"},{"name":"name","type":"const char *","comment":"the remote's name"}],"argline":"git_remote **out, git_repository *repo, const char *name","sig":"git_remote **::git_repository *::const char *","return":{"type":"int","comment":"0, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code"},"description":"<p>Get the information for a particular remote</p>\n","comments":"<p>The name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_load-5"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_load-3"]}},"git_remote_save":{"type":"function","file":"remote.h","line":89,"lineto":89,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote to save to config"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC or an error code"},"description":"<p>Save a remote to its repository&#39;s configuration</p>\n","comments":"<p>One can&#39;t save a in-memory remote. Doing so will\nresult in a GIT_EINVALIDSPEC being returned.</p>\n","group":"remote"},"git_remote_owner":{"type":"function","file":"remote.h","line":97,"lineto":97,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"git_repository *","comment":"a pointer to the repository"},"description":"<p>Get the remote&#39;s repository</p>\n","comments":"","group":"remote"},"git_remote_name":{"type":"function","file":"remote.h","line":105,"lineto":105,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the name or NULL for in-memory remotes"},"description":"<p>Get the remote&#39;s name</p>\n","comments":"","group":"remote"},"git_remote_url":{"type":"function","file":"remote.h","line":113,"lineto":113,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the url"},"description":"<p>Get the remote&#39;s url</p>\n","comments":"","group":"remote"},"git_remote_pushurl":{"type":"function","file":"remote.h","line":121,"lineto":121,"args":[{"name":"remote","type":"const git_remote *","comment":"the remote"}],"argline":"const git_remote *remote","sig":"const git_remote *","return":{"type":"const char *","comment":"a pointer to the url or NULL if no special url for pushing is set"},"description":"<p>Get the remote&#39;s url for pushing</p>\n","comments":"","group":"remote"},"git_remote_set_url":{"type":"function","file":"remote.h","line":132,"lineto":132,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"url","type":"const char*","comment":"the url to set"}],"argline":"git_remote *remote, const char* url","sig":"git_remote *::const char*","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Set the remote&#39;s url</p>\n","comments":"<p>Existing connections will not be updated.</p>\n","group":"remote"},"git_remote_set_pushurl":{"type":"function","file":"remote.h","line":143,"lineto":143,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"url","type":"const char*","comment":"the url to set or NULL to clear the pushurl"}],"argline":"git_remote *remote, const char* url","sig":"git_remote *::const char*","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Set the remote&#39;s url for pushing</p>\n","comments":"<p>Existing connections will not be updated.</p>\n","group":"remote"},"git_remote_add_fetch":{"type":"function","file":"remote.h","line":152,"lineto":152,"args":[{"name":"remote","type":"git_remote *","comment":"the remote @apram refspec the new fetch refspec"},{"name":"refspec","type":"const char *"}],"argline":"git_remote *remote, const char *refspec","sig":"git_remote *::const char *","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Add a fetch refspec to the remote</p>\n","comments":"","group":"remote"},"git_remote_get_fetch_refspecs":{"type":"function","file":"remote.h","line":163,"lineto":163,"args":[{"name":"array","type":"git_strarray *","comment":"pointer to the array in which to store the strings"},{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_strarray *array, git_remote *remote","sig":"git_strarray *::git_remote *","return":{"type":"int"},"description":"<p>Get the remote&#39;s list of fetch refspecs</p>\n","comments":"<p>The memory is owned by the user and should be freed with\n<code>git_strarray_free</code>.</p>\n","group":"remote"},"git_remote_add_push":{"type":"function","file":"remote.h","line":172,"lineto":172,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"refspec","type":"const char *","comment":"the new push refspec"}],"argline":"git_remote *remote, const char *refspec","sig":"git_remote *::const char *","return":{"type":"int","comment":"0 or an error value"},"description":"<p>Add a push refspec to the remote</p>\n","comments":"","group":"remote"},"git_remote_get_push_refspecs":{"type":"function","file":"remote.h","line":183,"lineto":183,"args":[{"name":"array","type":"git_strarray *","comment":"pointer to the array in which to store the strings"},{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_strarray *array, git_remote *remote","sig":"git_strarray *::git_remote *","return":{"type":"int"},"description":"<p>Get the remote&#39;s list of push refspecs</p>\n","comments":"<p>The memory is owned by the user and should be freed with\n<code>git_strarray_free</code>.</p>\n","group":"remote"},"git_remote_clear_refspecs":{"type":"function","file":"remote.h","line":192,"lineto":192,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Clear the refspecs</p>\n","comments":"<p>Remove all configured fetch and push refspecs from the remote.</p>\n","group":"remote"},"git_remote_refspec_count":{"type":"function","file":"remote.h","line":200,"lineto":200,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"size_t","comment":"the amount of refspecs configured in this remote"},"description":"<p>Get the number of refspecs for a remote</p>\n","comments":"","group":"remote"},"git_remote_get_refspec":{"type":"function","file":"remote.h","line":209,"lineto":209,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"},{"name":"n","type":"size_t","comment":"the refspec to get"}],"argline":"git_remote *remote, size_t n","sig":"git_remote *::size_t","return":{"type":"const git_refspec *","comment":"the nth refspec"},"description":"<p>Get a refspec from the remote</p>\n","comments":"","group":"remote"},"git_remote_remove_refspec":{"type":"function","file":"remote.h","line":218,"lineto":218,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"},{"name":"n","type":"size_t","comment":"the refspec to remove"}],"argline":"git_remote *remote, size_t n","sig":"git_remote *::size_t","return":{"type":"int","comment":"0 or GIT_ENOTFOUND"},"description":"<p>Remove a refspec from the remote</p>\n","comments":"","group":"remote"},"git_remote_connect":{"type":"function","file":"remote.h","line":232,"lineto":232,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to connect to"},{"name":"direction","type":"git_direction","comment":"GIT_DIRECTION_FETCH if you want to fetch or GIT_DIRECTION_PUSH if you want to push"}],"argline":"git_remote *remote, git_direction direction","sig":"git_remote *::git_direction","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open a connection to a remote</p>\n","comments":"<p>The transport is selected based on the URL. The direction argument\nis due to a limitation of the git protocol (over TCP or SSH) which\nstarts up a specific binary which can only do the one or the other.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_connect-6"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_connect-4"]}},"git_remote_ls":{"type":"function","file":"remote.h","line":248,"lineto":248,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"},{"name":"list_cb","type":"git_headlist_cb","comment":"function to call with each ref discovered at the remote"},{"name":"payload","type":"void *","comment":"additional data to pass to the callback"}],"argline":"git_remote *remote, git_headlist_cb list_cb, void *payload","sig":"git_remote *::git_headlist_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Get a list of refs at the remote</p>\n","comments":"<p>The remote (or more exactly its transport) must be connected. The\nmemory belongs to the remote.</p>\n\n<p>If you a return a non-zero value from the callback, this will stop\nlooping over the refs.</p>\n","group":"remote","examples":{"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_ls-5"]}},"git_remote_download":{"type":"function","file":"remote.h","line":267,"lineto":270,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to download from"},{"name":"progress_cb","type":"git_transfer_progress_callback","comment":"function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."},{"name":"payload","type":"void *","comment":"payload for the progress callback"}],"argline":"git_remote *remote,\n\t\tgit_transfer_progress_callback progress_cb,\n\t\tvoid *payload","sig":"git_remote *::git_transfer_progress_callback::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Download and index the packfile</p>\n","comments":"<p>Connect to the remote if it hasn&#39;t been done yet, negotiate with\nthe remote git which objects are missing, download and index the\npackfile.</p>\n\n<p>The .idx file will be created and both it and the packfile with be\nrenamed to their final name.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_download-7"]}},"git_remote_connected":{"type":"function","file":"remote.h","line":281,"lineto":281,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"1 if it's connected, 0 otherwise."},"description":"<p>Check whether the remote is connected</p>\n","comments":"<p>Check whether the remote&#39;s underlying transport is connected to the\nremote host.</p>\n","group":"remote"},"git_remote_stop":{"type":"function","file":"remote.h","line":291,"lineto":291,"args":[{"name":"remote","type":"git_remote *","comment":"the remote"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Cancel the operation</p>\n","comments":"<p>At certain points in its operation, the network code checks whether\nthe operation has been cancelled and if so stops the operation.</p>\n","group":"remote"},"git_remote_disconnect":{"type":"function","file":"remote.h","line":301,"lineto":301,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to disconnect from"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Disconnect from the remote</p>\n","comments":"<p>Close the connection to the remote and free the underlying\ntransport.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_disconnect-8"]}},"git_remote_free":{"type":"function","file":"remote.h","line":311,"lineto":311,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to free"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"void"},"description":"<p>Free the memory associated with a remote</p>\n","comments":"<p>This also disconnects from the remote, if the connection\nhas not been closed yet (using git_remote_disconnect).</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_free-9","ex/HEAD/network/fetch.html#git_remote_free-10"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_free-6"]}},"git_remote_update_tips":{"type":"function","file":"remote.h","line":319,"lineto":319,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to update"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Update the tips to the new state</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_update_tips-11"]}},"git_remote_valid_url":{"type":"function","file":"remote.h","line":327,"lineto":327,"args":[{"name":"url","type":"const char *","comment":"the url to check"}],"argline":"const char *url","sig":"const char *","return":{"type":"int","comment":"1 if the url is valid, 0 otherwise"},"description":"<p>Return whether a string is a valid remote URL</p>\n","comments":"","group":"remote"},"git_remote_supported_url":{"type":"function","file":"remote.h","line":335,"lineto":335,"args":[{"name":"url","type":"const char*","comment":"the url to check"}],"argline":"const char* url","sig":"const char*","return":{"type":"int","comment":"1 if the url is supported, 0 otherwise"},"description":"<p>Return whether the passed URL is supported by this version of the library.</p>\n","comments":"","group":"remote"},"git_remote_list":{"type":"function","file":"remote.h","line":346,"lineto":346,"args":[{"name":"out","type":"git_strarray *","comment":"a string array which receives the names of the remotes"},{"name":"repo","type":"git_repository *","comment":"the repository to query"}],"argline":"git_strarray *out, git_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get a list of the configured remotes for a repo</p>\n","comments":"<p>The string array must be freed by the user.</p>\n","group":"remote"},"git_remote_check_cert":{"type":"function","file":"remote.h","line":354,"lineto":354,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"check","type":"int","comment":"whether to check the server's certificate (defaults to yes)"}],"argline":"git_remote *remote, int check","sig":"git_remote *::int","return":{"type":"void"},"description":"<p>Choose whether to check the server&#39;s certificate (applies to HTTPS only)</p>\n","comments":"","group":"remote"},"git_remote_set_cred_acquire_cb":{"type":"function","file":"remote.h","line":366,"lineto":369,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"cred_acquire_cb","type":"git_cred_acquire_cb","comment":"The credentials acquisition callback to use (defaults to NULL)"},{"name":"payload","type":"void *"}],"argline":"git_remote *remote,\n\tgit_cred_acquire_cb cred_acquire_cb,\n\tvoid *payload","sig":"git_remote *::git_cred_acquire_cb::void *","return":{"type":"void"},"description":"<p>Set a credentials acquisition callback for this remote. If the remote is\nnot available for anonymous access, then you must set this callback in order\nto provide credentials to the transport at the time of authentication\nfailure so that retry can be performed.</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_set_cred_acquire_cb-12"],"network/ls-remote.c":["ex/HEAD/network/ls-remote.html#git_remote_set_cred_acquire_cb-7"]}},"git_remote_set_transport":{"type":"function","file":"remote.h","line":383,"lineto":385,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"transport","type":"git_transport *","comment":"the transport object for the remote to use"}],"argline":"git_remote *remote,\n\tgit_transport *transport","sig":"git_remote *::git_transport *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Sets a custom transport for the remote. The caller can use this function\nto bypass the automatic discovery of a transport by URL scheme (i.e.\nhttp://, https://, git://) and supply their own transport to be used\ninstead. After providing the transport to a remote using this function,\nthe transport object belongs exclusively to that remote, and the remote will\nfree it when it is freed with git_remote_free.</p>\n","comments":"","group":"remote"},"git_remote_set_callbacks":{"type":"function","file":"remote.h","line":423,"lineto":423,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"callbacks","type":"git_remote_callbacks *","comment":"a pointer to the user's callback settings"}],"argline":"git_remote *remote, git_remote_callbacks *callbacks","sig":"git_remote *::git_remote_callbacks *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Set the callbacks for a remote</p>\n","comments":"<p>Note that the remote keeps its own copy of the data and you need to\ncall this function again if you want to change the callbacks.</p>\n","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_set_callbacks-13"]}},"git_remote_stats":{"type":"function","file":"remote.h","line":428,"lineto":434,"args":[{"name":"remote","type":"git_remote *"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"const git_transfer_progress *"},"description":"<p>Get the statistics structure that is filled in by the fetch operation.</p>\n","comments":"","group":"remote","examples":{"network/fetch.c":["ex/HEAD/network/fetch.html#git_remote_stats-14"]}},"git_remote_autotag":{"type":"function","file":"remote.h","line":442,"lineto":442,"args":[],"argline":"_option_t) git_remote_autotag(git_remote *remote)","sig":"","return":{"type":"GIT_EXTERN(","comment":"the auto-follow setting"},"description":"<p>Retrieve the tag auto-follow setting</p>\n","comments":"","group":"remote"},"git_remote_set_autotag":{"type":"function","file":"remote.h","line":450,"lineto":452,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"value","type":"git_remote_autotag_option_t","comment":"a GIT_REMOTE_DOWNLOAD_TAGS value"}],"argline":"git_remote *remote,\n\tgit_remote_autotag_option_t value","sig":"git_remote *::git_remote_autotag_option_t","return":{"type":"void"},"description":"<p>Set the tag auto-follow setting</p>\n","comments":"","group":"remote"},"git_remote_rename":{"type":"function","file":"remote.h","line":472,"lineto":476,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to rename"},{"name":"new_name","type":"const char *","comment":"the new name the remote should bear"},{"name":"callback","type":"git_remote_rename_problem_cb","comment":"Optional callback to notify the consumer of fetch refspecs that haven't been automatically updated and need potential manual tweaking."},{"name":"payload","type":"void *","comment":"Additional data to pass to the callback"}],"argline":"git_remote *remote,\n\tconst char *new_name,\n\tgit_remote_rename_problem_cb callback,\n\tvoid *payload","sig":"git_remote *::const char *::git_remote_rename_problem_cb::void *","return":{"type":"int","comment":"0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code"},"description":"<p>Give the remote a new name</p>\n","comments":"<p>All remote-tracking branches and configuration settings\nfor the remote are updated.</p>\n\n<p>The new name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n\n<p>A temporary in-memory remote cannot be given a name with this method.</p>\n","group":"remote"},"git_remote_update_fetchhead":{"type":"function","file":"remote.h","line":484,"lineto":484,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to query"}],"argline":"git_remote *remote","sig":"git_remote *","return":{"type":"int","comment":"the update FETCH_HEAD setting"},"description":"<p>Retrieve the update FETCH_HEAD setting.</p>\n","comments":"","group":"remote"},"git_remote_set_update_fetchhead":{"type":"function","file":"remote.h","line":493,"lineto":493,"args":[{"name":"remote","type":"git_remote *","comment":"the remote to configure"},{"name":"value","type":"int","comment":"0 to disable updating FETCH_HEAD"}],"argline":"git_remote *remote, int value","sig":"git_remote *::int","return":{"type":"void"},"description":"<p>Sets the update FETCH_HEAD setting. By default, FETCH_HEAD will be\nupdated on every fetch. Set to 0 to disable.</p>\n","comments":"","group":"remote"},"git_remote_is_valid_name":{"type":"function","file":"remote.h","line":501,"lineto":501,"args":[{"name":"remote_name","type":"const char *","comment":"name to be checked."}],"argline":"const char *remote_name","sig":"const char *","return":{"type":"int","comment":"1 if the reference name is acceptable; 0 if it isn't"},"description":"<p>Ensure the remote name is well-formed.</p>\n","comments":"","group":"remote"},"git_repository_open":{"type":"function","file":"repository.h","line":36,"lineto":36,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo which will be opened"},{"name":"path","type":"const char *","comment":"the path to the repository"}],"argline":"git_repository **out, const char *path","sig":"git_repository **::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Open a git repository.</p>\n","comments":"<p>The &#39;path&#39; argument must point to either a git repository\nfolder, or an existing work dir.</p>\n\n<p>The method will automatically detect if &#39;path&#39; is a normal\nor bare repository or fail is &#39;path&#39; is neither.</p>\n","group":"repository","examples":{"add.c":["ex/HEAD/add.html#git_repository_open-5"],"general.c":["ex/HEAD/general.html#git_repository_open-57"],"network/git2.c":["ex/HEAD/network/git2.html#git_repository_open-3"]}},"git_repository_wrap_odb":{"type":"function","file":"repository.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo"},{"name":"odb","type":"git_odb *","comment":"the object database to wrap"}],"argline":"git_repository **out, git_odb *odb","sig":"git_repository **::git_odb *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a &quot;fake&quot; repository to wrap an object database</p>\n","comments":"<p>Create a repository object to wrap an object database to be used\nwith the API when all you have is an object database. This doesn&#39;t\nhave any paths associated with it, so use with care.</p>\n","group":"repository"},"git_repository_discover":{"type":"function","file":"repository.h","line":79,"lineto":84,"args":[{"name":"path_out","type":"char *","comment":"The user allocated buffer which will contain the found path."},{"name":"path_size","type":"size_t","comment":"repository_path size"},{"name":"start_path","type":"const char *","comment":"The base path where the lookup starts."},{"name":"across_fs","type":"int","comment":"If true, then the lookup will not stop when a filesystem device change is detected while exploring parent directories."},{"name":"ceiling_dirs","type":"const char *","comment":"A GIT_PATH_LIST_SEPARATOR separated list of absolute symbolic link free paths. The lookup will stop when any of this paths is reached. Note that the lookup always performs on start_path no matter start_path appears in ceiling_dirs ceiling_dirs might be NULL (which is equivalent to an empty string)"}],"argline":"char *path_out,\n\t\tsize_t path_size,\n\t\tconst char *start_path,\n\t\tint across_fs,\n\t\tconst char *ceiling_dirs","sig":"char *::size_t::const char *::int::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Look for a git repository and copy its path in the given buffer.\nThe lookup start from base_path and walk across parent directories\nif nothing has been found. The lookup ends when the first repository\nis found, or when reaching a directory referenced in ceiling_dirs\nor when the filesystem changes (in case across_fs is true).</p>\n","comments":"<p>The method will automatically detect if the repository is bare\n(if there is a repository).</p>\n","group":"repository"},"git_repository_open_ext":{"type":"function","file":"repository.h","line":124,"lineto":128,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be opened. This can actually be NULL if you only want to use the error code to see if a repo at this path could be opened."},{"name":"path","type":"const char *","comment":"Path to open as git repository. If the flags permit \"searching\", then this can be a path to a subdirectory inside the working directory of the repository."},{"name":"flags","type":"unsigned int","comment":"A combination of the GIT_REPOSITORY_OPEN flags above."},{"name":"ceiling_dirs","type":"const char *","comment":"A GIT_PATH_LIST_SEPARATOR delimited list of path prefixes at which the search for a containing repository should terminate."}],"argline":"git_repository **out,\n\tconst char *path,\n\tunsigned int flags,\n\tconst char *ceiling_dirs","sig":"git_repository **::const char *::unsigned int::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if no repository could be found, or -1 if there was a repository but open failed for some reason (such as repo corruption or system errors)."},"description":"<p>Find and open a repository with extended controls.</p>\n","comments":"","group":"repository","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_repository_open_ext-29"],"diff.c":["ex/HEAD/diff.html#git_repository_open_ext-17"],"log.c":["ex/HEAD/log.html#git_repository_open_ext-39","ex/HEAD/log.html#git_repository_open_ext-40"],"rev-list.c":["ex/HEAD/rev-list.html#git_repository_open_ext-9"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_repository_open_ext-14"],"showindex.c":["ex/HEAD/showindex.html#git_repository_open_ext-8"],"status.c":["ex/HEAD/status.html#git_repository_open_ext-4"]}},"git_repository_open_bare":{"type":"function","file":"repository.h","line":141,"lineto":141,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be opened."},{"name":"bare_path","type":"const char *","comment":"Direct path to the bare repository"}],"argline":"git_repository **out, const char *bare_path","sig":"git_repository **::const char *","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Open a bare repository on the serverside.</p>\n","comments":"<p>This is a fast open for bare repositories that will come in handy\nif you&#39;re e.g. hosting git repositories and need to access them\nefficiently</p>\n","group":"repository"},"git_repository_free":{"type":"function","file":"repository.h","line":154,"lineto":154,"args":[{"name":"repo","type":"git_repository *","comment":"repository handle to close. If NULL nothing occurs."}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Free a previously allocated repository</p>\n","comments":"<p>Note that after a repository is free&#39;d, all the objects it has spawned\nwill still exist until they are manually closed by the user\nwith <code>git_object_free</code>, but accessing any of the attributes of\nan object without a backing repository will result in undefined\nbehavior</p>\n","group":"repository","examples":{"add.c":["ex/HEAD/add.html#git_repository_free-6"],"cat-file.c":["ex/HEAD/cat-file.html#git_repository_free-30"],"diff.c":["ex/HEAD/diff.html#git_repository_free-18"],"general.c":["ex/HEAD/general.html#git_repository_free-58"],"init.c":["ex/HEAD/init.html#git_repository_free-5"],"log.c":["ex/HEAD/log.html#git_repository_free-41"],"network/clone.c":["ex/HEAD/network/clone.html#git_repository_free-3"],"network/git2.c":["ex/HEAD/network/git2.html#git_repository_free-4"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_repository_free-15"],"showindex.c":["ex/HEAD/showindex.html#git_repository_free-9"],"status.c":["ex/HEAD/status.html#git_repository_free-5"]}},"git_repository_init":{"type":"function","file":"repository.h","line":171,"lineto":174,"args":[{"name":"out","type":"git_repository **","comment":"pointer to the repo which will be created or reinitialized"},{"name":"path","type":"const char *","comment":"the path to the repository"},{"name":"is_bare","type":"unsigned","comment":"if true, a Git repository without a working directory is created at the pointed path. If false, provided path will be considered as the working directory into which the .git directory will be created."}],"argline":"git_repository **out,\n\tconst char *path,\n\tunsigned is_bare","sig":"git_repository **::const char *::unsigned","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Creates a new Git repository in the given folder.</p>\n","comments":"<p>TODO:\n- Reinit the repository</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_init-6","ex/HEAD/init.html#git_repository_init-7"]}},"git_repository_init_ext":{"type":"function","file":"repository.h","line":285,"lineto":288,"args":[{"name":"out","type":"git_repository **","comment":"Pointer to the repo which will be created or reinitialized."},{"name":"repo_path","type":"const char *","comment":"The path to the repository."},{"name":"opts","type":"git_repository_init_options *","comment":"Pointer to git_repository_init_options struct."}],"argline":"git_repository **out,\n\tconst char *repo_path,\n\tgit_repository_init_options *opts","sig":"git_repository **::const char *::git_repository_init_options *","return":{"type":"int","comment":"0 or an error code on failure."},"description":"<p>Create a new Git repository in the given folder with extended controls.</p>\n","comments":"<p>This will initialize a new git repository (creating the repo_path\nif requested by flags) and working directory as needed. It will\nauto-detect the case sensitivity of the file system and if the\nfile system supports file mode bits correctly.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_init_ext-8"]}},"git_repository_head":{"type":"function","file":"repository.h","line":303,"lineto":303,"args":[{"name":"out","type":"git_reference **","comment":"pointer to the reference which will be retrieved"},{"name":"repo","type":"git_repository *","comment":"a repository object"}],"argline":"git_reference **out, git_repository *repo","sig":"git_reference **::git_repository *","return":{"type":"int","comment":"0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing branch, GIT_ENOTFOUND when HEAD is missing; an error code otherwise"},"description":"<p>Retrieve and resolve the reference pointed at by HEAD.</p>\n","comments":"<p>The returned <code>git_reference</code> will be owned by caller and\n<code>git_reference_free()</code> must be called when done with it to release the\nallocated memory and prevent a leak.</p>\n","group":"repository","examples":{"status.c":["ex/HEAD/status.html#git_repository_head-6"]}},"git_repository_head_detached":{"type":"function","file":"repository.h","line":315,"lineto":315,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if HEAD is detached, 0 if it's not; error code if there was an error."},"description":"<p>Check if a repository&#39;s HEAD is detached</p>\n","comments":"<p>A repository&#39;s HEAD is detached when it points directly to a commit\ninstead of a branch.</p>\n","group":"repository"},"git_repository_head_unborn":{"type":"function","file":"repository.h","line":327,"lineto":327,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the current branch is unborn, 0 if it's not; error code if there was an error"},"description":"<p>Check if the current branch is unborn</p>\n","comments":"<p>An unborn branch is one named from HEAD but which doesn&#39;t exist in\nthe refs namespace, because it doesn&#39;t have any commit to point to.</p>\n","group":"repository"},"git_repository_is_empty":{"type":"function","file":"repository.h","line":339,"lineto":339,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the repository is empty, 0 if it isn't, error code if the repository is corrupted"},"description":"<p>Check if a repository is empty</p>\n","comments":"<p>An empty repository has just been initialized and contains\nno references.</p>\n","group":"repository"},"git_repository_path":{"type":"function","file":"repository.h","line":350,"lineto":350,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the path to the repository"},"description":"<p>Get the path of this repository</p>\n","comments":"<p>This is the path of the <code>.git</code> folder for normal repositories,\nor of the repository itself for bare repositories.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_path-9"]}},"git_repository_workdir":{"type":"function","file":"repository.h","line":361,"lineto":361,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the path to the working dir, if it exists"},"description":"<p>Get the path of the working directory for this repository</p>\n","comments":"<p>If the repository is bare, this function will always return\nNULL.</p>\n","group":"repository","examples":{"init.c":["ex/HEAD/init.html#git_repository_workdir-10"]}},"git_repository_set_workdir":{"type":"function","file":"repository.h","line":380,"lineto":381,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"workdir","type":"const char *","comment":"The path to a working directory"},{"name":"update_gitlink","type":"int","comment":"Create/update gitlink in workdir and set config \"core.worktree\" (if workdir is not the parent of the .git directory)"}],"argline":"git_repository *repo, const char *workdir, int update_gitlink","sig":"git_repository *::const char *::int","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Set the path to the working directory for this repository</p>\n","comments":"<p>The working directory doesn&#39;t need to be the same one\nthat contains the <code>.git</code> folder for this repository.</p>\n\n<p>If this repository is bare, setting its working directory\nwill turn it into a normal repository, capable of performing\nall the common workdir operations (checkout, status, index\nmanipulation, etc).</p>\n","group":"repository"},"git_repository_is_bare":{"type":"function","file":"repository.h","line":389,"lineto":389,"args":[{"name":"repo","type":"git_repository *","comment":"Repo to test"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if the repository is bare, 0 otherwise."},"description":"<p>Check if a repository is bare</p>\n","comments":"","group":"repository","examples":{"status.c":["ex/HEAD/status.html#git_repository_is_bare-7"]}},"git_repository_config":{"type":"function","file":"repository.h","line":405,"lineto":405,"args":[{"name":"out","type":"git_config **","comment":"Pointer to store the loaded config file"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_config **out, git_repository *repo","sig":"git_config **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the configuration file for this repository.</p>\n","comments":"<p>If a configuration file has not been set, the default\nconfig set for the repository will be returned, including\nglobal and system configurations (if they are available).</p>\n\n<p>The configuration file must be freed once it&#39;s no longer\nbeing used by the user.</p>\n","group":"repository"},"git_repository_odb":{"type":"function","file":"repository.h","line":421,"lineto":421,"args":[{"name":"out","type":"git_odb **","comment":"Pointer to store the loaded ODB"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_odb **out, git_repository *repo","sig":"git_odb **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Object Database for this repository.</p>\n","comments":"<p>If a custom ODB has not been set, the default\ndatabase for the repository will be returned (the one\nlocated in <code>.git/objects</code>).</p>\n\n<p>The ODB must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_repository_odb-31"],"general.c":["ex/HEAD/general.html#git_repository_odb-59"]}},"git_repository_refdb":{"type":"function","file":"repository.h","line":437,"lineto":437,"args":[{"name":"out","type":"git_refdb **","comment":"Pointer to store the loaded refdb"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_refdb **out, git_repository *repo","sig":"git_refdb **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Reference Database Backend for this repository.</p>\n","comments":"<p>If a custom refsdb has not been set, the default database for\nthe repository will be returned (the one that manipulates loose\nand packed references in the <code>.git</code> directory).</p>\n\n<p>The refdb must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository"},"git_repository_index":{"type":"function","file":"repository.h","line":453,"lineto":453,"args":[{"name":"out","type":"git_index **","comment":"Pointer to store the loaded index"},{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_index **out, git_repository *repo","sig":"git_index **::git_repository *","return":{"type":"int","comment":"0, or an error code"},"description":"<p>Get the Index file for this repository.</p>\n","comments":"<p>If a custom index has not been set, the default\nindex for the repository will be returned (the one\nlocated in <code>.git/index</code>).</p>\n\n<p>The index must be freed once it&#39;s no longer being used by\nthe user.</p>\n","group":"repository","examples":{"add.c":["ex/HEAD/add.html#git_repository_index-7"],"general.c":["ex/HEAD/general.html#git_repository_index-60"],"init.c":["ex/HEAD/init.html#git_repository_index-11"],"showindex.c":["ex/HEAD/showindex.html#git_repository_index-10"]}},"git_repository_message":{"type":"function","file":"repository.h","line":481,"lineto":481,"args":[{"name":"out","type":"char *","comment":"Buffer to write data into or NULL to just read required size"},{"name":"len","type":"size_t","comment":"Length of `out` buffer in bytes"},{"name":"repo","type":"git_repository *","comment":"Repository to read prepared message from"}],"argline":"char *out, size_t len, git_repository *repo","sig":"char *::size_t::git_repository *","return":{"type":"int","comment":"GIT_ENOTFOUND if no message exists, other value < 0 for other errors, or total bytes in message (may be > `len`) on success"},"description":"<p>Retrieve git&#39;s prepared message</p>\n","comments":"<p>Operations such as git revert/cherry-pick/merge with the -n option\nstop just short of creating a commit with the changes and save\ntheir prepared message in .git/MERGE_MSG so the next git-commit\nexecution can present it to the user for them to amend if they\nwish.</p>\n\n<p>Use this function to get the contents of this file. Don&#39;t forget to\nremove the file after you create the commit.</p>\n\n<p>If the repository message exists and there are no errors reading it, this\nreturns the bytes needed to store the message in memory (i.e. message\nfile size plus one terminating NUL byte). That value is returned even if\n<code>out</code> is NULL or <code>len</code> is shorter than the necessary size.</p>\n\n<p>The <code>out</code> buffer will <em>always</em> be NUL terminated, even if truncation\noccurs.</p>\n","group":"repository"},"git_repository_message_remove":{"type":"function","file":"repository.h","line":488,"lineto":488,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int"},"description":"<p>Remove git&#39;s prepared message.</p>\n","comments":"<p>Remove the message that <code>git_repository_message</code> retrieves.</p>\n","group":"repository"},"git_repository_merge_cleanup":{"type":"function","file":"repository.h","line":497,"lineto":503,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"0 on success, or error"},"description":"<p>Remove all the metadata associated with an ongoing git merge, including\nMERGE_HEAD, MERGE_MSG, etc.</p>\n","comments":"","group":"repository"},"git_repository_fetchhead_foreach":{"type":"function","file":"repository.h","line":513,"lineto":518,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_repository_fetchhead_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_repository_fetchhead_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_repository_fetchhead_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EUSER or error"},"description":"<p>Call callback &#39;callback&#39; for each entry in the given FETCH_HEAD file.</p>\n","comments":"","group":"repository"},"git_repository_mergehead_foreach":{"type":"function","file":"repository.h","line":529,"lineto":531,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_repository_mergehead_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_repository_mergehead_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_repository_mergehead_foreach_cb::void *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EUSER or error"},"description":"<p>If a merge is in progress, call callback &#39;cb&#39; for each commit ID in the\nMERGE_HEAD file.</p>\n","comments":"","group":"repository"},"git_repository_hashfile":{"type":"function","file":"repository.h","line":551,"lineto":556,"args":[{"name":"out","type":"git_oid *","comment":"Output value of calculated SHA"},{"name":"repo","type":"git_repository *","comment":"Repository pointer"},{"name":"path","type":"const char *","comment":"Path to file on disk whose contents should be hashed. If the repository is not NULL, this can be a relative path."},{"name":"type","type":"git_otype","comment":"The object type to hash as (e.g. GIT_OBJ_BLOB)"},{"name":"as_path","type":"const char *","comment":"The path to use to look up filtering rules. If this is NULL, then the `path` parameter will be used instead. If this is passed as the empty string, then no filters will be applied when calculating the hash."}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst char *path,\n\tgit_otype type,\n\tconst char *as_path","sig":"git_oid *::git_repository *::const char *::git_otype::const char *","return":{"type":"int"},"description":"<p>Calculate hash of file using repository filtering rules.</p>\n","comments":"<p>If you simply want to calculate the hash of a file on disk with no filters,\nyou can just use the <code>git_odb_hashfile()</code> API. However, if you want to\nhash a file in the repository and you want to apply filtering rules (e.g.\ncrlf filters) before generating the SHA, then use this function.</p>\n","group":"repository"},"git_repository_set_head":{"type":"function","file":"repository.h","line":576,"lineto":578,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"},{"name":"refname","type":"const char*","comment":"Canonical name of the reference the HEAD should point at"}],"argline":"git_repository* repo,\n\tconst char* refname","sig":"git_repository*::const char*","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Make the repository HEAD point to the specified reference.</p>\n","comments":"<p>If the provided reference points to a Tree or a Blob, the HEAD is\nunaltered and -1 is returned.</p>\n\n<p>If the provided reference points to a branch, the HEAD will point\nto that branch, staying attached, or become attached if it isn&#39;t yet.\nIf the branch doesn&#39;t exist yet, no error will be return. The HEAD\nwill then be attached to an unborn branch.</p>\n\n<p>Otherwise, the HEAD will be detached and will directly point to\nthe Commit.</p>\n","group":"repository"},"git_repository_set_head_detached":{"type":"function","file":"repository.h","line":596,"lineto":598,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"},{"name":"commitish","type":"const git_oid*","comment":"Object id of the Commit the HEAD should point to"}],"argline":"git_repository* repo,\n\tconst git_oid* commitish","sig":"git_repository*::const git_oid*","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Make the repository HEAD directly point to the Commit.</p>\n","comments":"<p>If the provided committish cannot be found in the repository, the HEAD\nis unaltered and GIT_ENOTFOUND is returned.</p>\n\n<p>If the provided commitish cannot be peeled into a commit, the HEAD\nis unaltered and -1 is returned.</p>\n\n<p>Otherwise, the HEAD will eventually be detached and will directly point to\nthe peeled Commit.</p>\n","group":"repository"},"git_repository_detach_head":{"type":"function","file":"repository.h","line":617,"lineto":631,"args":[{"name":"repo","type":"git_repository*","comment":"Repository pointer"}],"argline":"git_repository* repo","sig":"git_repository*","return":{"type":"int","comment":"0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing branch or an error code"},"description":"<p>Detach the HEAD.</p>\n","comments":"<p>If the HEAD is already detached and points to a Commit, 0 is returned.</p>\n\n<p>If the HEAD is already detached and points to a Tag, the HEAD is\nupdated into making it point to the peeled Commit, and 0 is returned.</p>\n\n<p>If the HEAD is already detached and points to a non commitish, the HEAD is\nunaltered, and -1 is returned.</p>\n\n<p>Otherwise, the HEAD will be detached and point to the peeled Commit.</p>\n","group":"repository"},"git_repository_state":{"type":"function","file":"repository.h","line":640,"lineto":640,"args":[{"name":"repo","type":"git_repository *","comment":"Repository pointer"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"The state of the repository"},"description":"<p>Determines the status of a git repository - ie, whether an operation\n(merge, cherry-pick, etc) is in progress.</p>\n","comments":"","group":"repository"},"git_repository_set_namespace":{"type":"function","file":"repository.h","line":654,"lineto":654,"args":[{"name":"repo","type":"git_repository *","comment":"The repo"},{"name":"nmspace","type":"const char *","comment":"The namespace. This should not include the refs folder, e.g. to namespace all references under `refs/namespaces/foo/`, use `foo` as the namespace."}],"argline":"git_repository *repo, const char *nmspace","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success, -1 on error"},"description":"<p>Sets the active namespace for this Git Repository</p>\n","comments":"<p>This namespace affects all reference operations for the repo.\nSee <code>man gitnamespaces</code></p>\n","group":"repository"},"git_repository_get_namespace":{"type":"function","file":"repository.h","line":662,"lineto":662,"args":[{"name":"repo","type":"git_repository *","comment":"The repo"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"const char *","comment":"the active namespace, or NULL if there isn't one"},"description":"<p>Get the currently active namespace for this repository</p>\n","comments":"","group":"repository"},"git_repository_is_shallow":{"type":"function","file":"repository.h","line":671,"lineto":671,"args":[{"name":"repo","type":"git_repository *","comment":"The repository"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int","comment":"1 if shallow, zero if not"},"description":"<p>Determine if the repository was a shallow clone</p>\n","comments":"","group":"repository"},"git_reset":{"type":"function","file":"reset.h","line":53,"lineto":54,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to perform the reset operation."},{"name":"target","type":"git_object *","comment":"Committish to which the Head should be moved to. This object must belong to the given `repo` and can either be a git_commit or a git_tag. When a git_tag is being passed, it should be dereferencable to a git_commit which oid will be used as the target of the branch."},{"name":"reset_type","type":"git_reset_t","comment":"Kind of reset operation to perform."}],"argline":"git_repository *repo, git_object *target, git_reset_t reset_type","sig":"git_repository *::git_object *::git_reset_t","return":{"type":"int","comment":"0 on success or an error code"},"description":"<p>Sets the current head to the specified commit oid and optionally\nresets the index and working tree to match.</p>\n","comments":"<p>SOFT reset means the Head will be moved to the commit.</p>\n\n<p>MIXED reset will trigger a SOFT reset, plus the index will be replaced\nwith the content of the commit tree.</p>\n\n<p>HARD reset will trigger a MIXED reset and the working directory will be\nreplaced with the content of the index. (Untracked and ignored files\nwill be left alone, however.)</p>\n\n<p>TODO: Implement remaining kinds of resets.</p>\n","group":"reset"},"git_reset_default":{"type":"function","file":"reset.h","line":74,"lineto":77,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to perform the reset operation."},{"name":"target","type":"git_object *","comment":"The committish which content will be used to reset the content of the index."},{"name":"pathspecs","type":"git_strarray*","comment":"List of pathspecs to operate on."}],"argline":"git_repository *repo,\n\tgit_object *target,\n\tgit_strarray* pathspecs","sig":"git_repository *::git_object *::git_strarray*","return":{"type":"int","comment":"0 on success or an error code < 0"},"description":"<p>Updates some entries in the index from the target commit tree.</p>\n","comments":"<p>The scope of the updated entries is determined by the paths\nbeing passed in the <code>pathspec</code> parameters.</p>\n\n<p>Passing a NULL <code>target</code> will result in removing\nentries in the index matching the provided pathspecs.</p>\n","group":"reset"},"git_revparse_single":{"type":"function","file":"revparse.h","line":37,"lineto":38,"args":[{"name":"out","type":"git_object **","comment":"pointer to output object"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the textual specification for an object"}],"argline":"git_object **out, git_repository *repo, const char *spec","sig":"git_object **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Find a single object, as specified by a revision string.</p>\n","comments":"<p>See <code>man gitrevisions</code>, or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n\n<p>The returned object should be released with <code>git_object_free</code> when no\nlonger needed.</p>\n","group":"revparse","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_revparse_single-32"],"diff.c":["ex/HEAD/diff.html#git_revparse_single-19"],"log.c":["ex/HEAD/log.html#git_revparse_single-42"],"rev-list.c":["ex/HEAD/rev-list.html#git_revparse_single-10"]}},"git_revparse_ext":{"type":"function","file":"revparse.h","line":61,"lineto":65,"args":[{"name":"object_out","type":"git_object **","comment":"pointer to output object"},{"name":"reference_out","type":"git_reference **","comment":"pointer to output reference or NULL"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the textual specification for an object"}],"argline":"git_object **object_out,\n\tgit_reference **reference_out,\n\tgit_repository *repo,\n\tconst char *spec","sig":"git_object **::git_reference **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code"},"description":"<p>Find a single object and intermediate reference by a revision string.</p>\n","comments":"<p>See <code>man gitrevisions</code>, or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n\n<p>In some cases (<code>@{&lt;-n&gt;}</code> or <code>&lt;branchname&gt;@{upstream}</code>), the expression may\npoint to an intermediate reference. When such expressions are being passed\nin, <code>reference_out</code> will be valued as well.</p>\n\n<p>The returned object should be released with <code>git_object_free</code> and the\nreturned reference with <code>git_reference_free</code> when no longer needed.</p>\n","group":"revparse"},"git_revparse":{"type":"function","file":"revparse.h","line":105,"lineto":108,"args":[{"name":"revspec","type":"git_revspec *","comment":"Pointer to an user-allocated git_revspec struct where the result of the rev-parse will be stored"},{"name":"repo","type":"git_repository *","comment":"the repository to search in"},{"name":"spec","type":"const char *","comment":"the rev-parse spec to parse"}],"argline":"git_revspec *revspec,\n\tgit_repository *repo,\n\tconst char *spec","sig":"git_revspec *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_INVALIDSPEC, GIT_ENOTFOUND, GIT_EAMBIGUOUS or an error code"},"description":"<p>Parse a revision string for <code>from</code>, <code>to</code>, and intent.</p>\n","comments":"<p>See <code>man gitrevisions</code> or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n","group":"revparse","examples":{"log.c":["ex/HEAD/log.html#git_revparse-43"],"rev-list.c":["ex/HEAD/rev-list.html#git_revparse-11"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_revparse-16","ex/HEAD/rev-parse.html#git_revparse-17"]}},"git_revwalk_new":{"type":"function","file":"revwalk.h","line":70,"lineto":70,"args":[{"name":"out","type":"git_revwalk **","comment":"pointer to the new revision walker"},{"name":"repo","type":"git_repository *","comment":"the repo to walk through"}],"argline":"git_revwalk **out, git_repository *repo","sig":"git_revwalk **::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Allocate a new revision walker to iterate through a repo.</p>\n","comments":"<p>This revision walker uses a custom memory pool and an internal\ncommit cache, so it is relatively expensive to allocate.</p>\n\n<p>For maximum performance, this revision walker should be\nreused for different walks.</p>\n\n<p>This revision walker is <em>not</em> thread safe: it may only be\nused to walk a repository on a single thread; however,\nit is possible to have several revision walkers in\nseveral different threads walking the same repository.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_new-61"],"log.c":["ex/HEAD/log.html#git_revwalk_new-44","ex/HEAD/log.html#git_revwalk_new-45"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_new-12"]}},"git_revwalk_reset":{"type":"function","file":"revwalk.h","line":85,"lineto":85,"args":[{"name":"walker","type":"git_revwalk *","comment":"handle to reset."}],"argline":"git_revwalk *walker","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Reset the revision walker for reuse.</p>\n","comments":"<p>This will clear all the pushed and hidden commits, and\nleave the walker in a blank state (just like at\ncreation) ready to receive new commit pushes and\nstart a new walk.</p>\n\n<p>The revision walk is automatically reset when a walk\nis over.</p>\n","group":"revwalk"},"git_revwalk_push":{"type":"function","file":"revwalk.h","line":102,"lineto":102,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"id","type":"const git_oid *","comment":"the oid of the commit to start from."}],"argline":"git_revwalk *walk, const git_oid *id","sig":"git_revwalk *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Mark a commit to start traversal from.</p>\n","comments":"<p>The given OID must belong to a commit on the walked\nrepository.</p>\n\n<p>The given commit will be used as one of the roots\nwhen starting the revision walk. At least one commit\nmust be pushed onto the walker before a walk can\nbe started.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_push-62"],"log.c":["ex/HEAD/log.html#git_revwalk_push-46"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_push-13"]}},"git_revwalk_push_glob":{"type":"function","file":"revwalk.h","line":117,"lineto":117,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"glob","type":"const char *","comment":"the glob pattern references should match"}],"argline":"git_revwalk *walk, const char *glob","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push matching references</p>\n","comments":"<p>The OIDs pointed to by the references that match the given glob\npattern will be pushed to the revision walker.</p>\n\n<p>A leading &#39;refs/&#39; is implied if not present as well as a trailing\n&#39;/ <em>&#39; if the glob lacks &#39;?&#39;, &#39;</em>&#39; or &#39;[&#39;.</p>\n","group":"revwalk"},"git_revwalk_push_head":{"type":"function","file":"revwalk.h","line":125,"lineto":125,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push the repository&#39;s HEAD</p>\n","comments":"","group":"revwalk","examples":{"log.c":["ex/HEAD/log.html#git_revwalk_push_head-47"]}},"git_revwalk_hide":{"type":"function","file":"revwalk.h","line":140,"lineto":140,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"commit_id","type":"const git_oid *","comment":"the oid of commit that will be ignored during the traversal"}],"argline":"git_revwalk *walk, const git_oid *commit_id","sig":"git_revwalk *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Mark a commit (and its ancestors) uninteresting for the output.</p>\n","comments":"<p>The given OID must belong to a commit on the walked\nrepository.</p>\n\n<p>The resolved commit and all its parents will be hidden from the\noutput on the revision walk.</p>\n","group":"revwalk","examples":{"log.c":["ex/HEAD/log.html#git_revwalk_hide-48"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_hide-14"]}},"git_revwalk_hide_glob":{"type":"function","file":"revwalk.h","line":156,"lineto":156,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"glob","type":"const char *","comment":"the glob pattern references should match"}],"argline":"git_revwalk *walk, const char *glob","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide matching references.</p>\n","comments":"<p>The OIDs pointed to by the references that match the given glob\npattern and their ancestors will be hidden from the output on the\nrevision walk.</p>\n\n<p>A leading &#39;refs/&#39; is implied if not present as well as a trailing\n&#39;/ <em>&#39; if the glob lacks &#39;?&#39;, &#39;</em>&#39; or &#39;[&#39;.</p>\n","group":"revwalk"},"git_revwalk_hide_head":{"type":"function","file":"revwalk.h","line":164,"lineto":164,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide the repository&#39;s HEAD</p>\n","comments":"","group":"revwalk"},"git_revwalk_push_ref":{"type":"function","file":"revwalk.h","line":175,"lineto":175,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"refname","type":"const char *","comment":"the reference to push"}],"argline":"git_revwalk *walk, const char *refname","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push the OID pointed to by a reference</p>\n","comments":"<p>The reference must point to a commit.</p>\n","group":"revwalk"},"git_revwalk_hide_ref":{"type":"function","file":"revwalk.h","line":186,"lineto":186,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"refname","type":"const char *","comment":"the reference to hide"}],"argline":"git_revwalk *walk, const char *refname","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Hide the OID pointed to by a reference</p>\n","comments":"<p>The reference must point to a commit.</p>\n","group":"revwalk"},"git_revwalk_next":{"type":"function","file":"revwalk.h","line":206,"lineto":206,"args":[{"name":"out","type":"git_oid *","comment":"Pointer where to store the oid of the next commit"},{"name":"walk","type":"git_revwalk *","comment":"the walker to pop the commit from."}],"argline":"git_oid *out, git_revwalk *walk","sig":"git_oid *::git_revwalk *","return":{"type":"int","comment":"0 if the next commit was found; GIT_ITEROVER if there are no commits left to iterate"},"description":"<p>Get the next commit from the revision walk.</p>\n","comments":"<p>The initial call to this method is <em>not</em> blocking when\niterating through a repo with a time-sorting mode.</p>\n\n<p>Iterating with Topological or inverted modes makes the initial\ncall blocking to preprocess the commit list, but this block should be\nmostly unnoticeable on most repositories (topological preprocessing\ntimes at 0.3s on the git.git repo).</p>\n\n<p>The revision walker is reset when the walk is over.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_next-63"],"log.c":["ex/HEAD/log.html#git_revwalk_next-49"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_next-15"]}},"git_revwalk_sorting":{"type":"function","file":"revwalk.h","line":217,"lineto":217,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal."},{"name":"sort_mode","type":"unsigned int","comment":"combination of GIT_SORT_XXX flags"}],"argline":"git_revwalk *walk, unsigned int sort_mode","sig":"git_revwalk *::unsigned int","return":{"type":"void"},"description":"<p>Change the sorting mode when iterating through the\nrepository&#39;s contents.</p>\n","comments":"<p>Changing the sorting mode resets the walker.</p>\n","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_sorting-64"],"log.c":["ex/HEAD/log.html#git_revwalk_sorting-50","ex/HEAD/log.html#git_revwalk_sorting-51"],"rev-list.c":["ex/HEAD/rev-list.html#git_revwalk_sorting-16","ex/HEAD/rev-list.html#git_revwalk_sorting-17","ex/HEAD/rev-list.html#git_revwalk_sorting-18"]}},"git_revwalk_push_range":{"type":"function","file":"revwalk.h","line":232,"lineto":232,"args":[{"name":"walk","type":"git_revwalk *","comment":"the walker being used for the traversal"},{"name":"range","type":"const char *","comment":"the range"}],"argline":"git_revwalk *walk, const char *range","sig":"git_revwalk *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Push and hide the respective endpoints of the given range.</p>\n","comments":"<p>The range should be of the form\n <commit>..<commit>\nwhere each <commit> is in the form accepted by &#39;git_revparse_single&#39;.\nThe left-hand commit will be hidden and the right-hand commit pushed.</p>\n","group":"revwalk"},"git_revwalk_simplify_first_parent":{"type":"function","file":"revwalk.h","line":239,"lineto":239,"args":[{"name":"walk","type":"git_revwalk *"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Simplify the history by first-parent</p>\n","comments":"<p>No parents other than the first for each commit will be enqueued.</p>\n","group":"revwalk"},"git_revwalk_free":{"type":"function","file":"revwalk.h","line":247,"lineto":247,"args":[{"name":"walk","type":"git_revwalk *","comment":"traversal handle to close. If NULL nothing occurs."}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"void"},"description":"<p>Free a revision walker previously allocated.</p>\n","comments":"","group":"revwalk","examples":{"general.c":["ex/HEAD/general.html#git_revwalk_free-65"],"log.c":["ex/HEAD/log.html#git_revwalk_free-52"]}},"git_revwalk_repository":{"type":"function","file":"revwalk.h","line":256,"lineto":256,"args":[{"name":"walk","type":"git_revwalk *","comment":"the revision walker"}],"argline":"git_revwalk *walk","sig":"git_revwalk *","return":{"type":"git_repository *","comment":"the repository being walked"},"description":"<p>Return the repository on which this walker\nis operating.</p>\n","comments":"","group":"revwalk"},"git_signature_new":{"type":"function","file":"signature.h","line":37,"lineto":37,"args":[{"name":"out","type":"git_signature **","comment":"new signature, in case of error NULL"},{"name":"name","type":"const char *","comment":"name of the person"},{"name":"email","type":"const char *","comment":"email of the person"},{"name":"time","type":"git_time_t","comment":"time when the action happened"},{"name":"offset","type":"int","comment":"timezone offset in minutes for the time"}],"argline":"git_signature **out, const char *name, const char *email, git_time_t time, int offset","sig":"git_signature **::const char *::const char *::git_time_t::int","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new action signature.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n\n<p>Note: angle brackets (&#39;&lt;&#39; and &#39;&gt;&#39;) characters are not allowed\nto be used in either the <code>name</code> or the <code>email</code> parameter.</p>\n","group":"signature","examples":{"general.c":["ex/HEAD/general.html#git_signature_new-66","ex/HEAD/general.html#git_signature_new-67"]}},"git_signature_now":{"type":"function","file":"signature.h","line":49,"lineto":49,"args":[{"name":"out","type":"git_signature **","comment":"new signature, in case of error NULL"},{"name":"name","type":"const char *","comment":"name of the person"},{"name":"email","type":"const char *","comment":"email of the person"}],"argline":"git_signature **out, const char *name, const char *email","sig":"git_signature **::const char *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create a new action signature with a timestamp of &#39;now&#39;.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n","group":"signature"},"git_signature_default":{"type":"function","file":"signature.h","line":63,"lineto":63,"args":[{"name":"out","type":"git_signature **","comment":"new signature"},{"name":"repo","type":"git_repository *","comment":"repository pointer"}],"argline":"git_signature **out, git_repository *repo","sig":"git_signature **::git_repository *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if config is missing, or error code"},"description":"<p>Create a new action signature with default user and now timestamp.</p>\n","comments":"<p>This looks up the user.name and user.email from the configuration and\nuses the current time as the timestamp, and creates a new signature\nbased on that information. It will return GIT_ENOTFOUND if either the\nuser.name or user.email are not set.</p>\n","group":"signature","examples":{"init.c":["ex/HEAD/init.html#git_signature_default-12"]}},"git_signature_dup":{"type":"function","file":"signature.h","line":74,"lineto":74,"args":[{"name":"sig","type":"const git_signature *","comment":"signature to duplicated"}],"argline":"const git_signature *sig","sig":"const git_signature *","return":{"type":"git_signature *","comment":"a copy of sig, NULL on out of memory"},"description":"<p>Create a copy of an existing signature. All internal strings are also\nduplicated.</p>\n","comments":"<p>Call <code>git_signature_free()</code> to free the data.</p>\n","group":"signature"},"git_signature_free":{"type":"function","file":"signature.h","line":85,"lineto":85,"args":[{"name":"sig","type":"git_signature *","comment":"signature to free"}],"argline":"git_signature *sig","sig":"git_signature *","return":{"type":"void"},"description":"<p>Free an existing signature.</p>\n","comments":"<p>Because the signature is not an opaque structure, it is legal to free it\nmanually, but be sure to free the &quot;name&quot; and &quot;email&quot; strings in addition\nto the structure itself.</p>\n","group":"signature","examples":{"init.c":["ex/HEAD/init.html#git_signature_free-13"]}},"git_stash_save":{"type":"function","file":"stash.h","line":57,"lineto":62,"args":[{"name":"out","type":"git_oid *","comment":"Object id of the commit containing the stashed state. This commit is also the target of the direct reference refs/stash."},{"name":"repo","type":"git_repository *","comment":"The owning repository."},{"name":"stasher","type":"const git_signature *","comment":"The identity of the person performing the stashing."},{"name":"message","type":"const char *","comment":"Optional description along with the stashed state."},{"name":"flags","type":"unsigned int","comment":"Flags to control the stashing process. (see GIT_STASH_* above)"}],"argline":"git_oid *out,\n\tgit_repository *repo,\n\tconst git_signature *stasher,\n\tconst char *message,\n\tunsigned int flags","sig":"git_oid *::git_repository *::const git_signature *::const char *::unsigned int","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND where there's nothing to stash, or error code."},"description":"<p>Save the local modifications to a new stash.</p>\n","comments":"","group":"stash"},"git_stash_foreach":{"type":"function","file":"stash.h","line":99,"lineto":102,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where to find the stash."},{"name":"callback","type":"git_stash_cb","comment":"Callback to invoke per found stashed state. The most recent stash state will be enumerated first."},{"name":"payload","type":"void *","comment":"Extra parameter to callback function."}],"argline":"git_repository *repo,\n\tgit_stash_cb callback,\n\tvoid *payload","sig":"git_repository *::git_stash_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Loop over all the stashed states and issue a callback for each one.</p>\n","comments":"<p>If the callback returns a non-zero value, this will stop looping.</p>\n","group":"stash"},"git_stash_drop":{"type":"function","file":"stash.h","line":114,"lineto":116,"args":[{"name":"repo","type":"git_repository *","comment":"The owning repository."},{"name":"index","type":"size_t","comment":"The position within the stash list. 0 points to the most recent stashed state."}],"argline":"git_repository *repo,\n\tsize_t index","sig":"git_repository *::size_t","return":{"type":"int","comment":"0 on success, or error code"},"description":"<p>Remove a single stashed state from the stash list.</p>\n","comments":"","group":"stash"},"git_status_foreach":{"type":"function","file":"status.h","line":209,"lineto":212,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"callback","type":"git_status_cb","comment":"The function to call on each file"},{"name":"payload","type":"void *","comment":"Pointer to pass through to callback function"}],"argline":"git_repository *repo,\n\tgit_status_cb callback,\n\tvoid *payload","sig":"git_repository *::git_status_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Gather file statuses and run a callback for each one.</p>\n","comments":"<p>The callback is passed the path of the file, the status (a combination of\nthe <code>git_status_t</code> values above) and the <code>payload</code> data pointer passed\ninto this function.</p>\n\n<p>If the callback returns a non-zero value, this function will stop looping\nand return GIT_EUSER.</p>\n","group":"status"},"git_status_foreach_ext":{"type":"function","file":"status.h","line":228,"lineto":232,"args":[{"name":"repo","type":"git_repository *","comment":"Repository object"},{"name":"opts","type":"const git_status_options *","comment":"Status options structure"},{"name":"callback","type":"git_status_cb","comment":"The function to call on each file"},{"name":"payload","type":"void *","comment":"Pointer to pass through to callback function"}],"argline":"git_repository *repo,\n\tconst git_status_options *opts,\n\tgit_status_cb callback,\n\tvoid *payload","sig":"git_repository *::const git_status_options *::git_status_cb::void *","return":{"type":"int","comment":"0 on success, GIT_EUSER on non-zero callback, or error code"},"description":"<p>Gather file status information and run callbacks as requested.</p>\n","comments":"<p>This is an extended version of the <code>git_status_foreach()</code> API that\nallows for more granular control over which paths will be processed and\nin what order. See the <code>git_status_options</code> structure for details\nabout the additional controls that this makes available.</p>\n","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_foreach_ext-8"]}},"git_status_file":{"type":"function","file":"status.h","line":247,"lineto":250,"args":[{"name":"status_flags","type":"unsigned int *","comment":"Output combination of git_status_t values for file"},{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"path","type":"const char *","comment":"The file to retrieve status for relative to the repo workdir"}],"argline":"unsigned int *status_flags,\n\tgit_repository *repo,\n\tconst char *path","sig":"unsigned int *::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if the file is not found in the HEAD, index, and work tree, GIT_EAMBIGUOUS if `path` matches multiple files or if it refers to a folder, and -1 on other errors."},"description":"<p>Get file status for a single file.</p>\n","comments":"<p>This is not quite the same as calling <code>git_status_foreach_ext()</code> with\nthe pathspec set to the specified path.</p>\n","group":"status","examples":{"add.c":["ex/HEAD/add.html#git_status_file-8"]}},"git_status_list_new":{"type":"function","file":"status.h","line":260,"lineto":263,"args":[{"name":"out","type":"git_status_list **","comment":"Pointer to store the status results in"},{"name":"repo","type":"git_repository *","comment":"Repository object"},{"name":"opts","type":"const git_status_options *","comment":"Status options structure"}],"argline":"git_status_list **out,\n\tgit_repository *repo,\n\tconst git_status_options *opts","sig":"git_status_list **::git_repository *::const git_status_options *","return":{"type":"int","comment":"0 on success or error code"},"description":"<p>Gather file status information and populate the <code>git_status_list</code>.</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_new-9"]}},"git_status_list_entrycount":{"type":"function","file":"status.h","line":271,"lineto":272,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"}],"argline":"git_status_list *statuslist","sig":"git_status_list *","return":{"type":"size_t","comment":"the number of status entries"},"description":"<p>Gets the count of status entries in this list.</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_entrycount-10","ex/HEAD/status.html#git_status_list_entrycount-11"]}},"git_status_byindex":{"type":"function","file":"status.h","line":283,"lineto":285,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"},{"name":"idx","type":"size_t","comment":"Position of the entry"}],"argline":"git_status_list *statuslist,\n\tsize_t idx","sig":"git_status_list *::size_t","return":{"type":"const git_status_entry *","comment":"Pointer to the entry; NULL if out of bounds"},"description":"<p>Get a pointer to one of the entries in the status list.</p>\n","comments":"<p>The entry is not modifiable and should not be freed.</p>\n","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_byindex-12","ex/HEAD/status.html#git_status_byindex-13","ex/HEAD/status.html#git_status_byindex-14","ex/HEAD/status.html#git_status_byindex-15","ex/HEAD/status.html#git_status_byindex-16","ex/HEAD/status.html#git_status_byindex-17"]}},"git_status_list_free":{"type":"function","file":"status.h","line":292,"lineto":293,"args":[{"name":"statuslist","type":"git_status_list *","comment":"Existing status list object"}],"argline":"git_status_list *statuslist","sig":"git_status_list *","return":{"type":"void"},"description":"<p>Free an existing status list</p>\n","comments":"","group":"status","examples":{"status.c":["ex/HEAD/status.html#git_status_list_free-18"]}},"git_status_should_ignore":{"type":"function","file":"status.h","line":311,"lineto":314,"args":[{"name":"ignored","type":"int *","comment":"Boolean returning 0 if the file is not ignored, 1 if it is"},{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"path","type":"const char *","comment":"The file to check ignores for, rooted at the repo's workdir."}],"argline":"int *ignored,\n\tgit_repository *repo,\n\tconst char *path","sig":"int *::git_repository *::const char *","return":{"type":"int","comment":"0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not."},"description":"<p>Test if the ignore rules apply to a given file.</p>\n","comments":"<p>This function checks the ignore rules to see if they would apply to the\ngiven file. This indicates if the file would be ignored regardless of\nwhether the file is already in the index or committed to the repository.</p>\n\n<p>One way to think of this is if you were to do &quot;git add .&quot; on the\ndirectory containing the file, would it be added or not?</p>\n","group":"status"},"git_strarray_free":{"type":"function","file":"strarray.h","line":41,"lineto":41,"args":[{"name":"array","type":"git_strarray *","comment":"git_strarray from which to free string data"}],"argline":"git_strarray *array","sig":"git_strarray *","return":{"type":"void"},"description":"<p>Close a string array object</p>\n","comments":"<p>This method should be called on <code>git_strarray</code> objects where the strings\narray is allocated and contains allocated strings, such as what you\nwould get from <code>git_strarray_copy()</code>. Not doing so, will result in a\nmemory leak.</p>\n\n<p>This does not free the <code>git_strarray</code> itself, since the library will\nnever allocate that object directly itself (it is more commonly embedded\ninside another struct or created on the stack).</p>\n","group":"strarray","examples":{"general.c":["ex/HEAD/general.html#git_strarray_free-68"]}},"git_strarray_copy":{"type":"function","file":"strarray.h","line":53,"lineto":53,"args":[{"name":"tgt","type":"git_strarray *","comment":"target"},{"name":"src","type":"const git_strarray *","comment":"source"}],"argline":"git_strarray *tgt, const git_strarray *src","sig":"git_strarray *::const git_strarray *","return":{"type":"int","comment":"0 on success, < 0 on allocation failure"},"description":"<p>Copy a string array object from source to target.</p>\n","comments":"<p>Note: target is overwritten and hence should be empty, otherwise its\ncontents are leaked. Call git_strarray_free() if necessary.</p>\n","group":"strarray"},"git_submodule_lookup":{"type":"function","file":"submodule.h","line":135,"lineto":138,"args":[{"name":"submodule","type":"git_submodule **","comment":"Pointer to submodule description object pointer.."},{"name":"repo","type":"git_repository *","comment":"The repository."},{"name":"name","type":"const char *","comment":"The name of the submodule. Trailing slashes will be ignored."}],"argline":"git_submodule **submodule,\n\tgit_repository *repo,\n\tconst char *name","sig":"git_submodule **::git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_ENOTFOUND if submodule does not exist, GIT_EEXISTS if submodule exists in working directory only, -1 on other errors."},"description":"<p>Lookup submodule information by name or path.</p>\n","comments":"<p>Given either the submodule name or path (they are usually the same), this\nreturns a structure describing the submodule.</p>\n\n<p>There are two expected error scenarios:</p>\n\n<ul>\n<li>The submodule is not mentioned in the HEAD, the index, and the config,\nbut does &quot;exist&quot; in the working directory (i.e. there is a subdirectory\nthat is a valid self-contained git repo). In this case, this function\nreturns GIT_EEXISTS to indicate the the submodule exists but not in a\nstate where a git_submodule can be instantiated.</li>\n<li>The submodule is not mentioned in the HEAD, index, or config and the\nworking directory doesn&#39;t contain a value git repo at that path.\nThere may or may not be anything else at that path, but nothing that\nlooks like a submodule. In this case, this returns GIT_ENOTFOUND.</li>\n</ul>\n\n<p>The submodule object is owned by the containing repo and will be freed\nwhen the repo is freed. The caller need not free the submodule.</p>\n","group":"submodule","examples":{"status.c":["ex/HEAD/status.html#git_submodule_lookup-19"]}},"git_submodule_foreach":{"type":"function","file":"submodule.h","line":158,"lineto":161,"args":[{"name":"repo","type":"git_repository *","comment":"The repository"},{"name":"callback","type":"int (*)(git_submodule *sm, const char *name, void *payload)","comment":"Function to be called with the name of each submodule. Return a non-zero value to terminate the iteration."},{"name":"payload","type":"void *","comment":"Extra data to pass to callback"}],"argline":"git_repository *repo,\n\tint (*callback)(git_submodule *sm, const char *name, void *payload),\n\tvoid *payload","sig":"git_repository *::int (*)(git_submodule *sm, const char *name, void *payload)::void *","return":{"type":"int","comment":"0 on success, -1 on error, or non-zero return value of callback"},"description":"<p>Iterate over all tracked submodules of a repository.</p>\n","comments":"<p>See the note on <code>git_submodule</code> above. This iterates over the tracked\nsubmodules as decribed therein.</p>\n\n<p>If you are concerned about items in the working directory that look like\nsubmodules but are not tracked, the diff API will generate a diff record\nfor workdir items that look like submodules but are not tracked, showing\nthem as added in the workdir. Also, the status API will treat the entire\nsubdirectory of a contained git repo as a single GIT_STATUS_WT_NEW item.</p>\n","group":"submodule"},"git_submodule_add_setup":{"type":"function","file":"submodule.h","line":186,"lineto":191,"args":[{"name":"submodule","type":"git_submodule **","comment":"The newly created submodule ready to open for clone"},{"name":"repo","type":"git_repository *","comment":"Superproject repository to contain the new submodule"},{"name":"url","type":"const char *","comment":"URL for the submodules remote"},{"name":"path","type":"const char *","comment":"Path at which the submodule should be created"},{"name":"use_gitlink","type":"int","comment":"Should workdir contain a gitlink to the repo in .git/modules vs. repo directly in workdir."}],"argline":"git_submodule **submodule,\n\tgit_repository *repo,\n\tconst char *url,\n\tconst char *path,\n\tint use_gitlink","sig":"git_submodule **::git_repository *::const char *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS if submodule already exists, -1 on other errors."},"description":"<p>Set up a new git submodule for checkout.</p>\n","comments":"<p>This does &quot;git submodule add&quot; up to the fetch and checkout of the\nsubmodule contents. It preps a new submodule, creates an entry in\n.gitmodules and creates an empty initialized repository either at the\ngiven path in the working directory or in .git/modules with a gitlink\nfrom the working directory to the new repo.</p>\n\n<p>To fully emulate &quot;git submodule add&quot; call this function, then open the\nsubmodule repo and perform the clone step as needed. Lastly, call\n<code>git_submodule_add_finalize()</code> to wrap up adding the new submodule and\n.gitmodules to the index to be ready to commit.</p>\n","group":"submodule"},"git_submodule_add_finalize":{"type":"function","file":"submodule.h","line":203,"lineto":203,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to finish adding."}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Resolve the setup of a new git submodule.</p>\n","comments":"<p>This should be called on a submodule once you have called add setup\nand done the clone of the submodule. This adds the .gitmodules file\nand the newly cloned submodule to the index to be ready to be committed\n(but doesn&#39;t actually do the commit).</p>\n","group":"submodule"},"git_submodule_add_to_index":{"type":"function","file":"submodule.h","line":215,"lineto":217,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to add to the index"},{"name":"write_index","type":"int","comment":"Boolean if this should immediately write the index file. If you pass this as false, you will have to get the git_index and explicitly call `git_index_write()` on it to save the change."}],"argline":"git_submodule *submodule,\n\tint write_index","sig":"git_submodule *::int","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Add current submodule HEAD commit to index of superproject.</p>\n","comments":"","group":"submodule"},"git_submodule_save":{"type":"function","file":"submodule.h","line":231,"lineto":231,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to write."}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Write submodule settings to .gitmodules file.</p>\n","comments":"<p>This commits any in-memory changes to the submodule to the gitmodules\nfile on disk. You may also be interested in <code>git_submodule_init()</code> which\nwrites submodule info to &quot;.git/config&quot; (which is better for local changes\nto submodule settings) and/or <code>git_submodule_sync()</code> which writes\nsettings about remotes to the actual submodule repository.</p>\n","group":"submodule"},"git_submodule_owner":{"type":"function","file":"submodule.h","line":244,"lineto":244,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"git_repository *","comment":"Pointer to `git_repository`"},"description":"<p>Get the containing repository for a submodule.</p>\n","comments":"<p>This returns a pointer to the repository that contains the submodule.\nThis is a just a reference to the repository that was passed to the\noriginal <code>git_submodule_lookup()</code> call, so if that repository has been\nfreed, then this may be a dangling reference.</p>\n","group":"submodule"},"git_submodule_name":{"type":"function","file":"submodule.h","line":252,"lineto":252,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule name"},"description":"<p>Get the name of submodule.</p>\n","comments":"","group":"submodule"},"git_submodule_path":{"type":"function","file":"submodule.h","line":263,"lineto":263,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule path"},"description":"<p>Get the path to the submodule.</p>\n","comments":"<p>The path is almost always the same as the submodule name, but the\ntwo are actually not required to match.</p>\n","group":"submodule"},"git_submodule_url":{"type":"function","file":"submodule.h","line":271,"lineto":271,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const char *","comment":"Pointer to the submodule url"},"description":"<p>Get the URL for the submodule.</p>\n","comments":"","group":"submodule"},"git_submodule_set_url":{"type":"function","file":"submodule.h","line":287,"lineto":287,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to the submodule object"},{"name":"url","type":"const char *","comment":"URL that should be used for the submodule"}],"argline":"git_submodule *submodule, const char *url","sig":"git_submodule *::const char *","return":{"type":"int","comment":"0 on success, <0 on failure"},"description":"<p>Set the URL for the submodule.</p>\n","comments":"<p>This sets the URL in memory for the submodule. This will be used for\nany following submodule actions while this submodule data is in memory.</p>\n\n<p>After calling this, you may wish to call <code>git_submodule_save()</code> to write\nthe changes back to the &quot;.gitmodules&quot; file and <code>git_submodule_sync()</code> to\nwrite the changes to the checked out submodule repository.</p>\n","group":"submodule"},"git_submodule_index_id":{"type":"function","file":"submodule.h","line":295,"lineto":295,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not in index."},"description":"<p>Get the OID for the submodule in the index.</p>\n","comments":"","group":"submodule"},"git_submodule_head_id":{"type":"function","file":"submodule.h","line":303,"lineto":303,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not in the HEAD."},"description":"<p>Get the OID for the submodule in the current HEAD tree.</p>\n","comments":"","group":"submodule"},"git_submodule_wd_id":{"type":"function","file":"submodule.h","line":316,"lineto":316,"args":[{"name":"submodule","type":"git_submodule *","comment":"Pointer to submodule object"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"const git_oid *","comment":"Pointer to git_oid or NULL if submodule is not checked out."},"description":"<p>Get the OID for the submodule in the current working directory.</p>\n","comments":"<p>This returns the OID that corresponds to looking up &#39;HEAD&#39; in the checked\nout submodule. If there are pending changes in the index or anything\nelse, this won&#39;t notice that. You should call <code>git_submodule_status()</code>\nfor a more complete picture about the state of the working directory.</p>\n","group":"submodule"},"git_submodule_ignore":{"type":"function","file":"submodule.h","line":344,"lineto":345,"args":[],"argline":"_t) git_submodule_ignore(\n\tgit_submodule *submodule)","sig":"","return":{"type":"GIT_EXTERN(","comment":"The current git_submodule_ignore_t valyue what will be used for this submodule."},"description":"<p>Get the ignore rule that will be used for the submodule.</p>\n","comments":"<p>These values control the behavior of <code>git_submodule_status()</code> for this\nsubmodule. There are four ignore values:</p>\n\n<ul>\n<li><strong>GIT_SUBMODULE_IGNORE_NONE</strong> will consider any change to the contents\nof the submodule from a clean checkout to be dirty, including the\naddition of untracked files. This is the default if unspecified.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_UNTRACKED</strong> examines the contents of the\nworking tree (i.e. call <code>git_status_foreach()</code> on the submodule) but\nUNTRACKED files will not count as making the submodule dirty.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_DIRTY</strong> means to only check if the HEAD of the\nsubmodule has moved for status. This is fast since it does not need to\nscan the working tree of the submodule at all.</li>\n<li><strong>GIT_SUBMODULE_IGNORE_ALL</strong> means not to open the submodule repo.\nThe working directory will be consider clean so long as there is a\nchecked out version present.</li>\n</ul>\n\n<p>plus the special <strong>GIT_SUBMODULE_IGNORE_RESET</strong> which can be used with\n<code>git_submodule_set_ignore()</code> to revert to the on-disk setting.</p>\n","group":"submodule"},"git_submodule_set_ignore":{"type":"function","file":"submodule.h","line":363,"lineto":365,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to update"},{"name":"ignore","type":"git_submodule_ignore_t","comment":"The new value for the ignore rule"}],"argline":"git_submodule *submodule,\n\tgit_submodule_ignore_t ignore","sig":"git_submodule *::git_submodule_ignore_t","return":{"type":"git_submodule_ignore_t","comment":"old value for ignore"},"description":"<p>Set the ignore rule for the submodule.</p>\n","comments":"<p>This sets the in-memory ignore rule for the submodule which will\ncontrol the behavior of <code>git_submodule_status()</code>.</p>\n\n<p>To make changes persistent, call <code>git_submodule_save()</code> to write the\nvalue to disk (in the &quot;.gitmodules&quot; and &quot;.git/config&quot; files).</p>\n\n<p>Call with <code>GIT_SUBMODULE_IGNORE_RESET</code> or call <code>git_submodule_reload()</code>\nto revert the in-memory rule to the value that is on disk.</p>\n","group":"submodule"},"git_submodule_update":{"type":"function","file":"submodule.h","line":379,"lineto":380,"args":[],"argline":"_t) git_submodule_update(\n\tgit_submodule *submodule)","sig":"","return":{"type":"GIT_EXTERN(","comment":"The current git_submodule_update_t value that will be used for this submodule."},"description":"<p>Get the update rule that will be used for the submodule.</p>\n","comments":"<p>This value controls the behavior of the <code>git submodule update</code> command.\nThere are four useful values documented with <code>git_submodule_update_t</code>\nplus the <code>GIT_SUBMODULE_UPDATE_RESET</code> which can be used to revert to\nthe on-disk setting.</p>\n","group":"submodule"},"git_submodule_set_update":{"type":"function","file":"submodule.h","line":398,"lineto":400,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to update"},{"name":"update","type":"git_submodule_update_t","comment":"The new value to use"}],"argline":"git_submodule *submodule,\n\tgit_submodule_update_t update","sig":"git_submodule *::git_submodule_update_t","return":{"type":"git_submodule_update_t","comment":"old value for update"},"description":"<p>Set the update rule for the submodule.</p>\n","comments":"<p>The initial value comes from the &quot;.git/config&quot; setting of\n<code>submodule.$name.update</code> for this submodule (which is initialized from\nthe &quot;.gitmodules&quot; file). Using this function sets the update rule in\nmemory for the submodule. Call <code>git_submodule_save()</code> to write out the\nnew update rule.</p>\n\n<p>Calling this again with GIT_SUBMODULE_UPDATE_RESET or calling\n<code>git_submodule_reload()</code> will revert the rule to the on disk value.</p>\n","group":"submodule"},"git_submodule_fetch_recurse_submodules":{"type":"function","file":"submodule.h","line":413,"lineto":414,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int","comment":"0 if fetchRecurseSubmodules is false, 1 if true"},"description":"<p>Read the fetchRecurseSubmodules rule for a submodule.</p>\n","comments":"<p>This accesses the submodule.<name>.fetchRecurseSubmodules value for\nthe submodule that controls fetching behavior for the submodule.</p>\n\n<p>Note that at this time, libgit2 does not honor this setting and the\nfetch functionality current ignores submodules.</p>\n","group":"submodule"},"git_submodule_set_fetch_recurse_submodules":{"type":"function","file":"submodule.h","line":427,"lineto":429,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to modify"},{"name":"fetch_recurse_submodules","type":"int","comment":"Boolean value"}],"argline":"git_submodule *submodule,\n\tint fetch_recurse_submodules","sig":"git_submodule *::int","return":{"type":"int","comment":"old value for fetchRecurseSubmodules"},"description":"<p>Set the fetchRecurseSubmodules rule for a submodule.</p>\n","comments":"<p>This sets the submodule.<name>.fetchRecurseSubmodules value for\nthe submodule. You should call <code>git_submodule_save()</code> if you want\nto persist the new value.</p>\n","group":"submodule"},"git_submodule_init":{"type":"function","file":"submodule.h","line":444,"lineto":444,"args":[{"name":"submodule","type":"git_submodule *","comment":"The submodule to write into the superproject config"},{"name":"overwrite","type":"int","comment":"By default, existing entries will not be overwritten, but setting this to true forces them to be updated."}],"argline":"git_submodule *submodule, int overwrite","sig":"git_submodule *::int","return":{"type":"int","comment":"0 on success, <0 on failure."},"description":"<p>Copy submodule info into &quot;.git/config&quot; file.</p>\n","comments":"<p>Just like &quot;git submodule init&quot;, this copies information about the\nsubmodule into &quot;.git/config&quot;. You can use the accessor functions\nabove to alter the in-memory git_submodule object and control what\nis written to the config, overriding what is in .gitmodules.</p>\n","group":"submodule"},"git_submodule_sync":{"type":"function","file":"submodule.h","line":454,"lineto":454,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Copy submodule remote info into submodule repo.</p>\n","comments":"<p>This copies the information about the submodules URL into the checked out\nsubmodule config, acting like &quot;git submodule sync&quot;. This is useful if\nyou have altered the URL for the submodule (or it has been altered by a\nfetch of upstream changes) and you need to update your local repo.</p>\n","group":"submodule"},"git_submodule_open":{"type":"function","file":"submodule.h","line":468,"lineto":470,"args":[{"name":"repo","type":"git_repository **","comment":"Pointer to the submodule repo which was opened"},{"name":"submodule","type":"git_submodule *","comment":"Submodule to be opened"}],"argline":"git_repository **repo,\n\tgit_submodule *submodule","sig":"git_repository **::git_submodule *","return":{"type":"int","comment":"0 on success, <0 if submodule repo could not be opened."},"description":"<p>Open the repository for a submodule.</p>\n","comments":"<p>This is a newly opened repository object. The caller is responsible for\ncalling <code>git_repository_free()</code> on it when done. Multiple calls to this\nfunction will return distinct <code>git_repository</code> objects. This will only\nwork if the submodule is checked out into the working directory.</p>\n","group":"submodule"},"git_submodule_reload":{"type":"function","file":"submodule.h","line":478,"lineto":478,"args":[{"name":"submodule","type":"git_submodule *"}],"argline":"git_submodule *submodule","sig":"git_submodule *","return":{"type":"int"},"description":"<p>Reread submodule info from config, index, and HEAD.</p>\n","comments":"<p>Call this to reread cached submodule information for this submodule if\nyou have reason to believe that it has changed.</p>\n","group":"submodule"},"git_submodule_reload_all":{"type":"function","file":"submodule.h","line":485,"lineto":485,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"int"},"description":"<p>Reread all submodule info.</p>\n","comments":"<p>Call this to reload all cached submodule information for the repo.</p>\n","group":"submodule"},"git_submodule_status":{"type":"function","file":"submodule.h","line":500,"lineto":502,"args":[{"name":"status","type":"unsigned int *","comment":"Combination of `GIT_SUBMODULE_STATUS` flags"},{"name":"submodule","type":"git_submodule *","comment":"Submodule for which to get status"}],"argline":"unsigned int *status,\n\tgit_submodule *submodule","sig":"unsigned int *::git_submodule *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get the status for a submodule.</p>\n","comments":"<p>This looks at a submodule and tries to determine the status. It\nwill return a combination of the <code>GIT_SUBMODULE_STATUS</code> values above.\nHow deeply it examines the working directory to do this will depend\non the <code>git_submodule_ignore_t</code> value for the submodule - which can be\nset either temporarily or permanently with <code>git_submodule_set_ignore()</code>.</p>\n","group":"submodule","examples":{"status.c":["ex/HEAD/status.html#git_submodule_status-20"]}},"git_submodule_location":{"type":"function","file":"submodule.h","line":518,"lineto":520,"args":[{"name":"location_status","type":"unsigned int *","comment":"Combination of first four `GIT_SUBMODULE_STATUS` flags"},{"name":"submodule","type":"git_submodule *","comment":"Submodule for which to get status"}],"argline":"unsigned int *location_status,\n\tgit_submodule *submodule","sig":"unsigned int *::git_submodule *","return":{"type":"int","comment":"0 on success, <0 on error"},"description":"<p>Get the locations of submodule information.</p>\n","comments":"<p>This is a bit like a very lightweight version of <code>git_submodule_status</code>.\nIt just returns a made of the first four submodule status values (i.e.\nthe ones like GIT_SUBMODULE_STATUS_IN_HEAD, etc) that tell you where the\nsubmodule data comes from (i.e. the HEAD commit, gitmodules file, etc.).\nThis can be useful if you want to know if the submodule is present in the\nworking directory at this point in time, etc.</p>\n","group":"submodule"},"git_commit_create_from_oids":{"type":"function","file":"sys/commit.h","line":32,"lineto":42,"args":[{"name":"oid","type":"git_oid *"},{"name":"repo","type":"git_repository *"},{"name":"update_ref","type":"const char *"},{"name":"author","type":"const git_signature *"},{"name":"committer","type":"const git_signature *"},{"name":"message_encoding","type":"const char *"},{"name":"message","type":"const char *"},{"name":"tree","type":"const git_oid *"},{"name":"parent_count","type":"int"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *update_ref,\n\tconst git_signature *author,\n\tconst git_signature *committer,\n\tconst char *message_encoding,\n\tconst char *message,\n\tconst git_oid *tree,\n\tint parent_count,\n\tconst git_oid *parents[]","sig":"git_oid *::git_repository *::const char *::const git_signature *::const git_signature *::const char *::const char *::const git_oid *::int","return":{"type":"int"},"description":"<p>Create new commit in the repository from a list of <code>git_oid</code> values</p>\n","comments":"<p>See documentation for <code>git_commit_create()</code> for information about the\nparameters, as the meaning is identical excepting that <code>tree</code> and\n<code>parents</code> now take <code>git_oid</code>. This is a dangerous API in that nor\nthe <code>tree</code>, neither the <code>parents</code> list of <code>git_oid</code>s are checked for\nvalidity.</p>\n","group":"commit"},"git_config_add_backend":{"type":"function","file":"sys/config.h","line":89,"lineto":93,"args":[{"name":"cfg","type":"git_config *","comment":"the configuration to add the file to"},{"name":"file","type":"git_config_backend *","comment":"the configuration file (backend) to add"},{"name":"level","type":"git_config_level_t","comment":"the priority level of the backend"},{"name":"force","type":"int","comment":"if a config file already exists for the given priority level, replace it"}],"argline":"git_config *cfg,\n\tgit_config_backend *file,\n\tgit_config_level_t level,\n\tint force","sig":"git_config *::git_config_backend *::git_config_level_t::int","return":{"type":"int","comment":"0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), or error code"},"description":"<p>Add a generic config file instance to an existing config</p>\n","comments":"<p>Note that the configuration object will free the file\nautomatically.</p>\n\n<p>Further queries on this config object will access each\nof the config file instances in order (instances with\na higher priority level will be accessed first).</p>\n","group":"config"},"git_filter_lookup":{"type":"function","file":"sys/filter.h","line":27,"lineto":30,"args":[{"name":"name","type":"const char *","comment":"The name of the filter"}],"argline":"const char *name","sig":"const char *","return":{"type":"git_filter *","comment":"Pointer to the filter object or NULL if not found"},"description":"<p>Look up a filter by name</p>\n","comments":"","group":"filter"},"git_filter_list_new":{"type":"function","file":"sys/filter.h","line":57,"lineto":58,"args":[{"name":"out","type":"git_filter_list **"},{"name":"repo","type":"git_repository *"},{"name":"mode","type":"git_filter_mode_t"}],"argline":"git_filter_list **out, git_repository *repo, git_filter_mode_t mode","sig":"git_filter_list **::git_repository *::git_filter_mode_t","return":{"type":"int"},"description":"<p>Create a new empty filter list</p>\n","comments":"<p>Normally you won&#39;t use this because <code>git_filter_list_load</code> will create\nthe filter list for you, but you can use this in combination with the\n<code>git_filter_lookup</code> and <code>git_filter_list_push</code> functions to assemble\nyour own chains of filters.</p>\n","group":"filter"},"git_filter_list_push":{"type":"function","file":"sys/filter.h","line":73,"lineto":74,"args":[{"name":"fl","type":"git_filter_list *"},{"name":"filter","type":"git_filter *"},{"name":"payload","type":"void *"}],"argline":"git_filter_list *fl, git_filter *filter, void *payload","sig":"git_filter_list *::git_filter *::void *","return":{"type":"int"},"description":"<p>Add a filter to a filter list with the given payload.</p>\n","comments":"<p>Normally you won&#39;t have to do this because the filter list is created\nby calling the &quot;check&quot; function on registered filters when the filter\nattributes are set, but this does allow more direct manipulation of\nfilter lists when desired.</p>\n\n<p>Note that normally the &quot;check&quot; function can set up a payload for the\nfilter. Using this function, you can either pass in a payload if you\nknow the expected payload format, or you can pass NULL. Some filters\nmay fail with a NULL payload. Good luck!</p>\n","group":"filter"},"git_filter_list_length":{"type":"function","file":"sys/filter.h","line":87,"lineto":87,"args":[{"name":"fl","type":"const git_filter_list *","comment":"A filter list"}],"argline":"const git_filter_list *fl","sig":"const git_filter_list *","return":{"type":"size_t","comment":"The number of filters in the list"},"description":"<p>Look up how many filters are in the list</p>\n","comments":"<p>We will attempt to apply all of these filters to any data passed in,\nbut note that the filter apply action still has the option of skipping\ndata that is passed in (for example, the CRLF filter will skip data\nthat appears to be binary).</p>\n","group":"filter"},"git_filter_source_repo":{"type":"function","file":"sys/filter.h","line":97,"lineto":97,"args":[{"name":"src","type":"const git_filter_source *"}],"argline":"const git_filter_source *src","sig":"const git_filter_source *","return":{"type":"git_repository *"},"description":"<p>Get the repository that the source data is coming from.</p>\n","comments":"","group":"filter"},"git_filter_source_path":{"type":"function","file":"sys/filter.h","line":102,"lineto":102,"args":[{"name":"src","type":"const git_filter_source *"}],"argline":"const git_filter_source *src","sig":"const git_filter_source *","return":{"type":"const char *"},"description":"<p>Get the path that the source data is coming from.</p>\n","comments":"","group":"filter"},"git_filter_source_filemode":{"type":"function","file":"sys/filter.h","line":108,"lineto":108,"args":[{"name":"src","type":"const git_filter_source *"}],"argline":"const git_filter_source *src","sig":"const git_filter_source *","return":{"type":"uint16_t"},"description":"<p>Get the file mode of the source file\nIf the mode is unknown, this will return 0</p>\n","comments":"","group":"filter"},"git_filter_source_id":{"type":"function","file":"sys/filter.h","line":115,"lineto":115,"args":[{"name":"src","type":"const git_filter_source *"}],"argline":"const git_filter_source *src","sig":"const git_filter_source *","return":{"type":"const git_oid *"},"description":"<p>Get the OID of the source\nIf the OID is unknown (often the case with GIT_FILTER_CLEAN) then\nthis will return NULL.</p>\n","comments":"","group":"filter"},"git_filter_source_mode":{"type":"function","file":"sys/filter.h","line":120,"lineto":131,"args":[{"name":"src","type":"const git_filter_source *"}],"argline":"const git_filter_source *src","sig":"const git_filter_source *","return":{"type":"git_filter_mode_t"},"description":"<p>Get the git_filter_mode_t to be applied</p>\n","comments":"","group":"filter"},"git_filter_register":{"type":"function","file":"sys/filter.h","line":272,"lineto":273,"args":[{"name":"name","type":"const char *","comment":"A name by which the filter can be referenced. Attempting to register with an in-use name will return GIT_EEXISTS."},{"name":"filter","type":"git_filter *","comment":"The filter definition. This pointer will be stored as is by libgit2 so it must be a durable allocation (either static or on the heap)."},{"name":"priority","type":"int","comment":"The priority for filter application"}],"argline":"const char *name, git_filter *filter, int priority","sig":"const char *::git_filter *::int","return":{"type":"int","comment":"0 on successful registry, error code <0 on failure"},"description":"<p>Register a filter under a given name with a given priority.</p>\n","comments":"<p>As mentioned elsewhere, the initialize callback will not be invoked\nimmediately. It is deferred until the filter is used in some way.</p>\n\n<p>A filter&#39;s attribute checks and <code>check</code> and <code>apply</code> callbacks will be\nissued in order of <code>priority</code> on smudge (to workdir), and in reverse\norder of <code>priority</code> on clean (to odb).</p>\n\n<p>Two filters are preregistered with libgit2:\n- GIT_FILTER_CRLF with priority 0\n- GIT_FILTER_IDENT with priority 100</p>\n\n<p>Currently the filter registry is not thread safe, so any registering or\nderegistering of filters must be done outside of any possible usage of\nthe filters (i.e. during application setup or shutdown).</p>\n","group":"filter"},"git_filter_unregister":{"type":"function","file":"sys/filter.h","line":288,"lineto":288,"args":[{"name":"name","type":"const char *","comment":"The name under which the filter was registered"}],"argline":"const char *name","sig":"const char *","return":{"type":"int","comment":"0 on success, error code <0 on failure"},"description":"<p>Remove the filter with the given name</p>\n","comments":"<p>Attempting to remove the builtin libgit2 filters is not permitted and\nwill return an error.</p>\n\n<p>Currently the filter registry is not thread safe, so any registering or\nderegistering of filters must be done outside of any possible usage of\nthe filters (i.e. during application setup or shutdown).</p>\n","group":"filter"},"git_index_name_entrycount":{"type":"function","file":"sys/index.h","line":45,"lineto":45,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"unsigned int","comment":"integer of count of current filename conflict entries"},"description":"<p>Get the count of filename conflict entries currently in the index.</p>\n","comments":"","group":"index"},"git_index_name_get_byindex":{"type":"function","file":"sys/index.h","line":57,"lineto":58,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_name_entry *","comment":"a pointer to the filename conflict entry; NULL if out of bounds"},"description":"<p>Get a filename conflict entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_name_add":{"type":"function","file":"sys/index.h","line":68,"lineto":69,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"ancestor","type":"const char *","comment":"the path of the file as it existed in the ancestor"},{"name":"ours","type":"const char *","comment":"the path of the file as it existed in our tree"},{"name":"theirs","type":"const char *","comment":"the path of the file as it existed in their tree"}],"argline":"git_index *index,\n\tconst char *ancestor, const char *ours, const char *theirs","sig":"git_index *::const char *::const char *::const char *","return":{"type":"int"},"description":"<p>Record the filenames involved in a rename conflict.</p>\n","comments":"","group":"index"},"git_index_name_clear":{"type":"function","file":"sys/index.h","line":76,"lineto":76,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all filename conflict entries.</p>\n","comments":"","group":"index"},"git_index_reuc_entrycount":{"type":"function","file":"sys/index.h","line":93,"lineto":93,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"unsigned int","comment":"integer of count of current resolve undo entries"},"description":"<p>Get the count of resolve undo entries currently in the index.</p>\n","comments":"","group":"index"},"git_index_reuc_find":{"type":"function","file":"sys/index.h","line":104,"lineto":104,"args":[{"name":"at_pos","type":"size_t *","comment":"the address to which the position of the reuc entry is written (optional)"},{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"size_t *at_pos, git_index *index, const char *path","sig":"size_t *::git_index *::const char *","return":{"type":"int","comment":"0 if found, < 0 otherwise (GIT_ENOTFOUND)"},"description":"<p>Finds the resolve undo entry that points to the given path in the Git\nindex.</p>\n","comments":"","group":"index"},"git_index_reuc_get_bypath":{"type":"function","file":"sys/index.h","line":116,"lineto":116,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"path to search"}],"argline":"git_index *index, const char *path","sig":"git_index *::const char *","return":{"type":"const git_index_reuc_entry *","comment":"the resolve undo entry; NULL if not found"},"description":"<p>Get a resolve undo entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_reuc_get_byindex":{"type":"function","file":"sys/index.h","line":128,"lineto":128,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"the position of the entry"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"const git_index_reuc_entry *","comment":"a pointer to the resolve undo entry; NULL if out of bounds"},"description":"<p>Get a resolve undo entry from the index.</p>\n","comments":"<p>The returned entry is read-only and should not be modified\nor freed by the caller.</p>\n","group":"index"},"git_index_reuc_add":{"type":"function","file":"sys/index.h","line":152,"lineto":155,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"path","type":"const char *","comment":"filename to add"},{"name":"ancestor_mode","type":"int","comment":"mode of the ancestor file"},{"name":"ancestor_id","type":"const git_oid *","comment":"oid of the ancestor file"},{"name":"our_mode","type":"int","comment":"mode of our file"},{"name":"our_id","type":"const git_oid *","comment":"oid of our file"},{"name":"their_mode","type":"int","comment":"mode of their file"},{"name":"their_id","type":"const git_oid *","comment":"oid of their file"}],"argline":"git_index *index, const char *path,\n\tint ancestor_mode, const git_oid *ancestor_id,\n\tint our_mode, const git_oid *our_id,\n\tint their_mode, const git_oid *their_id","sig":"git_index *::const char *::int::const git_oid *::int::const git_oid *::int::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Adds a resolve undo entry for a file based on the given parameters.</p>\n","comments":"<p>The resolve undo entry contains the OIDs of files that were involved\nin a merge conflict after the conflict has been resolved. This allows\nconflicts to be re-resolved later.</p>\n\n<p>If there exists a resolve undo entry for the given path in the index,\nit will be removed.</p>\n\n<p>This method will fail in bare index instances.</p>\n","group":"index"},"git_index_reuc_remove":{"type":"function","file":"sys/index.h","line":164,"lineto":164,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"},{"name":"n","type":"size_t","comment":"position of the resolve undo entry to remove"}],"argline":"git_index *index, size_t n","sig":"git_index *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Remove an resolve undo entry from the index</p>\n","comments":"","group":"index"},"git_index_reuc_clear":{"type":"function","file":"sys/index.h","line":171,"lineto":171,"args":[{"name":"index","type":"git_index *","comment":"an existing index object"}],"argline":"git_index *index","sig":"git_index *","return":{"type":"void"},"description":"<p>Remove all resolve undo entries from the index</p>\n","comments":"","group":"index"},"git_refdb_backend_fs":{"type":"function","file":"sys/refdb_backend.h","line":138,"lineto":140,"args":[{"name":"backend_out","type":"git_refdb_backend **","comment":"Output pointer to the git_refdb_backend object"},{"name":"repo","type":"git_repository *","comment":"Git repository to access"}],"argline":"git_refdb_backend **backend_out,\n\tgit_repository *repo","sig":"git_refdb_backend **::git_repository *","return":{"type":"int","comment":"0 on success, <0 error code on failure"},"description":"<p>Constructors for default filesystem-based refdb backend</p>\n","comments":"<p>Under normal usage, this is called for you when the repository is\nopened / created, but you can use this to explicitly construct a\nfilesystem refdb backend for a repository.</p>\n","group":"refdb"},"git_refdb_set_backend":{"type":"function","file":"sys/refdb_backend.h","line":152,"lineto":158,"args":[{"name":"refdb","type":"git_refdb *","comment":"database to add the backend to"},{"name":"backend","type":"git_refdb_backend *","comment":"pointer to a git_refdb_backend instance"}],"argline":"git_refdb *refdb,\n\tgit_refdb_backend *backend","sig":"git_refdb *::git_refdb_backend *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Sets the custom backend to an existing reference DB</p>\n","comments":"<p>The <code>git_refdb</code> will take ownership of the <code>git_refdb_backend</code> so you\nshould NOT free it after calling this function.</p>\n","group":"refdb"},"git_reference__alloc":{"type":"function","file":"sys/refs.h","line":22,"lineto":25,"args":[{"name":"name","type":"const char *","comment":"the reference name"},{"name":"oid","type":"const git_oid *","comment":"the object id for a direct reference"},{"name":"peel","type":"const git_oid *","comment":"the first non-tag object's OID, or NULL"}],"argline":"const char *name,\n\tconst git_oid *oid,\n\tconst git_oid *peel","sig":"const char *::const git_oid *::const git_oid *","return":{"type":"git_reference *","comment":"the created git_reference or NULL on error"},"description":"<p>Create a new direct reference from an OID.</p>\n","comments":"","group":"reference"},"git_reference__alloc_symbolic":{"type":"function","file":"sys/refs.h","line":34,"lineto":38,"args":[{"name":"name","type":"const char *","comment":"the reference name"},{"name":"target","type":"const char *","comment":"the target for a symbolic reference"}],"argline":"const char *name,\n\tconst char *target","sig":"const char *::const char *","return":{"type":"git_reference *","comment":"the created git_reference or NULL on error"},"description":"<p>Create a new symbolic reference.</p>\n","comments":"","group":"reference"},"git_repository_new":{"type":"function","file":"sys/repository.h","line":28,"lineto":28,"args":[{"name":"out","type":"git_repository **","comment":"The blank repository"}],"argline":"git_repository **out","sig":"git_repository **","return":{"type":"int","comment":"0 on success, or an error code"},"description":"<p>Create a new repository with neither backends nor config object</p>\n","comments":"<p>Note that this is only useful if you wish to associate the repository\nwith a non-filesystem-backed object database and config store.</p>\n","group":"repository"},"git_repository__cleanup":{"type":"function","file":"sys/repository.h","line":42,"lineto":42,"args":[{"name":"repo","type":"git_repository *"}],"argline":"git_repository *repo","sig":"git_repository *","return":{"type":"void"},"description":"<p>Reset all the internal state in a repository.</p>\n","comments":"<p>This will free all the mapped memory and internal objects\nof the repository and leave it in a &quot;blank&quot; state.</p>\n\n<p>There&#39;s no need to call this function directly unless you&#39;re\ntrying to aggressively cleanup the repo before its\ndeallocation. <code>git_repository_free</code> already performs this operation\nbefore deallocation the repo.</p>\n","group":"repository"},"git_repository_set_config":{"type":"function","file":"sys/repository.h","line":57,"lineto":57,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"config","type":"git_config *","comment":"A Config object"}],"argline":"git_repository *repo, git_config *config","sig":"git_repository *::git_config *","return":{"type":"void"},"description":"<p>Set the configuration file for this repository</p>\n","comments":"<p>This configuration file will be used for all configuration\nqueries involving this repository.</p>\n\n<p>The repository will keep a reference to the config file;\nthe user must still free the config after setting it\nto the repository, or it will leak.</p>\n","group":"repository"},"git_repository_set_odb":{"type":"function","file":"sys/repository.h","line":72,"lineto":72,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"odb","type":"git_odb *","comment":"An ODB object"}],"argline":"git_repository *repo, git_odb *odb","sig":"git_repository *::git_odb *","return":{"type":"void"},"description":"<p>Set the Object Database for this repository</p>\n","comments":"<p>The ODB will be used for all object-related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the ODB; the user\nmust still free the ODB object after setting it to the\nrepository, or it will leak.</p>\n","group":"repository"},"git_repository_set_refdb":{"type":"function","file":"sys/repository.h","line":87,"lineto":87,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"refdb","type":"git_refdb *","comment":"An refdb object"}],"argline":"git_repository *repo, git_refdb *refdb","sig":"git_repository *::git_refdb *","return":{"type":"void"},"description":"<p>Set the Reference Database Backend for this repository</p>\n","comments":"<p>The refdb will be used for all reference related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the refdb; the user\nmust still free the refdb object after setting it to the\nrepository, or it will leak.</p>\n","group":"repository"},"git_repository_set_index":{"type":"function","file":"sys/repository.h","line":102,"lineto":102,"args":[{"name":"repo","type":"git_repository *","comment":"A repository object"},{"name":"index","type":"git_index *","comment":"An index object"}],"argline":"git_repository *repo, git_index *index","sig":"git_repository *::git_index *","return":{"type":"void"},"description":"<p>Set the index file for this repository</p>\n","comments":"<p>This index will be used for all index-related operations\ninvolving this repository.</p>\n\n<p>The repository will keep a reference to the index file;\nthe user must still free the index after setting it\nto the repository, or it will leak.</p>\n","group":"repository"},"git_tag_lookup":{"type":"function","file":"tag.h","line":33,"lineto":34,"args":[{"name":"out","type":"git_tag **","comment":"pointer to the looked up tag"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tag."},{"name":"id","type":"const git_oid *","comment":"identity of the tag to locate."}],"argline":"git_tag **out, git_repository *repo, const git_oid *id","sig":"git_tag **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tag object from the repository.</p>\n","comments":"","group":"tag","examples":{"general.c":["ex/HEAD/general.html#git_tag_lookup-69"]}},"git_tag_lookup_prefix":{"type":"function","file":"tag.h","line":48,"lineto":49,"args":[{"name":"out","type":"git_tag **","comment":"pointer to the looked up tag"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tag."},{"name":"id","type":"const git_oid *","comment":"identity of the tag to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_tag **out, git_repository *repo, const git_oid *id, size_t len","sig":"git_tag **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tag object from the repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"tag"},"git_tag_free":{"type":"function","file":"tag.h","line":61,"lineto":61,"args":[{"name":"tag","type":"git_tag *","comment":"the tag to close"}],"argline":"git_tag *tag","sig":"git_tag *","return":{"type":"void"},"description":"<p>Close an open tag</p>\n","comments":"<p>You can no longer use the git_tag pointer after this call.</p>\n\n<p>IMPORTANT: You MUST call this method when you are through with a tag to\nrelease memory. Failure to do so will cause a memory leak.</p>\n","group":"tag"},"git_tag_id":{"type":"function","file":"tag.h","line":69,"lineto":69,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_oid *","comment":"object identity for the tag."},"description":"<p>Get the id of a tag.</p>\n","comments":"","group":"tag"},"git_tag_owner":{"type":"function","file":"tag.h","line":77,"lineto":77,"args":[{"name":"tag","type":"const git_tag *","comment":"A previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"git_repository *","comment":"Repository that contains this tag."},"description":"<p>Get the repository that contains the tag.</p>\n","comments":"","group":"tag"},"git_tag_target":{"type":"function","file":"tag.h","line":89,"lineto":89,"args":[{"name":"target_out","type":"git_object **","comment":"pointer where to store the target"},{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"git_object **target_out, const git_tag *tag","sig":"git_object **::const git_tag *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Get the tagged object of a tag</p>\n","comments":"<p>This method performs a repository lookup for the\ngiven object and returns it</p>\n","group":"tag","examples":{"general.c":["ex/HEAD/general.html#git_tag_target-70"]}},"git_tag_target_id":{"type":"function","file":"tag.h","line":97,"lineto":97,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_oid *","comment":"pointer to the OID"},"description":"<p>Get the OID of the tagged object of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_target_id-33"]}},"git_tag_target_type":{"type":"function","file":"tag.h","line":105,"lineto":105,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"git_otype","comment":"type of the tagged object"},"description":"<p>Get the type of a tag&#39;s tagged object</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_target_type-34"],"general.c":["ex/HEAD/general.html#git_tag_target_type-71"]}},"git_tag_name":{"type":"function","file":"tag.h","line":113,"lineto":113,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const char *","comment":"name of the tag"},"description":"<p>Get the name of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_name-35"],"general.c":["ex/HEAD/general.html#git_tag_name-72"]}},"git_tag_tagger":{"type":"function","file":"tag.h","line":121,"lineto":121,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const git_signature *","comment":"reference to the tag's author or NULL when unspecified"},"description":"<p>Get the tagger (author) of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_tagger-36"]}},"git_tag_message":{"type":"function","file":"tag.h","line":129,"lineto":129,"args":[{"name":"tag","type":"const git_tag *","comment":"a previously loaded tag."}],"argline":"const git_tag *tag","sig":"const git_tag *","return":{"type":"const char *","comment":"message of the tag or NULL when unspecified"},"description":"<p>Get the message of a tag</p>\n","comments":"","group":"tag","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tag_message-37","ex/HEAD/cat-file.html#git_tag_message-38"],"general.c":["ex/HEAD/general.html#git_tag_message-73"]}},"git_tag_create":{"type":"function","file":"tag.h","line":171,"lineto":178,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag. If the tag already exists, this parameter will be the oid of the existing tag, and the function will return a GIT_EEXISTS error code."},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"tagger","type":"const git_signature *","comment":"Signature of the tagger for this tag, and of the tagging time"},{"name":"message","type":"const char *","comment":"Full message for this tag"},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tconst git_signature *tagger,\n\tconst char *message,\n\tint force","sig":"git_oid *::git_repository *::const char *::const git_object *::const git_signature *::const char *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code A tag object is written to the ODB, and a proper reference is written in the /refs/tags folder, pointing to it"},"description":"<p>Create a new tag in the repository from an object</p>\n","comments":"<p>A new reference will also be created pointing to\nthis tag object. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The message will not be cleaned up. This can be achieved\nthrough <code>git_message_prettify()</code>.</p>\n\n<p>The tag name will be checked for validity. You must avoid\nthe characters &#39;~&#39;, &#39;^&#39;, &#39;:&#39;, &#39;\\&#39;, &#39;?&#39;, &#39;[&#39;, and &#39;*&#39;, and the\nsequences &quot;..&quot; and &quot;@{&quot; which have special meaning to revparse.</p>\n","group":"tag"},"git_tag_annotation_create":{"type":"function","file":"tag.h","line":203,"lineto":209,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"tagger","type":"const git_signature *","comment":"Signature of the tagger for this tag, and of the tagging time"},{"name":"message","type":"const char *","comment":"Full message for this tag"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tconst git_signature *tagger,\n\tconst char *message","sig":"git_oid *::git_repository *::const char *::const git_object *::const git_signature *::const char *","return":{"type":"int","comment":"0 on success or an error code"},"description":"<p>Create a new tag in the object database pointing to a git_object</p>\n","comments":"<p>The message will not be cleaned up. This can be achieved\nthrough <code>git_message_prettify()</code>.</p>\n","group":"tag"},"git_tag_create_frombuffer":{"type":"function","file":"tag.h","line":220,"lineto":224,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the newly created tag"},{"name":"repo","type":"git_repository *","comment":"Repository where to store the tag"},{"name":"buffer","type":"const char *","comment":"Raw tag data"},{"name":"force","type":"int","comment":"Overwrite existing tags"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *buffer,\n\tint force","sig":"git_oid *::git_repository *::const char *::int","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Create a new tag in the repository from a buffer</p>\n","comments":"","group":"tag"},"git_tag_create_lightweight":{"type":"function","file":"tag.h","line":256,"lineto":261,"args":[{"name":"oid","type":"git_oid *","comment":"Pointer where to store the OID of the provided target object. If the tag already exists, this parameter will be filled with the oid of the existing pointed object and the function will return a GIT_EEXISTS error code."},{"name":"repo","type":"git_repository *","comment":"Repository where to store the lightweight tag"},{"name":"tag_name","type":"const char *","comment":"Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"},{"name":"target","type":"const git_object *","comment":"Object to which this tag points. This object must belong to the given `repo`."},{"name":"force","type":"int","comment":"Overwrite existing references"}],"argline":"git_oid *oid,\n\tgit_repository *repo,\n\tconst char *tag_name,\n\tconst git_object *target,\n\tint force","sig":"git_oid *::git_repository *::const char *::const git_object *::int","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code A proper reference is written in the /refs/tags folder, pointing to the provided target object"},"description":"<p>Create a new lightweight tag pointing at a target object</p>\n","comments":"<p>A new direct reference will be created pointing to\nthis target object. If <code>force</code> is true and a reference\nalready exists with the given name, it&#39;ll be replaced.</p>\n\n<p>The tag name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"tag"},"git_tag_delete":{"type":"function","file":"tag.h","line":276,"lineto":278,"args":[{"name":"repo","type":"git_repository *","comment":"Repository where lives the tag"},{"name":"tag_name","type":"const char *","comment":"Name of the tag to be deleted; this name is validated for consistency."}],"argline":"git_repository *repo,\n\tconst char *tag_name","sig":"git_repository *::const char *","return":{"type":"int","comment":"0 on success, GIT_EINVALIDSPEC or an error code"},"description":"<p>Delete an existing tag reference.</p>\n","comments":"<p>The tag name will be checked for validity.\nSee <code>git_tag_create()</code> for rules about valid names.</p>\n","group":"tag"},"git_tag_list":{"type":"function","file":"tag.h","line":293,"lineto":295,"args":[{"name":"tag_names","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the tag names will be stored"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the tags"}],"argline":"git_strarray *tag_names,\n\tgit_repository *repo","sig":"git_strarray *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the tags in the Repository</p>\n","comments":"<p>The string array will be filled with the names of the\nmatching tags; these values are owned by the user and\nshould be free&#39;d manually when no longer needed, using\n<code>git_strarray_free</code>.</p>\n","group":"tag"},"git_tag_list_match":{"type":"function","file":"tag.h","line":315,"lineto":321,"args":[{"name":"tag_names","type":"git_strarray *","comment":"Pointer to a git_strarray structure where the tag names will be stored"},{"name":"pattern","type":"const char *","comment":"Standard fnmatch pattern"},{"name":"repo","type":"git_repository *","comment":"Repository where to find the tags"}],"argline":"git_strarray *tag_names,\n\tconst char *pattern,\n\tgit_repository *repo","sig":"git_strarray *::const char *::git_repository *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Fill a list with all the tags in the Repository\nwhich name match a defined pattern</p>\n","comments":"<p>If an empty pattern is provided, all the tags\nwill be returned.</p>\n\n<p>The string array will be filled with the names of the\nmatching tags; these values are owned by the user and\nshould be free&#39;d manually when no longer needed, using\n<code>git_strarray_free</code>.</p>\n","group":"tag"},"git_tag_foreach":{"type":"function","file":"tag.h","line":330,"lineto":333,"args":[{"name":"repo","type":"git_repository *","comment":"Repository"},{"name":"callback","type":"git_tag_foreach_cb","comment":"Callback function"},{"name":"payload","type":"void *","comment":"Pointer to callback data (optional)"}],"argline":"git_repository *repo,\n\tgit_tag_foreach_cb callback,\n\tvoid *payload","sig":"git_repository *::git_tag_foreach_cb::void *","return":{"type":"int"},"description":"<p>Call callback `cb&#39; for each tag in the repository</p>\n","comments":"","group":"tag"},"git_tag_peel":{"type":"function","file":"tag.h","line":346,"lineto":348,"args":[{"name":"tag_target_out","type":"git_object **","comment":"Pointer to the peeled git_object"},{"name":"tag","type":"const git_tag *","comment":"_target_out Pointer to the peeled git_object"}],"argline":"git_object **tag_target_out,\n\tconst git_tag *tag","sig":"git_object **::const git_tag *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Recursively peel a tag until a non tag git_object is found</p>\n","comments":"<p>The retrieved <code>tag_target</code> object is owned by the repository\nand should be closed with the <code>git_object_free</code> method.</p>\n","group":"tag"},"git_threads_init":{"type":"function","file":"threads.h","line":33,"lineto":33,"args":[],"argline":"void","sig":"","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Init the threading system.</p>\n","comments":"<p>If libgit2 has been built with GIT_THREADS\non, this function must be called once before\nany other library functions.</p>\n\n<p>If libgit2 has been built without GIT_THREADS\nsupport, this function is a no-op.</p>\n","group":"threads","examples":{"add.c":["ex/HEAD/add.html#git_threads_init-9"],"cat-file.c":["ex/HEAD/cat-file.html#git_threads_init-39"],"diff.c":["ex/HEAD/diff.html#git_threads_init-20"],"init.c":["ex/HEAD/init.html#git_threads_init-14"],"log.c":["ex/HEAD/log.html#git_threads_init-53"],"network/git2.c":["ex/HEAD/network/git2.html#git_threads_init-5"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_threads_init-18"],"showindex.c":["ex/HEAD/showindex.html#git_threads_init-11"]}},"git_threads_shutdown":{"type":"function","file":"threads.h","line":45,"lineto":45,"args":[],"argline":"void","sig":"","return":{"type":"void"},"description":"<p>Shutdown the threading system.</p>\n","comments":"<p>If libgit2 has been built with GIT_THREADS\non, this function must be called before shutting\ndown the library.</p>\n\n<p>If libgit2 has been built without GIT_THREADS\nsupport, this function is a no-op.</p>\n","group":"threads","examples":{"add.c":["ex/HEAD/add.html#git_threads_shutdown-10"],"cat-file.c":["ex/HEAD/cat-file.html#git_threads_shutdown-40"],"diff.c":["ex/HEAD/diff.html#git_threads_shutdown-21"],"init.c":["ex/HEAD/init.html#git_threads_shutdown-15"],"log.c":["ex/HEAD/log.html#git_threads_shutdown-54"],"rev-parse.c":["ex/HEAD/rev-parse.html#git_threads_shutdown-19"],"showindex.c":["ex/HEAD/showindex.html#git_threads_shutdown-12"]}},"git_trace_set":{"type":"function","file":"trace.h","line":63,"lineto":63,"args":[{"name":"level","type":"git_trace_level_t","comment":"Level to set tracing to"},{"name":"cb","type":"git_trace_callback","comment":"Function to call with trace data"}],"argline":"git_trace_level_t level, git_trace_callback cb","sig":"git_trace_level_t::git_trace_callback","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Sets the system tracing configuration to the specified level with the\nspecified callback. When system events occur at a level equal to, or\nlower than, the given level they will be reported to the given callback.</p>\n","comments":"","group":"trace"},"git_cred_has_username":{"type":"function","file":"transport.h","line":84,"lineto":84,"args":[{"name":"cred","type":"git_cred *","comment":"object to check"}],"argline":"git_cred *cred","sig":"git_cred *","return":{"type":"int","comment":"1 if the credential object has non-NULL username, 0 otherwise"},"description":"<p>Check whether a credential object contains username information.</p>\n","comments":"","group":"cred"},"git_cred_userpass_plaintext_new":{"type":"function","file":"transport.h","line":95,"lineto":98,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"The username of the credential."},{"name":"password","type":"const char *","comment":"The password of the credential."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *password","sig":"git_cred **::const char *::const char *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new plain-text username and password credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred","examples":{"network/common.c":["ex/HEAD/network/common.html#git_cred_userpass_plaintext_new-1"]}},"git_cred_ssh_keyfile_passphrase_new":{"type":"function","file":"transport.h","line":111,"lineto":116,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"username to use to authenticate"},{"name":"publickey","type":"const char *","comment":"The path to the public key of the credential."},{"name":"privatekey","type":"const char *","comment":"The path to the private key of the credential."},{"name":"passphrase","type":"const char *","comment":"The passphrase of the credential."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *publickey,\n\tconst char *privatekey,\n const char *passphrase","sig":"git_cred **::const char *::const char *::const char *::const char *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new ssh key file and passphrase credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred"},"git_cred_ssh_publickey_new":{"type":"function","file":"transport.h","line":130,"lineto":136,"args":[{"name":"out","type":"git_cred **","comment":"The newly created credential object."},{"name":"username","type":"const char *","comment":"username to use to authenticate"},{"name":"publickey","type":"const char *","comment":"The bytes of the public key."},{"name":"publickey_len","type":"size_t","comment":"The length of the public key in bytes."},{"name":"sign_fn","type":"git_cred_sign_callback","comment":"The callback method for authenticating."},{"name":"sign_data","type":"void *","comment":"The abstract data sent to the sign_callback method."}],"argline":"git_cred **out,\n\tconst char *username,\n\tconst char *publickey,\n size_t publickey_len,\n git_cred_sign_callback sign_fn,\n void *sign_data","sig":"git_cred **::const char *::const char *::size_t::git_cred_sign_callback::void *","return":{"type":"int","comment":"0 for success or an error code for failure"},"description":"<p>Creates a new ssh public key credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n","comments":"","group":"cred"},"git_transport_new":{"type":"function","file":"transport.h","line":251,"lineto":257,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"url","type":"const char *","comment":"The URL to connect to"}],"argline":"git_transport **out, git_remote *owner, const char *url","sig":"git_transport **::git_remote *::const char *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Function to use to create a transport from a URL. The transport database\nis scanned to find a transport that implements the scheme of the URI (i.e.\ngit:// or http://) and a transport object is returned to the caller.</p>\n","comments":"","group":"transport"},"git_transport_dummy":{"type":"function","file":"transport.h","line":267,"lineto":270,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"You must pass NULL for this parameter."}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the dummy transport.</p>\n","comments":"","group":"transport"},"git_transport_local":{"type":"function","file":"transport.h","line":280,"lineto":283,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"You must pass NULL for this parameter."}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the local transport.</p>\n","comments":"","group":"transport"},"git_transport_smart":{"type":"function","file":"transport.h","line":293,"lineto":382,"args":[{"name":"out","type":"git_transport **","comment":"The newly created transport (out)"},{"name":"owner","type":"git_remote *","comment":"The git_remote which will own this transport"},{"name":"payload","type":"void *","comment":"A pointer to a git_smart_subtransport_definition"}],"argline":"git_transport **out,\n\tgit_remote *owner,\n\t void *payload","sig":"git_transport **::git_remote *::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the smart transport.</p>\n","comments":"","group":"transport"},"git_smart_subtransport_http":{"type":"function","file":"transport.h","line":393,"lineto":395,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the http subtransport. This subtransport\nalso supports https. On Win32, this subtransport may be implemented\nusing the WinHTTP library.</p>\n","comments":"","group":"smart"},"git_smart_subtransport_git":{"type":"function","file":"transport.h","line":404,"lineto":406,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the git subtransport.</p>\n","comments":"","group":"smart"},"git_smart_subtransport_ssh":{"type":"function","file":"transport.h","line":415,"lineto":421,"args":[{"name":"out","type":"git_smart_subtransport **","comment":"The newly created subtransport"},{"name":"owner","type":"git_transport*","comment":"The smart transport to own this subtransport"}],"argline":"git_smart_subtransport **out,\n\tgit_transport* owner","sig":"git_smart_subtransport **::git_transport*","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Create an instance of the ssh subtransport.</p>\n","comments":"","group":"smart"},"git_tree_lookup":{"type":"function","file":"tree.h","line":32,"lineto":33,"args":[{"name":"out","type":"git_tree **","comment":"Pointer to the looked up tree"},{"name":"repo","type":"git_repository *","comment":"The repo to use when locating the tree."},{"name":"id","type":"const git_oid *","comment":"Identity of the tree to locate."}],"argline":"git_tree **out, git_repository *repo, const git_oid *id","sig":"git_tree **::git_repository *::const git_oid *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tree object from the repository.</p>\n","comments":"","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_lookup-74","ex/HEAD/general.html#git_tree_lookup-75"],"init.c":["ex/HEAD/init.html#git_tree_lookup-16"]}},"git_tree_lookup_prefix":{"type":"function","file":"tree.h","line":47,"lineto":51,"args":[{"name":"out","type":"git_tree **","comment":"pointer to the looked up tree"},{"name":"repo","type":"git_repository *","comment":"the repo to use when locating the tree."},{"name":"id","type":"const git_oid *","comment":"identity of the tree to locate."},{"name":"len","type":"size_t","comment":"the length of the short identifier"}],"argline":"git_tree **out,\n\tgit_repository *repo,\n\tconst git_oid *id,\n\tsize_t len","sig":"git_tree **::git_repository *::const git_oid *::size_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Lookup a tree object from the repository,\ngiven a prefix of its identifier (short id).</p>\n","comments":"<p>@see git_object_lookup_prefix</p>\n","group":"tree"},"git_tree_free":{"type":"function","file":"tree.h","line":63,"lineto":63,"args":[{"name":"tree","type":"git_tree *","comment":"The tree to close"}],"argline":"git_tree *tree","sig":"git_tree *","return":{"type":"void"},"description":"<p>Close an open tree</p>\n","comments":"<p>You can no longer use the git_tree pointer after this call.</p>\n\n<p>IMPORTANT: You MUST call this method when you stop using a tree to\nrelease memory. Failure to do so will cause a memory leak.</p>\n","group":"tree","examples":{"diff.c":["ex/HEAD/diff.html#git_tree_free-22","ex/HEAD/diff.html#git_tree_free-23"],"init.c":["ex/HEAD/init.html#git_tree_free-17"],"log.c":["ex/HEAD/log.html#git_tree_free-55","ex/HEAD/log.html#git_tree_free-56","ex/HEAD/log.html#git_tree_free-57","ex/HEAD/log.html#git_tree_free-58","ex/HEAD/log.html#git_tree_free-59"]}},"git_tree_id":{"type":"function","file":"tree.h","line":71,"lineto":71,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"const git_oid *","comment":"object identity for the tree."},"description":"<p>Get the id of a tree.</p>\n","comments":"","group":"tree"},"git_tree_owner":{"type":"function","file":"tree.h","line":79,"lineto":79,"args":[{"name":"tree","type":"const git_tree *","comment":"A previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"git_repository *","comment":"Repository that contains this tree."},"description":"<p>Get the repository that contains the tree.</p>\n","comments":"","group":"tree"},"git_tree_entrycount":{"type":"function","file":"tree.h","line":87,"lineto":87,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."}],"argline":"const git_tree *tree","sig":"const git_tree *","return":{"type":"size_t","comment":"the number of entries in the tree"},"description":"<p>Get the number of entries listed in a tree</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entrycount-41"],"general.c":["ex/HEAD/general.html#git_tree_entrycount-76"]}},"git_tree_entry_byname":{"type":"function","file":"tree.h","line":99,"lineto":100,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"filename","type":"const char *","comment":"the filename of the desired entry"}],"argline":"const git_tree *tree, const char *filename","sig":"const git_tree *::const char *","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by its filename</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_entry_byname-77"]}},"git_tree_entry_byindex":{"type":"function","file":"tree.h","line":112,"lineto":113,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"idx","type":"size_t","comment":"the position in the entry list"}],"argline":"const git_tree *tree, size_t idx","sig":"const git_tree *::size_t","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by its position in the tree</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_byindex-42"],"general.c":["ex/HEAD/general.html#git_tree_entry_byindex-78"]}},"git_tree_entry_byoid":{"type":"function","file":"tree.h","line":127,"lineto":128,"args":[{"name":"tree","type":"const git_tree *","comment":"a previously loaded tree."},{"name":"oid","type":"const git_oid *","comment":"the sha being looked for"}],"argline":"const git_tree *tree, const git_oid *oid","sig":"const git_tree *::const git_oid *","return":{"type":"const git_tree_entry *","comment":"the tree entry; NULL if not found"},"description":"<p>Lookup a tree entry by SHA value.</p>\n","comments":"<p>This returns a git_tree_entry that is owned by the git_tree. You don&#39;t\nhave to free it, but you must not use it after the git_tree is released.</p>\n\n<p>Warning: this must examine every entry in the tree, so it is not fast.</p>\n","group":"tree"},"git_tree_entry_bypath":{"type":"function","file":"tree.h","line":142,"lineto":145,"args":[{"name":"out","type":"git_tree_entry **","comment":"Pointer where to store the tree entry"},{"name":"root","type":"const git_tree *","comment":"Previously loaded tree which is the root of the relative path"},{"name":"path","type":"const char *","comment":"Path to the contained entry"}],"argline":"git_tree_entry **out,\n\tconst git_tree *root,\n\tconst char *path","sig":"git_tree_entry **::const git_tree *::const char *","return":{"type":"int","comment":"0 on success; GIT_ENOTFOUND if the path does not exist"},"description":"<p>Retrieve a tree entry contained in a tree or in any of its subtrees,\ngiven its relative path.</p>\n","comments":"<p>Unlike the other lookup functions, the returned tree entry is owned by\nthe user and must be freed explicitly with <code>git_tree_entry_free()</code>.</p>\n","group":"tree"},"git_tree_entry_dup":{"type":"function","file":"tree.h","line":156,"lineto":156,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"A tree entry to duplicate"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_tree_entry *","comment":"a copy of the original entry or NULL on error (alloc failure)"},"description":"<p>Duplicate a tree entry</p>\n","comments":"<p>Create a copy of a tree entry. The returned copy is owned by the user,\nand must be freed explicitly with <code>git_tree_entry_free()</code>.</p>\n","group":"tree"},"git_tree_entry_free":{"type":"function","file":"tree.h","line":167,"lineto":167,"args":[{"name":"entry","type":"git_tree_entry *","comment":"The entry to free"}],"argline":"git_tree_entry *entry","sig":"git_tree_entry *","return":{"type":"void"},"description":"<p>Free a user-owned tree entry</p>\n","comments":"<p>IMPORTANT: This function is only needed for tree entries owned by the\nuser, such as the ones returned by <code>git_tree_entry_dup()</code> or\n<code>git_tree_entry_bypath()</code>.</p>\n","group":"tree"},"git_tree_entry_name":{"type":"function","file":"tree.h","line":175,"lineto":175,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"const char *","comment":"the name of the file"},"description":"<p>Get the filename of a tree entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_name-43"],"general.c":["ex/HEAD/general.html#git_tree_entry_name-79","ex/HEAD/general.html#git_tree_entry_name-80"]}},"git_tree_entry_id":{"type":"function","file":"tree.h","line":183,"lineto":183,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"const git_oid *","comment":"the oid of the object"},"description":"<p>Get the id of the object pointed by the entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_id-44"]}},"git_tree_entry_type":{"type":"function","file":"tree.h","line":191,"lineto":191,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_otype","comment":"the type of the pointed object"},"description":"<p>Get the type of the object pointed by the entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_type-45"]}},"git_tree_entry_filemode":{"type":"function","file":"tree.h","line":199,"lineto":199,"args":[{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"const git_tree_entry *entry","sig":"const git_tree_entry *","return":{"type":"git_filemode_t","comment":"filemode as an integer"},"description":"<p>Get the UNIX file attributes of a tree entry</p>\n","comments":"","group":"tree","examples":{"cat-file.c":["ex/HEAD/cat-file.html#git_tree_entry_filemode-46"]}},"git_tree_entry_cmp":{"type":"function","file":"tree.h","line":208,"lineto":208,"args":[{"name":"e1","type":"const git_tree_entry *","comment":"first tree entry"},{"name":"e2","type":"const git_tree_entry *","comment":"second tree entry"}],"argline":"const git_tree_entry *e1, const git_tree_entry *e2","sig":"const git_tree_entry *::const git_tree_entry *","return":{"type":"int","comment":"<0 if e1 is before e2, 0 if e1 == e2, >0 if e1 is after e2"},"description":"<p>Compare two tree entries</p>\n","comments":"","group":"tree"},"git_tree_entry_to_object":{"type":"function","file":"tree.h","line":220,"lineto":223,"args":[{"name":"object_out","type":"git_object **","comment":"pointer to the converted object"},{"name":"repo","type":"git_repository *","comment":"repository where to lookup the pointed object"},{"name":"entry","type":"const git_tree_entry *","comment":"a tree entry"}],"argline":"git_object **object_out,\n\tgit_repository *repo,\n\tconst git_tree_entry *entry","sig":"git_object **::git_repository *::const git_tree_entry *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Convert a tree entry to the git_object it points to.</p>\n","comments":"<p>You must call <code>git_object_free()</code> on the object when you are done with it.</p>\n","group":"tree","examples":{"general.c":["ex/HEAD/general.html#git_tree_entry_to_object-81"]}},"git_treebuilder_create":{"type":"function","file":"tree.h","line":241,"lineto":242,"args":[{"name":"out","type":"git_treebuilder **","comment":"Pointer where to store the tree builder"},{"name":"source","type":"const git_tree *","comment":"Source tree to initialize the builder (optional)"}],"argline":"git_treebuilder **out, const git_tree *source","sig":"git_treebuilder **::const git_tree *","return":{"type":"int","comment":"0 on success; error code otherwise"},"description":"<p>Create a new tree builder.</p>\n","comments":"<p>The tree builder can be used to create or modify trees in memory and\nwrite them as tree objects to the database.</p>\n\n<p>If the <code>source</code> parameter is not NULL, the tree builder will be\ninitialized with the entries of the given tree.</p>\n\n<p>If the <code>source</code> parameter is NULL, the tree builder will start with no\nentries and will have to be filled manually.</p>\n","group":"treebuilder"},"git_treebuilder_clear":{"type":"function","file":"tree.h","line":249,"lineto":249,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Builder to clear"}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"void"},"description":"<p>Clear all the entires in the builder</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_entrycount":{"type":"function","file":"tree.h","line":257,"lineto":257,"args":[{"name":"bld","type":"git_treebuilder *","comment":"a previously loaded treebuilder."}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"unsigned int","comment":"the number of entries in the treebuilder"},"description":"<p>Get the number of entries listed in a treebuilder</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_free":{"type":"function","file":"tree.h","line":268,"lineto":268,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Builder to free"}],"argline":"git_treebuilder *bld","sig":"git_treebuilder *","return":{"type":"void"},"description":"<p>Free a tree builder</p>\n","comments":"<p>This will clear all the entries and free to builder.\nFailing to free the builder after you&#39;re done using it\nwill result in a memory leak</p>\n","group":"treebuilder"},"git_treebuilder_get":{"type":"function","file":"tree.h","line":280,"lineto":281,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Name of the entry"}],"argline":"git_treebuilder *bld, const char *filename","sig":"git_treebuilder *::const char *","return":{"type":"const git_tree_entry *","comment":"pointer to the entry; NULL if not found"},"description":"<p>Get an entry from the builder from its filename</p>\n","comments":"<p>The returned entry is owned by the builder and should\nnot be freed manually.</p>\n","group":"treebuilder"},"git_treebuilder_insert":{"type":"function","file":"tree.h","line":308,"lineto":313,"args":[{"name":"out","type":"const git_tree_entry **","comment":"Pointer to store the entry (optional)"},{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Filename of the entry"},{"name":"id","type":"const git_oid *","comment":"SHA1 oid of the entry"},{"name":"filemode","type":"git_filemode_t","comment":"Folder attributes of the entry. This parameter must be valued with one of the following entries: 0040000, 0100644, 0100755, 0120000 or 0160000."}],"argline":"const git_tree_entry **out,\n\tgit_treebuilder *bld,\n\tconst char *filename,\n\tconst git_oid *id,\n\tgit_filemode_t filemode","sig":"const git_tree_entry **::git_treebuilder *::const char *::const git_oid *::git_filemode_t","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Add or update an entry to the builder</p>\n","comments":"<p>Insert a new entry for <code>filename</code> in the builder with the\ngiven attributes.</p>\n\n<p>If an entry named <code>filename</code> already exists, its attributes\nwill be updated with the given ones.</p>\n\n<p>The optional pointer <code>out</code> can be used to retrieve a pointer to\nthe newly created/updated entry. Pass NULL if you do not need it.</p>\n\n<p>No attempt is being made to ensure that the provided oid points\nto an existing git object in the object database, nor that the\nattributes make sense regarding the type of the pointed at object.</p>\n","group":"treebuilder"},"git_treebuilder_remove":{"type":"function","file":"tree.h","line":321,"lineto":325,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filename","type":"const char *","comment":"Filename of the entry to remove"}],"argline":"git_treebuilder *bld, const char *filename","sig":"git_treebuilder *::const char *","return":{"type":"int"},"description":"<p>Remove an entry from the builder by its filename</p>\n","comments":"","group":"treebuilder"},"git_treebuilder_filter":{"type":"function","file":"tree.h","line":338,"lineto":341,"args":[{"name":"bld","type":"git_treebuilder *","comment":"Tree builder"},{"name":"filter","type":"git_treebuilder_filter_cb","comment":"Callback to filter entries"},{"name":"payload","type":"void *","comment":"Extra data to pass to filter"}],"argline":"git_treebuilder *bld,\n\tgit_treebuilder_filter_cb filter,\n\tvoid *payload","sig":"git_treebuilder *::git_treebuilder_filter_cb::void *","return":{"type":"void"},"description":"<p>Filter the entries in the tree</p>\n","comments":"<p>The <code>filter</code> callback will be called for each entry in the tree with a\npointer to the entry and the provided <code>payload</code>; if the callback returns\nnon-zero, the entry will be filtered (removed from the builder).</p>\n","group":"treebuilder"},"git_treebuilder_write":{"type":"function","file":"tree.h","line":354,"lineto":355,"args":[{"name":"id","type":"git_oid *","comment":"Pointer to store the OID of the newly written tree"},{"name":"repo","type":"git_repository *","comment":"Repository in which to store the object"},{"name":"bld","type":"git_treebuilder *","comment":"Tree builder to write"}],"argline":"git_oid *id, git_repository *repo, git_treebuilder *bld","sig":"git_oid *::git_repository *::git_treebuilder *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Write the contents of the tree builder as a tree object</p>\n","comments":"<p>The tree builder will be written to the given <code>repo</code>, and its\nidentifying SHA1 hash will be stored in the <code>id</code> pointer.</p>\n","group":"treebuilder"},"git_tree_walk":{"type":"function","file":"tree.h","line":385,"lineto":389,"args":[{"name":"tree","type":"const git_tree *","comment":"The tree to walk"},{"name":"mode","type":"git_treewalk_mode","comment":"Traversal mode (pre or post-order)"},{"name":"callback","type":"git_treewalk_cb","comment":"Function to call on each tree entry"},{"name":"payload","type":"void *","comment":"Opaque pointer to be passed on each callback"}],"argline":"const git_tree *tree,\n\tgit_treewalk_mode mode,\n\tgit_treewalk_cb callback,\n\tvoid *payload","sig":"const git_tree *::git_treewalk_mode::git_treewalk_cb::void *","return":{"type":"int","comment":"0 or an error code"},"description":"<p>Traverse the entries in a tree and its subtrees in post or pre order.</p>\n","comments":"<p>The entries will be traversed in the specified order, children subtrees\nwill be automatically loaded as required, and the <code>callback</code> will be\ncalled once per entry with the current (relative) root for the entry and\nthe entry data itself.</p>\n\n<p>If the callback returns a positive value, the passed entry will be\nskipped on the traversal (in pre mode). A negative value stops the walk.</p>\n","group":"tree"}},"globals":{"GIT_ATTR_TRUE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_TRUE_T)","file":"attr.h","line":33,"comments":"GIT_ATTR_TRUE checks if an attribute is set on. In core git\nparlance, this the value for \"Set\" attributes.\n\nFor example, if the attribute file contains:\n\n *.c foo\n\nThen for file `xyz.c` looking up attribute \"foo\" gives a value for\nwhich `GIT_ATTR_TRUE(value)` is true."},"GIT_ATTR_FALSE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_FALSE_T)","file":"attr.h","line":47,"comments":"GIT_ATTR_FALSE checks if an attribute is set off. In core git\nparlance, this is the value for attributes that are \"Unset\" (not to\nbe confused with values that a \"Unspecified\").\n\nFor example, if the attribute file contains:\n\n *.h -foo\n\nThen for file `zyx.h` looking up attribute \"foo\" gives a value for\nwhich `GIT_ATTR_FALSE(value)` is true."},"GIT_ATTR_UNSPECIFIED(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_UNSPECIFIED_T)","file":"attr.h","line":65,"comments":"GIT_ATTR_UNSPECIFIED checks if an attribute is unspecified. This\nmay be due to the attribute not being mentioned at all or because\nthe attribute was explicitly set unspecified via the `!` operator.\n\nFor example, if the attribute file contains:\n\n *.c foo\n *.h -foo\n onefile.c !foo\n\nThen for `onefile.c` looking up attribute \"foo\" yields a value with\n`GIT_ATTR_UNSPECIFIED(value)` of true. Also, looking up \"foo\" on\nfile `onefile.rb` or looking up \"bar\" on any file will all give\n`GIT_ATTR_UNSPECIFIED(value)` of true."},"GIT_ATTR_HAS_VALUE(attr)":{"value":"(git_attr_value(attr) == GIT_ATTR_VALUE_T)","file":"attr.h","line":77,"comments":"GIT_ATTR_HAS_VALUE checks if an attribute is set to a value (as\nopposed to TRUE, FALSE or UNSPECIFIED). This would be the case if\nfor a file with something like:\n\n *.txt eol=lf\n\nGiven this, looking up \"eol\" for `onefile.txt` will give back the\nstring \"lf\" and `GIT_ATTR_SET_TO_VALUE(attr)` will return true."},"GIT_ATTR_CHECK_NO_SYSTEM":{"value":"(1 << 2)","file":"attr.h","line":125,"comments":"Check attribute flags: Using the system attributes file.\n\nNormally, attribute checks include looking in the /etc (or system\nequivalent) directory for a `gitattributes` file. Passing this\nflag will cause attribute checks to ignore that file."},"GIT_BUF_INIT_CONST(STR,LEN)":{"value":"{ (char *)(STR), 0, (size_t)(LEN) }","file":"buffer.h","line":60,"comments":"Static initializer for git_buf from static buffer"},"GIT_BEGIN_DECL":{"value":"","file":"common.h","line":24,"comments":"Start declarations in C mode"},"GIT_END_DECL":{"value":"","file":"common.h","line":26,"comments":"End declarations in C mode"},"GIT_EXTERN(type)":{"value":"extern __attribute__((visibility(\"default\"))) type","file":"common.h","line":30,"comments":"Declare a public function exported for application use."},"GIT_INLINE(type)":{"value":"static __inline type","file":"common.h","line":41,"comments":"Declare a function as always inlined."},"GIT_FORMAT_PRINTF(a,b)":{"value":"__attribute__((format (printf, a, b)))","file":"common.h","line":48,"comments":"Declare a function's takes printf style arguments."},"GIT_PATH_LIST_SEPARATOR":{"value":"';'","file":"common.h","line":77,"comments":"The separator used in path list strings (ie like in the PATH\nenvironment variable). A semi-colon \";\" is used on Windows, and\na colon \":\" for all other systems."},"GIT_PATH_MAX":{"value":"4096","file":"common.h","line":86,"comments":"The maximum length of a valid git path."},"GIT_OID_HEX_ZERO":{"value":"\"0000000000000000000000000000000000000000\"","file":"common.h","line":91,"comments":"The string representation of the null object ID."},"GIT_INDEX_STAGE_ANY":{"value":"-1","file":"index.h","line":147,"comments":"Match any index stage.\n\nSome index APIs take a stage to match; pass this value to match\nany entry matching the path regardless of stage."},"GIT_OID_RAWSZ":{"value":"20","file":"oid.h","line":23,"comments":"Size (in bytes) of a raw/binary oid"},"GIT_OID_HEXSZ":{"value":"(GIT_OID_RAWSZ * 2)","file":"oid.h","line":26,"comments":"Size (in bytes) of a hex formatted oid"},"GIT_OID_MINPREFIXLEN":{"value":"4","file":"oid.h","line":30,"comments":"Minimum length (in number of hex characters,\ni.e. packets of 4 bits) of an oid prefix"},"GIT_SORT_NONE":{"value":"(0)","file":"revwalk.h","line":29,"comments":"Sort the repository contents in no particular ordering;\nthis sorting is arbitrary, implementation-specific\nand subject to change at any time.\nThis is the default sorting for new walkers."},"GIT_SORT_TOPOLOGICAL":{"value":"(1 << 0)","file":"revwalk.h","line":36,"comments":"Sort the repository contents in topological order\n(parents before children); this sorting mode\ncan be combined with time sorting."},"GIT_SORT_TIME":{"value":"(1 << 1)","file":"revwalk.h","line":43,"comments":"Sort the repository contents by commit time;\nthis sorting mode can be combined with\ntopological sorting."},"GIT_SORT_REVERSE":{"value":"(1 << 2)","file":"revwalk.h","line":50,"comments":"Iterate through the repository contents in reverse\norder; this sorting mode can be combined with\nany of the above."},"GIT_FILTER_CRLF_PRIORITY":{"value":"0","file":"sys/filter.h","line":35,"comments":"This is priority that the internal CRLF filter will be registered with"},"GIT_FILTER_IDENT_PRIORITY":{"value":"100","file":"sys/filter.h","line":40,"comments":"This is priority that the internal ident filter will be registered with"},"GIT_FILTER_DRIVER_PRIORITY":{"value":"200","file":"sys/filter.h","line":47,"comments":"This is priority to use with a custom filter to imitate a core Git\nfilter driver, so that it will be run last on checkout and first on\ncheckin. You do not have to use this, but it helps compatibility."}},"types":[["GIT_ATTR_CHECK",{"type":"enum","file":"attr.h","line":114,"lineto":116,"block":"GIT_ATTR_CHECK_FILE_THEN_INDEX\nGIT_ATTR_CHECK_INDEX_THEN_FILE\nGIT_ATTR_CHECK_INDEX_ONLY","tdef":null,"comments":"Check attribute flags: Reading values from index and working directory.\n\nWhen checking attributes, it is possible to check attribute files\nin both the working directory (if there is one) and the index (if\nthere is one). You can explicitly choose where to check and in\nwhich order using the following flags.\n\nCore git usually checks the working directory then the index,\nexcept during a checkout when it checks the index first. It will\nuse index only for creating archives or for a bare repo (if an\nindex has been specified for the bare repo).","used":{"returns":[],"needs":[]}}],["GIT_IDXENTRY",{"type":"enum","file":"index.h","line":108,"lineto":119,"block":"GIT_IDXENTRY_UPDATE\nGIT_IDXENTRY_REMOVE\nGIT_IDXENTRY_UPTODATE\nGIT_IDXENTRY_ADDED\nGIT_IDXENTRY_HASHED\nGIT_IDXENTRY_UNHASHED\nGIT_IDXENTRY_WT_REMOVE\nGIT_IDXENTRY_CONFLICTED\nGIT_IDXENTRY_UNPACKED\nGIT_IDXENTRY_NEW_SKIP_WORKTREE","tdef":null,"comments":"Bitmasks for in-memory only fields of `git_index_entry`'s `flags_extended`\n\nThese bitmasks match the other fields in the `git_index_entry`\n`flags_extended` value that are only used in-memory by libgit2. You\ncan use them to interpret the data in the `flags_extended`.","used":{"returns":[],"needs":[]}}],["git_blob",{"type":"struct","value":"git_blob","file":"types.h","line":117,"lineto":117,"block":"","tdef":"typedef","comments":"In-memory representation of a blob object.","used":{"returns":[],"needs":["git_blob_filtered_content","git_blob_free","git_blob_id","git_blob_is_binary","git_blob_lookup","git_blob_lookup_prefix","git_blob_owner","git_blob_rawcontent","git_blob_rawsize","git_diff_blob_to_buffer","git_diff_blobs","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_filter_list_apply_to_blob","git_filter_list_load"]}}],["git_branch_t",{"type":"enum","file":"types.h","line":190,"lineto":193,"block":"GIT_BRANCH_LOCAL\nGIT_BRANCH_REMOTE","tdef":"typedef","comments":"Basic type of any Git branch.","used":{"returns":[],"needs":["git_branch_lookup"]}}],["git_buf",{"type":"struct","value":"git_buf","file":"buffer.h","line":52,"lineto":55,"block":"char *ptr\nsize_t asize, size","tdef":"typedef","comments":"A data buffer for exporting data from libgit2\n\nSometimes libgit2 wants to return an allocated data buffer to the\ncaller and have the caller take responsibility for freeing that memory.\nThis can be awkward if the caller does not have easy access to the same\nallocation functions that libgit2 is using. In those cases, libgit2\nwill fill in a `git_buf` and the caller can use `git_buf_free()` to\nrelease it when they are done.\n\nA `git_buf` may also be used for the caller to pass in a reference to\na block of memory they hold. In this case, libgit2 will not resize or\nfree the memory, but will read from it as needed.\n\nA `git_buf` is a public structure with three fields:\n\n- `ptr` points to the start of the allocated memory. If it is NULL,\n then the `git_buf` is considered empty and libgit2 will feel free\n to overwrite it with new data.\n\n- `size` holds the size (in bytes) of the data that is actually used.\n\n- `asize` holds the known total amount of allocated memory if the `ptr`\n was allocated by libgit2. It may be larger than `size`. If `ptr`\n was not allocated by libgit2 and should not be resized and/or freed,\n then `asize` will be set to zero.\n\nSome APIs may occasionally do something slightly unusual with a buffer,\nsuch as setting `ptr` to a value that was passed in by the user. In\nthose cases, the behavior will be clearly documented by the API.","used":{"returns":[],"needs":["git_blob_filtered_content","git_buf_free","git_buf_grow","git_buf_set","git_filter_list_apply_to_blob","git_filter_list_apply_to_data","git_filter_list_apply_to_file"]}}],["git_cap_t",{"type":"enum","file":"common.h","line":106,"lineto":110,"block":"GIT_CAP_THREADS\nGIT_CAP_HTTPS\nGIT_CAP_SSH","tdef":"typedef","comments":"Combinations of these values describe the capabilities of libgit2.","used":{"returns":[],"needs":[]}}],["git_checkout_notify_cb",{"type":"function pointer","value":"git_checkout_notify_cb","file":"checkout.h","line":191,"lineto":197,"comments":"Checkout notification callback function","used":{"returns":[],"needs":[]}}],["git_checkout_notify_t",{"type":"enum","file":"checkout.h","line":179,"lineto":188,"block":"GIT_CHECKOUT_NOTIFY_NONE\nGIT_CHECKOUT_NOTIFY_CONFLICT\nGIT_CHECKOUT_NOTIFY_DIRTY\nGIT_CHECKOUT_NOTIFY_UPDATED\nGIT_CHECKOUT_NOTIFY_UNTRACKED\nGIT_CHECKOUT_NOTIFY_IGNORED\nGIT_CHECKOUT_NOTIFY_ALL","tdef":"typedef","comments":"Checkout notification flags\n\nCheckout will invoke an options notification callback (`notify_cb`) for\ncertain cases - you pick which ones via `notify_flags`:\n\n- GIT_CHECKOUT_NOTIFY_CONFLICT invokes checkout on conflicting paths.\n\n- GIT_CHECKOUT_NOTIFY_DIRTY notifies about \"dirty\" files, i.e. those that\n do not need an update but no longer match the baseline. Core git\n displays these files when checkout runs, but won't stop the checkout.\n\n- GIT_CHECKOUT_NOTIFY_UPDATED sends notification for any file changed.\n\n- GIT_CHECKOUT_NOTIFY_UNTRACKED notifies about untracked files.\n\n- GIT_CHECKOUT_NOTIFY_IGNORED notifies about ignored files.\n\nReturning a non-zero value from this callback will cancel the checkout.\nNotification callbacks are made prior to modifying any files on disk.","used":{"returns":[],"needs":[]}}],["git_checkout_opts",{"type":"struct","value":"git_checkout_opts","file":"checkout.h","line":214,"lineto":241,"block":"unsigned int version\nunsigned int checkout_strategy\nint disable_filters\nunsigned int dir_mode\nunsigned int file_mode\nint file_open_flags\nunsigned int notify_flags\ngit_checkout_notify_cb notify_cb\nvoid *notify_payload\ngit_checkout_progress_cb progress_cb\nvoid *progress_payload\ngit_strarray paths\ngit_tree *baseline\nconst char *target_directory","tdef":"typedef","comments":"Checkout options structure\n\nZero out for defaults. Initialize with `GIT_CHECKOUT_OPTS_INIT` macro to\ncorrectly set the `version` field. E.g.\n\n\tgit_checkout_opts opts = GIT_CHECKOUT_OPTS_INIT;","used":{"returns":[],"needs":["git_checkout_head","git_checkout_index","git_checkout_tree"]}}],["git_checkout_progress_cb",{"type":"function pointer","value":"git_checkout_progress_cb","file":"checkout.h","line":200,"lineto":204,"comments":"Checkout progress notification function","used":{"returns":[],"needs":[]}}],["git_clone_options",{"type":"struct","value":"git_clone_options","file":"clone.h","line":65,"lineto":88,"block":"unsigned int version\ngit_checkout_opts checkout_opts\ngit_repository_init_options *init_options\nint bare\ngit_transfer_progress_callback fetch_progress_cb\nvoid *fetch_progress_payload\nconst char *remote_name\nconst char *pushurl\nconst char *fetch_spec\nconst char *push_spec\ngit_cred_acquire_cb cred_acquire_cb\nvoid *cred_acquire_payload\ngit_transport_flags_t transport_flags\ngit_transport *transport\ngit_remote_callbacks *remote_callbacks\ngit_remote_autotag_option_t remote_autotag\nconst char* checkout_branch","tdef":"typedef","comments":"Clone options structure\n\nUse zeros to indicate default settings. It's easiest to use the\n`GIT_CLONE_OPTIONS_INIT` macro:\n\n\tgit_clone_options opts = GIT_CLONE_OPTIONS_INIT;\n\n- `checkout_opts` is options for the checkout step. To disable checkout,\n set the `checkout_strategy` to GIT_CHECKOUT_DEFAULT.\n- `bare` should be set to zero to create a standard repo, non-zero for\n a bare repo\n- `fetch_progress_cb` is optional callback for fetch progress. Be aware that\n this is called inline with network and indexing operations, so performance\n may be affected.\n- `fetch_progress_payload` is payload for fetch_progress_cb\n\n ** \"origin\" remote options: **\n- `remote_name` is the name given to the \"origin\" remote. The default is\n \"origin\".\n- `pushurl` is a URL to be used for pushing. NULL means use the fetch url.\n- `fetch_spec` is the fetch specification to be used for fetching. NULL\n results in the same behavior as GIT_REMOTE_DEFAULT_FETCH.\n- `push_spec` is the fetch specification to be used for pushing. NULL means\n use the same spec as for fetching.\n- `cred_acquire_cb` is a callback to be used if credentials are required\n during the initial fetch.\n- `cred_acquire_payload` is the payload for the above callback.\n- `transport_flags` is flags used to create transport if no transport is\n provided.\n- `transport` is a custom transport to be used for the initial fetch. NULL\n means use the transport autodetected from the URL.\n- `remote_callbacks` may be used to specify custom progress callbacks for\n the origin remote before the fetch is initiated.\n- `remote_autotag` may be used to specify the autotag setting before the\n initial fetch. The default is GIT_REMOTE_DOWNLOAD_TAGS_ALL.\n- `checkout_branch` gives the name of the branch to checkout. NULL means\n use the remote's HEAD.","used":{"returns":[],"needs":["git_clone"]}}],["git_commit",{"type":"struct","value":"git_commit","file":"types.h","line":120,"lineto":120,"block":"","tdef":"typedef","comments":"Parsed representation of a commit object.","used":{"returns":[],"needs":["git_branch_create","git_commit_author","git_commit_committer","git_commit_create","git_commit_free","git_commit_id","git_commit_lookup","git_commit_lookup_prefix","git_commit_message","git_commit_message_encoding","git_commit_nth_gen_ancestor","git_commit_owner","git_commit_parent","git_commit_parent_id","git_commit_parentcount","git_commit_raw_header","git_commit_time","git_commit_time_offset","git_commit_tree","git_commit_tree_id"]}}],["git_config",{"type":"struct","value":"git_config","file":"types.h","line":138,"lineto":138,"block":"","tdef":"typedef","comments":"Memory representation of a set of config files","used":{"returns":[],"needs":["git_config_add_backend","git_config_add_file_ondisk","git_config_delete_entry","git_config_foreach","git_config_foreach_match","git_config_free","git_config_get_bool","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_mapped","git_config_get_multivar_foreach","git_config_get_string","git_config_iterator_glob_new","git_config_iterator_new","git_config_multivar_iterator_new","git_config_new","git_config_open_default","git_config_open_global","git_config_open_level","git_config_open_ondisk","git_config_refresh","git_config_set_bool","git_config_set_int32","git_config_set_int64","git_config_set_multivar","git_config_set_string","git_repository_config","git_repository_set_config"]}}],["git_config_backend",{"type":"struct","value":"git_config_backend","file":"types.h","line":141,"lineto":141,"block":"","tdef":"typedef","comments":"Interface to access a configuration file","used":{"returns":[],"needs":["git_config_add_backend","git_config_backend_foreach_match"]}}],["git_config_iterator",{"type":"struct","value":"git_config_iterator","file":"sys/config.h","line":34,"lineto":43,"block":"git_config_backend *backend\nunsigned int flags\nint (*next)(git_config_entry **entry, git_config_iterator *iter)\nvoid (*free)(git_config_iterator *iter)","tdef":null,"comments":"Every iterator must have this struct as its first element, so the\nAPI can talk to it. You'd define your iterator as\n\n struct my_iterator {\n git_config_iterator parent;\n ...\n }\n\nand assign `iter->parent.backend` to your `git_config_backend`.","used":{"returns":[],"needs":["git_config_iterator_free","git_config_iterator_glob_new","git_config_iterator_new","git_config_multivar_iterator_new","git_config_next"]}}],["git_cred_acquire_cb",{"type":"function pointer","value":"git_cred_acquire_cb","file":"transport.h","line":149,"lineto":239,"comments":"Signature of a function which acquires a credential object.\n\n@param cred The newly created credential object.\n@param url The resource for which we are demanding a credential.\n@param username_from_url The username that was embedded in a \"user@host\"\n remote url, or NULL if not included.\n@param allowed_types A bitmask stating which cred types are OK to return.\n@param payload The payload provided when specifying this callback.\n@return 0 for success or an error code for failure","used":{"returns":[],"needs":["git_remote_set_cred_acquire_cb"]}}],["git_cred_userpass_payload",{"type":"struct","value":"git_cred_userpass_payload","file":"cred_helpers.h","line":24,"lineto":27,"block":"char *username\nchar *password","tdef":"typedef","comments":"Payload for git_cred_stock_userpass_plaintext.","used":{"returns":[],"needs":[]}}],["git_delta_t",{"type":"enum","file":"diff.h","line":190,"lineto":200,"block":"GIT_DELTA_UNMODIFIED\nGIT_DELTA_ADDED\nGIT_DELTA_DELETED\nGIT_DELTA_MODIFIED\nGIT_DELTA_RENAMED\nGIT_DELTA_COPIED\nGIT_DELTA_IGNORED\nGIT_DELTA_UNTRACKED\nGIT_DELTA_TYPECHANGE","tdef":"typedef","comments":"What type of change is described by a git_diff_delta?\n\n`GIT_DELTA_RENAMED` and `GIT_DELTA_COPIED` will only show up if you run\n`git_diff_find_similar()` on the diff list object.\n\n`GIT_DELTA_TYPECHANGE` only shows up given `GIT_DIFF_INCLUDE_TYPECHANGE`\nin the option flags (otherwise type changes will be split into ADDED /\nDELETED pairs).","used":{"returns":[],"needs":["git_diff_num_deltas_of_type","git_diff_status_char"]}}],["git_diff_delta",{"type":"struct","value":"git_diff_delta","file":"diff.h","line":268,"lineto":274,"block":"git_diff_file old_file\ngit_diff_file new_file\ngit_delta_t status\nuint32_t similarity\nuint32_t flags","tdef":"typedef","comments":"Description of changes to one entry.\n\nWhen iterating over a diff list object, this will be passed to most\ncallback functions and you can use the contents to understand exactly\nwhat has changed.\n\nThe `old_file` represents the \"from\" side of the diff and the `new_file`\nrepresents to \"to\" side of the diff. What those means depend on the\nfunction that was used to generate the diff and will be documented below.\nYou can also use the `GIT_DIFF_REVERSE` flag to flip it around.\n\nAlthough the two sides of the delta are named \"old_file\" and \"new_file\",\nthey actually may correspond to entries that represent a file, a symbolic\nlink, a submodule commit id, or even a tree (if you are tracking type\nchanges or ignored/untracked directories).\n\nUnder some circumstances, in the name of efficiency, not all fields will\nbe filled in, but we generally try to fill in as much as possible. One\nexample is that the \"flags\" field may not have either the `BINARY` or the\n`NOT_BINARY` flag set to avoid examining file contents if you do not pass\nin hunk and/or line callbacks to the diff foreach iteration function. It\nwill just use the git attributes for those files.\n\nThe similarity score is zero unless you call `git_diff_find_similar()`\nwhich does a similarity analysis of files in the diff. Use that\nfunction to do rename and copy detection, and to split heavily modified\nfiles in add/delete pairs. After that call, deltas with a status of\nGIT_DELTA_RENAMED or GIT_DELTA_COPIED will have a similarity score\nbetween 0 and 100 indicating how similar the old and new sides are.\n\nIf you ask `git_diff_find_similar` to find heavily modified files to\nbreak, but to not *actually* break the records, then GIT_DELTA_MODIFIED\nrecords may have a non-zero similarity score if the self-similarity is\nbelow the split threshold. To display this value like core Git, invert\nthe score (a la `printf(\"M%03d\", 100 - delta->similarity)`).","used":{"returns":["git_diff_patch_delta","git_pathspec_match_list_diff_entry"],"needs":["git_diff_get_patch"]}}],["git_diff_file",{"type":"struct","value":"git_diff_file","file":"diff.h","line":223,"lineto":229,"block":"git_oid oid\nconst char *path\ngit_off_t size\nuint32_t flags\nuint16_t mode","tdef":"typedef","comments":"Description of one side of a diff entry.\n\nAlthough this is called a \"file\", it may actually represent a file, a\nsymbolic link, a submodule commit id, or even a tree (although that only\nif you are tracking type changes or ignored/untracked directories).\n\nThe `oid` is the `git_oid` of the item. If the entry represents an\nabsent side of a diff (e.g. the `old_file` of a `GIT_DELTA_ADDED` delta),\nthen the oid will be zeroes.\n\n`path` is the NUL-terminated path to the entry relative to the working\ndirectory of the repository.\n\n`size` is the size of the entry in bytes.\n\n`flags` is a combination of the `git_diff_flag_t` types\n\n`mode` is, roughly, the stat() `st_mode` value for the item. This will\nbe restricted to one of the `git_filemode_t` values.","used":{"returns":[],"needs":[]}}],["git_diff_file_cb",{"type":"function pointer","value":"git_diff_file_cb","file":"diff.h","line":344,"lineto":347,"comments":"When iterating over a diff, callback that will be made per file.\n\n@param delta A pointer to the delta data for the file\n@param progress Goes from 0 to 1 over the diff list\n@param payload User-specified pointer from foreach function","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_foreach"]}}],["git_diff_find_options",{"type":"struct","value":"git_diff_find_options","file":"diff.h","line":497,"lineto":520,"block":"unsigned int version\nuint32_t flags\nuint16_t rename_threshold\nuint16_t rename_from_rewrite_threshold\nuint16_t copy_threshold\nuint16_t break_rewrite_threshold\nsize_t rename_limit\ngit_diff_similarity_metric *metric","tdef":"typedef","comments":"Control behavior of rename and copy detection\n\nThese options mostly mimic parameters that can be passed to git-diff.\n\n- `rename_threshold` is the same as the -M option with a value\n- `copy_threshold` is the same as the -C option with a value\n- `rename_from_rewrite_threshold` matches the top of the -B option\n- `break_rewrite_threshold` matches the bottom of the -B option\n- `rename_limit` is the maximum number of matches to consider for\n a particular file. This is a little different from the `-l` option\n to regular Git because we will still process up to this many matches\n before abandoning the search.\n\nThe `metric` option allows you to plug in a custom similarity metric.\nSet it to NULL for the default internal metric which is based on sampling\nhashes of ranges of data in the file. The default metric is a pretty\ngood similarity approximation that should work fairly well for both text\nand binary data, and is pretty fast with fixed memory overhead.","used":{"returns":[],"needs":["git_diff_find_similar"]}}],["git_diff_flag_t",{"type":"enum","file":"diff.h","line":174,"lineto":178,"block":"GIT_DIFF_FLAG_BINARY\nGIT_DIFF_FLAG_NOT_BINARY\nGIT_DIFF_FLAG_VALID_OID","tdef":"typedef","comments":"Flags for the delta object and the file objects on each side.\n\nThese flags are used for both the `flags` value of the `git_diff_delta`\nand the flags for the `git_diff_file` objects representing the old and\nnew sides of the delta. Values outside of this public range should be\nconsidered reserved for internal or future use.","used":{"returns":[],"needs":[]}}],["git_diff_hunk_cb",{"type":"function pointer","value":"git_diff_hunk_cb","file":"diff.h","line":362,"lineto":367,"comments":"When iterating over a diff, callback that will be made per hunk.","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_foreach"]}}],["git_diff_line_t",{"type":"enum","file":"diff.h","line":378,"lineto":395,"block":"GIT_DIFF_LINE_CONTEXT\nGIT_DIFF_LINE_ADDITION\nGIT_DIFF_LINE_DELETION\nGIT_DIFF_LINE_CONTEXT_EOFNL\nGIT_DIFF_LINE_ADD_EOFNL\nGIT_DIFF_LINE_DEL_EOFNL\nGIT_DIFF_LINE_FILE_HDR\nGIT_DIFF_LINE_HUNK_HDR\nGIT_DIFF_LINE_BINARY","tdef":"typedef","comments":"Line origin constants.\n\nThese values describe where a line came from and will be passed to\nthe git_diff_data_cb when iterating over a diff. There are some\nspecial origin constants at the end that are used for the text\noutput callbacks to demarcate lines that are actually part of\nthe file or hunk headers.","used":{"returns":[],"needs":[]}}],["git_diff_list",{"type":"struct","value":"git_diff_list","file":"diff.h","line":164,"lineto":164,"block":"","tdef":"typedef","comments":"The diff list object that contains all individual file deltas.\n\nThis is an opaque structure which will be allocated by one of the diff\ngenerator functions below (such as `git_diff_tree_to_tree`). You are\nresponsible for releasing the object memory when done, using the\n`git_diff_list_free()` function.","used":{"returns":[],"needs":["git_diff_find_similar","git_diff_foreach","git_diff_get_patch","git_diff_index_to_workdir","git_diff_is_sorted_icase","git_diff_list_free","git_diff_merge","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_print_compact","git_diff_print_patch","git_diff_print_raw","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_pathspec_match_diff"]}}],["git_diff_notify_cb",{"type":"function pointer","value":"git_diff_notify_cb","file":"diff.h","line":289,"lineto":293,"comments":"Diff notification callback function.\n\nThe callback will be called for each file, just before the `git_delta_t`\ngets inserted into the diff list.\n\nWhen the callback:\n- returns < 0, the diff process will be aborted.\n- returns > 0, the delta will not be inserted into the diff list, but the\n\tdiff process continues.\n- returns 0, the delta is inserted into the diff list, and the diff process\n\tcontinues.","used":{"returns":[],"needs":[]}}],["git_diff_options",{"type":"struct","value":"git_diff_options","file":"diff.h","line":320,"lineto":335,"block":"unsigned int version\nuint32_t flags\nuint16_t context_lines\nuint16_t interhunk_lines\nconst char *old_prefix\nconst char *new_prefix\ngit_strarray pathspec\ngit_off_t max_size\ngit_diff_notify_cb notify_cb\nvoid *notify_payload\ngit_submodule_ignore_t ignore_submodules","tdef":"typedef","comments":"Structure describing options about how the diff should be executed.\n\nSetting all values of the structure to zero will yield the default\nvalues. Similarly, passing NULL for the options structure will\ngive the defaults. The default values are marked below.\n\n- `flags` is a combination of the `git_diff_option_t` values above\n- `context_lines` is the number of unchanged lines that define the\n boundary of a hunk (and to display before and after)\n- `interhunk_lines` is the maximum number of unchanged lines between\n hunk boundaries before the hunks will be merged into a one.\n- `old_prefix` is the virtual \"directory\" to prefix to old file names\n in hunk headers (default \"a\")\n- `new_prefix` is the virtual \"directory\" to prefix to new file names\n in hunk headers (default \"b\")\n- `pathspec` is an array of paths / fnmatch patterns to constrain diff\n- `max_size` is a file size (in bytes) above which a blob will be marked\n as binary automatically; pass a negative value to disable.\n- `notify_cb` is an optional callback function, notifying the consumer of\n which files are being examined as the diff is generated\n- `notify_payload` is the payload data to pass to the `notify_cb` function\n- `ignore_submodules` overrides the submodule ignore setting for all\n submodules in the diff.","used":{"returns":[],"needs":["git_diff_blob_to_buffer","git_diff_blobs","git_diff_index_to_workdir","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir"]}}],["git_diff_patch",{"type":"struct","value":"git_diff_patch","file":"diff.h","line":419,"lineto":419,"block":"","tdef":"typedef","comments":"The diff patch is used to store all the text diffs for a delta.\n\nYou can easily loop over the content of patches and get information about\nthem.","used":{"returns":[],"needs":["git_diff_get_patch","git_diff_patch_delta","git_diff_patch_free","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_patch_get_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_line_stats","git_diff_patch_num_hunks","git_diff_patch_num_lines_in_hunk","git_diff_patch_print","git_diff_patch_size","git_diff_patch_to_str"]}}],["git_diff_range",{"type":"struct","value":"git_diff_range","file":"diff.h","line":352,"lineto":357,"block":"int old_start\nint old_lines\nint new_start\nint new_lines","tdef":"typedef","comments":"Structure describing a hunk of a diff.","used":{"returns":[],"needs":["git_diff_patch_get_hunk"]}}],["git_diff_similarity_metric",{"type":"struct","value":"git_diff_similarity_metric","file":"diff.h","line":465,"lineto":475,"block":"int (*file_signature)(void **out, const git_diff_file *file, const char *fullpath, void *payload)\nint (*buffer_signature)(void **out, const git_diff_file *file, const char *buf, size_t buflen, void *payload)\nvoid (*free_signature)(void *sig, void *payload)\nint (*similarity)(int *score, void *siga, void *sigb, void *payload)\nvoid *payload","tdef":"typedef","comments":"Pluggable similarity metric","used":{"returns":[],"needs":[]}}],["git_error_code",{"type":"enum","file":"errors.h","line":21,"lineto":44,"block":"GIT_OK\nGIT_ERROR\nGIT_ENOTFOUND\nGIT_EEXISTS\nGIT_EAMBIGUOUS\nGIT_EBUFS\nGIT_EUSER\nGIT_EBAREREPO\nGIT_EUNBORNBRANCH\nGIT_EUNMERGED\nGIT_ENONFASTFORWARD\nGIT_EINVALIDSPEC\nGIT_EMERGECONFLICT\nGIT_ELOCKED\nGIT_PASSTHROUGH\nGIT_ITEROVER","tdef":"typedef","comments":"Generic return codes","used":{"returns":[],"needs":[]}}],["git_error_t",{"type":"enum","file":"errors.h","line":47,"lineto":72,"block":"GITERR_NOMEMORY\nGITERR_OS\nGITERR_INVALID\nGITERR_REFERENCE\nGITERR_ZLIB\nGITERR_REPOSITORY\nGITERR_CONFIG\nGITERR_REGEX\nGITERR_ODB\nGITERR_INDEX\nGITERR_OBJECT\nGITERR_NET\nGITERR_TAG\nGITERR_TREE\nGITERR_INDEXER\nGITERR_SSL\nGITERR_SUBMODULE\nGITERR_THREAD\nGITERR_STASH\nGITERR_CHECKOUT\nGITERR_FETCHHEAD\nGITERR_MERGE\nGITERR_SSH\nGITERR_FILTER","tdef":"typedef","comments":"Error classes","used":{"returns":[],"needs":[]}}],["git_filemode_t",{"type":"enum","file":"types.h","line":196,"lineto":210,"block":"GIT_FILEMODE_NEW\nGIT_FILEMODE_TREE\nGIT_FILEMODE_BLOB\nGIT_FILEMODE_BLOB_EXECUTABLE\nGIT_FILEMODE_LINK\nGIT_FILEMODE_COMMIT","tdef":"typedef","comments":"Valid modes for index and tree entries.","used":{"returns":[],"needs":["git_treebuilder_insert"]}}],["git_filter",{"type":"struct","value":"git_filter","file":"sys/filter.h","line":232,"lineto":244,"block":"unsigned int version\nconst char *attributes\ngit_filter_init_fn initialize\ngit_filter_shutdown_fn shutdown\ngit_filter_check_fn check\ngit_filter_apply_fn apply\ngit_filter_cleanup_fn cleanup","tdef":null,"comments":"Filter structure used to register custom filters.\n\nTo associate extra data with a filter, allocate extra data and put the\n`git_filter` struct at the start of your data buffer, then cast the\n`self` pointer to your larger structure when your callback is invoked.\n\n`version` should be set to GIT_FILTER_VERSION\n\n`attributes` is a whitespace-separated list of attribute names to check\nfor this filter (e.g. \"eol crlf text\"). If the attribute name is bare,\nit will be simply loaded and passed to the `check` callback. If it has\na value (i.e. \"name=value\"), the attribute must match that value for\nthe filter to be applied.\n\nThe `initialize`, `shutdown`, `check`, `apply`, and `cleanup` callbacks\nare all documented above with the respective function pointer typedefs.","used":{"returns":["git_filter_lookup"],"needs":["git_filter_list_push","git_filter_register"]}}],["git_filter_apply_fn",{"type":"function pointer","value":"git_filter_apply_fn","file":"sys/filter.h","line":195,"lineto":200,"comments":"Callback to actually perform the data filtering\n\nSpecified as `filter.apply`, this is the callback that actually filters\ndata. If it successfully writes the output, it should return 0. Like\n`check`, it can return GIT_PASSTHROUGH to indicate that the filter\ndoesn't want to run. Other error codes will stop filter processing and\nreturn to the caller.\n\nThe `payload` value will refer to any payload that was set by the\n`check` callback. It may be read from or written to as needed.","used":{"returns":[],"needs":[]}}],["git_filter_check_fn",{"type":"function pointer","value":"git_filter_check_fn","file":"sys/filter.h","line":177,"lineto":181,"comments":"Callback to decide if a given source needs this filter\n\nSpecified as `filter.check`, this is an optional callback that checks\nif filtering is needed for a given source.\n\nIt should return 0 if the filter should be applied (i.e. success),\nGIT_PASSTHROUGH if the filter should not be applied, or an error code\nto fail out of the filter processing pipeline and return to the caller.\n\nThe `attr_values` will be set to the values of any attributes given in\nthe filter definition. See `git_filter` below for more detail.\n\nThe `payload` will be a pointer to a reference payload for the filter.\nThis will start as NULL, but `check` can assign to this pointer for\nlater use by the `apply` callback. Note that the value should be heap\nallocated (not stack), so that it doesn't go away before the `apply`\ncallback can use it. If a filter allocates and assigns a value to the\n`payload`, it will need a `cleanup` callback to free the payload.","used":{"returns":[],"needs":[]}}],["git_filter_cleanup_fn",{"type":"function pointer","value":"git_filter_cleanup_fn","file":"sys/filter.h","line":210,"lineto":212,"comments":"Callback to clean up after filtering has been applied\n\nSpecified as `filter.cleanup`, this is an optional callback invoked\nafter the filter has been applied. If the `check` or `apply` callbacks\nallocated a `payload` to keep per-source filter state, use this\ncallback to free that payload and release resources as required.","used":{"returns":[],"needs":[]}}],["git_filter_init_fn",{"type":"function pointer","value":"git_filter_init_fn","file":"sys/filter.h","line":144,"lineto":144,"comments":"Initialize callback on filter\n\nSpecified as `filter.initialize`, this is an optional callback invoked\nbefore a filter is first used. It will be called once at most.\n\nIf non-NULL, the filter's `initialize` callback will be invoked right\nbefore the first use of the filter, so you can defer expensive\ninitialization operations (in case libgit2 is being used in a way that\ndoesn't need the filter).","used":{"returns":[],"needs":[]}}],["git_filter_list",{"type":"struct","value":"git_filter_list","file":"filter.h","line":65,"lineto":65,"block":"","tdef":"typedef","comments":"List of filters to be applied\n\nThis represents a list of filters to be applied to a file / blob. You\ncan build the list with one call, apply it with another, and dispose it\nwith a third. In typical usage, there are not many occasions where a\ngit_filter_list is needed directly since the library will generally\nhandle conversions for you, but it can be convenient to be able to\nbuild and apply the list sometimes.","used":{"returns":[],"needs":["git_filter_list_apply_to_blob","git_filter_list_apply_to_data","git_filter_list_apply_to_file","git_filter_list_free","git_filter_list_length","git_filter_list_load","git_filter_list_new","git_filter_list_push"]}}],["git_filter_mode_t",{"type":"enum","file":"filter.h","line":31,"lineto":36,"block":"GIT_FILTER_TO_WORKTREE\nGIT_FILTER_SMUDGE\nGIT_FILTER_TO_ODB\nGIT_FILTER_CLEAN","tdef":"typedef","comments":"Filters are applied in one of two directions: smudging - which is\nexporting a file from the Git object database to the working directory,\nand cleaning - which is importing a file from the working directory to\nthe Git object database. These values control which direction of\nchange is being applied.","used":{"returns":[],"needs":["git_filter_list_load","git_filter_list_new"]}}],["git_filter_shutdown_fn",{"type":"function pointer","value":"git_filter_shutdown_fn","file":"sys/filter.h","line":155,"lineto":155,"comments":"Shutdown callback on filter\n\nSpecified as `filter.shutdown`, this is an optional callback invoked\nwhen the filter is unregistered or when libgit2 is shutting down. It\nwill be called once at most and should release resources as needed.\n\nTypically this function will free the `git_filter` object itself.","used":{"returns":[],"needs":[]}}],["git_filter_source",{"type":"struct","value":"git_filter_source","file":"sys/filter.h","line":92,"lineto":92,"block":"","tdef":"typedef","comments":"A filter source represents a file/blob to be processed","used":{"returns":[],"needs":["git_filter_source_filemode","git_filter_source_id","git_filter_source_mode","git_filter_source_path","git_filter_source_repo"]}}],["git_headlist_cb",{"type":"function pointer","value":"git_headlist_cb","file":"net.h","line":49,"lineto":49,"comments":"Callback for listing the remote heads","used":{"returns":[],"needs":["git_remote_ls"]}}],["git_index",{"type":"struct","value":"git_index","file":"types.h","line":132,"lineto":132,"block":"","tdef":"typedef","comments":"Memory representation of an index file.","used":{"returns":[],"needs":["git_checkout_index","git_diff_index_to_workdir","git_diff_tree_to_index","git_index_add","git_index_add_all","git_index_add_bypath","git_index_caps","git_index_clear","git_index_conflict_add","git_index_conflict_cleanup","git_index_conflict_get","git_index_conflict_iterator_new","git_index_conflict_remove","git_index_entrycount","git_index_find","git_index_free","git_index_get_byindex","git_index_get_bypath","git_index_has_conflicts","git_index_name_add","git_index_name_clear","git_index_name_entrycount","git_index_name_get_byindex","git_index_new","git_index_open","git_index_owner","git_index_path","git_index_read","git_index_read_tree","git_index_remove","git_index_remove_all","git_index_remove_bypath","git_index_remove_directory","git_index_reuc_add","git_index_reuc_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_byindex","git_index_reuc_get_bypath","git_index_reuc_remove","git_index_set_caps","git_index_update_all","git_index_write","git_index_write_tree","git_index_write_tree_to","git_merge_trees","git_pathspec_match_index","git_repository_index","git_repository_set_index"]}}],["git_index_add_option_t",{"type":"enum","file":"index.h","line":134,"lineto":139,"block":"GIT_INDEX_ADD_DEFAULT\nGIT_INDEX_ADD_FORCE\nGIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH\nGIT_INDEX_ADD_CHECK_PATHSPEC","tdef":"typedef","comments":"Flags for APIs that add files matching pathspec","used":{"returns":[],"needs":[]}}],["git_index_conflict_iterator",{"type":"struct","value":"git_index_conflict_iterator","file":"types.h","line":135,"lineto":135,"block":"","tdef":"typedef","comments":"An interator for conflicts in the index.","used":{"returns":[],"needs":["git_index_conflict_iterator_free","git_index_conflict_iterator_new","git_index_conflict_next"]}}],["git_index_entry",{"type":"struct","value":"git_index_entry","file":"index.h","line":48,"lineto":65,"block":"git_index_time ctime\ngit_index_time mtime\nunsigned int dev\nunsigned int ino\nunsigned int mode\nunsigned int uid\nunsigned int gid\ngit_off_t file_size\ngit_oid oid\nunsigned short flags\nunsigned short flags_extended\nchar *path","tdef":"typedef","comments":"In-memory representation of a file entry in the index.\n\nThis is a public structure that represents a file entry in the index.\nThe meaning of the fields corresponds to core Git's documentation (in\n\"Documentation/technical/index-format.txt\").\n\nThe `flags` field consists of a number of bit fields which can be\naccessed via the first set of `GIT_IDXENTRY_...` bitmasks below. These\nflags are all read from and persisted to disk.\n\nThe `flags_extended` field also has a number of bit fields which can be\naccessed via the later `GIT_IDXENTRY_...` bitmasks below. Some of\nthese flags are read from and written to disk, but some are set aside\nfor in-memory only reference.","used":{"returns":["git_index_get_byindex","git_index_get_bypath"],"needs":["git_index_add","git_index_conflict_add","git_index_conflict_get","git_index_conflict_next","git_index_entry_stage"]}}],["git_index_matched_path_cb",{"type":"function pointer","value":"git_index_matched_path_cb","file":"index.h","line":130,"lineto":131,"comments":"Callback for APIs that add/remove/update files matching pathspec","used":{"returns":[],"needs":["git_index_add_all","git_index_remove_all","git_index_update_all"]}}],["git_index_name_entry",{"type":"struct","value":"git_index_name_entry","file":"sys/index.h","line":20,"lineto":24,"block":"char *ancestor\nchar *ours\nchar *theirs","tdef":"typedef","comments":"Representation of a rename conflict entry in the index.","used":{"returns":["git_index_name_get_byindex"],"needs":[]}}],["git_index_reuc_entry",{"type":"struct","value":"git_index_reuc_entry","file":"sys/index.h","line":27,"lineto":31,"block":"unsigned int mode[3]\ngit_oid oid[3]\nchar *path","tdef":"typedef","comments":"Representation of a resolve undo entry in the index.","used":{"returns":["git_index_reuc_get_byindex","git_index_reuc_get_bypath"],"needs":[]}}],["git_index_time",{"type":"struct","value":"git_index_time","file":"index.h","line":26,"lineto":30,"block":"git_time_t seconds\nunsigned int nanoseconds","tdef":"typedef","comments":"Time structure used in a git index entry","used":{"returns":[],"needs":[]}}],["git_indexcap_t",{"type":"enum","file":"index.h","line":122,"lineto":127,"block":"GIT_INDEXCAP_IGNORE_CASE\nGIT_INDEXCAP_NO_FILEMODE\nGIT_INDEXCAP_NO_SYMLINKS\nGIT_INDEXCAP_FROM_OWNER","tdef":"typedef","comments":"Capabilities of system that affect index actions.","used":{"returns":[],"needs":[]}}],["git_merge_automerge_flags",{"type":"enum","file":"merge.h","line":37,"lineto":63,"block":"GIT_MERGE_AUTOMERGE_NORMAL\nGIT_MERGE_AUTOMERGE_NONE\nGIT_MERGE_AUTOMERGE_FAVOR_OURS\nGIT_MERGE_AUTOMERGE_FAVOR_THEIRS","tdef":"typedef","comments":"Automerge options for `git_merge_trees_opts`.","used":{"returns":[],"needs":[]}}],["git_merge_head",{"type":"struct","value":"git_merge_head","file":"types.h","line":175,"lineto":175,"block":"","tdef":"typedef","comments":"Merge heads, the input to merge","used":{"returns":[],"needs":["git_merge_head_free","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref"]}}],["git_merge_tree_flag_t",{"type":"enum","file":"merge.h","line":29,"lineto":32,"block":"GIT_MERGE_TREE_FIND_RENAMES","tdef":"typedef","comments":"Flags for `git_merge_tree` options. A combination of these flags can be\npassed in via the `flags` value in the `git_merge_tree_opts`.","used":{"returns":[],"needs":[]}}],["git_note",{"type":"struct","value":"git_note","file":"types.h","line":150,"lineto":150,"block":"","tdef":"typedef","comments":"Representation of a git note","used":{"returns":[],"needs":["git_note_free","git_note_message","git_note_oid","git_note_read"]}}],["git_note_foreach_cb",{"type":"function pointer","value":"git_note_foreach_cb","file":"notes.h","line":29,"lineto":30,"comments":"Callback for git_note_foreach.\n\nReceives:\n- blob_id: Oid of the blob containing the message\n- annotated_object_id: Oid of the git object being annotated\n- payload: Payload data passed to `git_note_foreach`","used":{"returns":[],"needs":["git_note_foreach"]}}],["git_note_iterator",{"type":"struct","value":"git_note_iterator","file":"notes.h","line":35,"lineto":35,"block":"","tdef":"typedef","comments":"note iterator","used":{"returns":[],"needs":["git_note_iterator_free","git_note_iterator_new","git_note_next"]}}],["git_object",{"type":"struct","value":"git_object","file":"types.h","line":108,"lineto":108,"block":"","tdef":"typedef","comments":"Representation of a generic object in a repository","used":{"returns":[],"needs":["git_checkout_tree","git_object_dup","git_object_free","git_object_id","git_object_lookup","git_object_lookup_prefix","git_object_owner","git_object_peel","git_object_type","git_reference_peel","git_reset","git_reset_default","git_revparse_ext","git_revparse_single","git_tag_annotation_create","git_tag_create","git_tag_create_lightweight","git_tag_peel","git_tag_target","git_tree_entry_to_object"]}}],["git_odb",{"type":"struct","value":"git_odb","file":"types.h","line":81,"lineto":81,"block":"","tdef":"typedef","comments":"An open object database handle.","used":{"returns":[],"needs":["git_odb_add_alternate","git_odb_add_backend","git_odb_add_disk_alternate","git_odb_exists","git_odb_foreach","git_odb_free","git_odb_get_backend","git_odb_new","git_odb_num_backends","git_odb_open","git_odb_open_rstream","git_odb_open_wstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_refresh","git_odb_write","git_odb_write_pack","git_repository_odb","git_repository_set_odb","git_repository_wrap_odb"]}}],["git_odb_backend",{"type":"struct","value":"git_odb_backend","file":"types.h","line":84,"lineto":84,"block":"","tdef":"typedef","comments":"A custom backend in an ODB","used":{"returns":[],"needs":["git_odb_add_alternate","git_odb_add_backend","git_odb_backend_loose","git_odb_backend_one_pack","git_odb_backend_pack","git_odb_get_backend"]}}],["git_odb_foreach_cb",{"type":"function pointer","value":"git_odb_foreach_cb","file":"odb.h","line":26,"lineto":26,"comments":"Function type for callbacks from git_odb_foreach.","used":{"returns":[],"needs":["git_odb_foreach"]}}],["git_odb_object",{"type":"struct","value":"git_odb_object","file":"types.h","line":87,"lineto":87,"block":"","tdef":"typedef","comments":"An object read from the ODB","used":{"returns":[],"needs":["git_odb_object_data","git_odb_object_free","git_odb_object_id","git_odb_object_size","git_odb_object_type","git_odb_read","git_odb_read_prefix"]}}],["git_odb_stream",{"type":"struct","value":"git_odb_stream","file":"types.h","line":90,"lineto":90,"block":"","tdef":"typedef","comments":"A stream to read/write from the ODB","used":{"returns":[],"needs":["git_odb_open_rstream","git_odb_open_wstream","git_odb_stream_finalize_write","git_odb_stream_free","git_odb_stream_read","git_odb_stream_write"]}}],["git_odb_stream_t",{"type":"enum","file":"odb_backend.h","line":62,"lineto":66,"block":"GIT_STREAM_RDONLY\nGIT_STREAM_WRONLY\nGIT_STREAM_RW","tdef":"typedef","comments":"Streaming mode","used":{"returns":[],"needs":[]}}],["git_odb_writepack",{"type":"struct","value":"git_odb_writepack","file":"types.h","line":93,"lineto":93,"block":"","tdef":"typedef","comments":"A stream to write a packfile to the ODB","used":{"returns":[],"needs":["git_odb_write_pack"]}}],["git_oid",{"type":"struct","value":"git_oid","file":"oid.h","line":33,"lineto":36,"block":"unsigned char id[GIT_OID_RAWSZ]","tdef":"typedef","comments":"Unique identity of any object (commit, tree, blob, tag).","used":{"returns":["git_blob_id","git_commit_id","git_commit_parent_id","git_commit_tree_id","git_filter_source_id","git_indexer_stream_hash","git_note_oid","git_object_id","git_odb_object_id","git_reference_target","git_reference_target_peel","git_reflog_entry_id_new","git_reflog_entry_id_old","git_submodule_head_id","git_submodule_index_id","git_submodule_wd_id","git_tag_id","git_tag_target_id","git_tree_entry_id","git_tree_id"],"needs":["git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_lookup","git_blob_lookup_prefix","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_lookup","git_commit_lookup_prefix","git_graph_ahead_behind","git_index_reuc_add","git_index_write_tree","git_index_write_tree_to","git_merge_base","git_merge_base_many","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_note_create","git_note_next","git_note_read","git_note_remove","git_object_lookup","git_object_lookup_prefix","git_odb_exists","git_odb_hash","git_odb_hashfile","git_odb_open_rstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_stream_finalize_write","git_odb_write","git_oid_allocfmt","git_oid_cmp","git_oid_cpy","git_oid_equal","git_oid_fmt","git_oid_fromraw","git_oid_fromstr","git_oid_fromstrn","git_oid_fromstrp","git_oid_iszero","git_oid_ncmp","git_oid_nfmt","git_oid_pathfmt","git_oid_strcmp","git_oid_streq","git_oid_tostr","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_reference__alloc","git_reference_create","git_reference_name_to_id","git_reference_set_target","git_reflog_append","git_repository_hashfile","git_repository_set_head_detached","git_revwalk_hide","git_revwalk_next","git_revwalk_push","git_stash_save","git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_lookup","git_tag_lookup_prefix","git_tree_entry_byoid","git_tree_lookup","git_tree_lookup_prefix","git_treebuilder_insert","git_treebuilder_write"]}}],["git_oid_shorten",{"type":"struct","value":"git_oid_shorten","file":"oid.h","line":215,"lineto":215,"block":"","tdef":"typedef","comments":"OID Shortener object","used":{"returns":["git_oid_shorten_new"],"needs":["git_oid_shorten_add","git_oid_shorten_free"]}}],["git_otype",{"type":"enum","file":"types.h","line":67,"lineto":78,"block":"GIT_OBJ_ANY\nGIT_OBJ_BAD\nGIT_OBJ__EXT1\nGIT_OBJ_COMMIT\nGIT_OBJ_TREE\nGIT_OBJ_BLOB\nGIT_OBJ_TAG\nGIT_OBJ__EXT2\nGIT_OBJ_OFS_DELTA\nGIT_OBJ_REF_DELTA","tdef":"typedef","comments":"Basic type (loose or packed) of any Git object.","used":{"returns":[],"needs":["git_object__size","git_object_lookup","git_object_lookup_prefix","git_object_peel","git_object_type2string","git_object_typeisloose","git_odb_hash","git_odb_hashfile","git_odb_open_wstream","git_odb_read_header","git_odb_write","git_reference_peel","git_repository_hashfile"]}}],["git_packbuilder",{"type":"struct","value":"git_packbuilder","file":"types.h","line":153,"lineto":153,"block":"","tdef":"typedef","comments":"Representation of a git packbuilder","used":{"returns":[],"needs":["git_packbuilder_foreach","git_packbuilder_free","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_packbuilder_new","git_packbuilder_object_count","git_packbuilder_set_threads","git_packbuilder_write","git_packbuilder_written"]}}],["git_pathspec",{"type":"struct","value":"git_pathspec","file":"pathspec.h","line":18,"lineto":18,"block":"","tdef":"typedef","comments":"Compiled pathspec","used":{"returns":[],"needs":["git_pathspec_free","git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_tree","git_pathspec_match_workdir","git_pathspec_matches_path","git_pathspec_new"]}}],["git_pathspec_flag_t",{"type":"enum","file":"pathspec.h","line":46,"lineto":54,"block":"GIT_PATHSPEC_DEFAULT\nGIT_PATHSPEC_IGNORE_CASE\nGIT_PATHSPEC_USE_CASE\nGIT_PATHSPEC_NO_GLOB\nGIT_PATHSPEC_NO_MATCH_ERROR\nGIT_PATHSPEC_FIND_FAILURES\nGIT_PATHSPEC_FAILURES_ONLY","tdef":"typedef","comments":"Options controlling how pathspec match should be executed\n\n- GIT_PATHSPEC_IGNORE_CASE forces match to ignore case; otherwise\n match will use native case sensitivity of platform filesystem\n- GIT_PATHSPEC_USE_CASE forces case sensitive match; otherwise\n match will use native case sensitivity of platform filesystem\n- GIT_PATHSPEC_NO_GLOB disables glob patterns and just uses simple\n string comparison for matching\n- GIT_PATHSPEC_NO_MATCH_ERROR means the match functions return error\n code GIT_ENOTFOUND if no matches are found; otherwise no matches is\n still success (return 0) but `git_pathspec_match_list_entrycount`\n will indicate 0 matches.\n- GIT_PATHSPEC_FIND_FAILURES means that the `git_pathspec_match_list`\n should track which patterns matched which files so that at the end of\n the match we can identify patterns that did not match any files.\n- GIT_PATHSPEC_FAILURES_ONLY means that the `git_pathspec_match_list`\n does not need to keep the actual matching filenames. Use this to\n just test if there were any matches at all or in combination with\n GIT_PATHSPEC_FIND_FAILURES to validate a pathspec.","used":{"returns":[],"needs":[]}}],["git_pathspec_match_list",{"type":"struct","value":"git_pathspec_match_list","file":"pathspec.h","line":23,"lineto":23,"block":"","tdef":"typedef","comments":"List of filenames matching a pathspec","used":{"returns":[],"needs":["git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_list_diff_entry","git_pathspec_match_list_entry","git_pathspec_match_list_entrycount","git_pathspec_match_list_failed_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_free","git_pathspec_match_tree","git_pathspec_match_workdir"]}}],["git_push_options",{"type":"struct","value":"git_push_options","file":"push.h","line":24,"lineto":32,"block":"unsigned int version\nunsigned int pb_parallelism","tdef":"typedef","comments":"Controls the behavior of a git_push object.","used":{"returns":[],"needs":["git_push_set_options"]}}],["git_ref_t",{"type":"enum","file":"types.h","line":182,"lineto":187,"block":"GIT_REF_INVALID\nGIT_REF_OID\nGIT_REF_SYMBOLIC\nGIT_REF_LISTALL","tdef":"typedef","comments":"Basic type of any Git reference.","used":{"returns":[],"needs":[]}}],["git_refdb",{"type":"struct","value":"git_refdb","file":"types.h","line":96,"lineto":96,"block":"","tdef":"typedef","comments":"An open refs database handle.","used":{"returns":[],"needs":["git_refdb_compress","git_refdb_free","git_refdb_new","git_refdb_open","git_refdb_set_backend","git_repository_refdb","git_repository_set_refdb"]}}],["git_refdb_backend",{"type":"struct","value":"git_refdb_backend","file":"types.h","line":99,"lineto":99,"block":"","tdef":"typedef","comments":"A custom backend for refs","used":{"returns":[],"needs":["git_refdb_backend_fs","git_refdb_set_backend"]}}],["git_reference",{"type":"struct","value":"git_reference","file":"types.h","line":169,"lineto":169,"block":"","tdef":"typedef","comments":"In-memory representation of a reference.","used":{"returns":["git_reference__alloc","git_reference__alloc_symbolic"],"needs":["git_branch_create","git_branch_delete","git_branch_is_head","git_branch_lookup","git_branch_move","git_branch_name","git_branch_set_upstream","git_branch_upstream","git_merge_head_from_ref","git_reference_cmp","git_reference_create","git_reference_delete","git_reference_dwim","git_reference_free","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_lookup","git_reference_name","git_reference_next","git_reference_owner","git_reference_peel","git_reference_rename","git_reference_resolve","git_reference_set_target","git_reference_shorthand","git_reference_symbolic_create","git_reference_symbolic_set_target","git_reference_symbolic_target","git_reference_target","git_reference_target_peel","git_reference_type","git_reflog_delete","git_reflog_read","git_reflog_rename","git_repository_head","git_revparse_ext"]}}],["git_reference_iterator",{"type":"struct","value":"git_reference_iterator","file":"types.h","line":172,"lineto":172,"block":"","tdef":"typedef","comments":"Iterator for references","used":{"returns":[],"needs":["git_reference_iterator_free","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_next"]}}],["git_reflog",{"type":"struct","value":"git_reflog","file":"types.h","line":147,"lineto":147,"block":"","tdef":"typedef","comments":"Representation of a reference log","used":{"returns":[],"needs":["git_reflog_append","git_reflog_drop","git_reflog_entry_byindex","git_reflog_entrycount","git_reflog_free","git_reflog_read","git_reflog_write"]}}],["git_reflog_entry",{"type":"struct","value":"git_reflog_entry","file":"types.h","line":144,"lineto":144,"block":"","tdef":"typedef","comments":"Representation of a reference log entry","used":{"returns":["git_reflog_entry_byindex"],"needs":["git_reflog_entry_committer","git_reflog_entry_id_new","git_reflog_entry_id_old","git_reflog_entry_message"]}}],["git_remote_callbacks",{"type":"struct","value":"git_remote_callbacks","file":"remote.h","line":402,"lineto":411,"block":"unsigned int version\nvoid (*progress)(const char *str, int len, void *data)\nint (*completion)(git_remote_completion_type type, void *data)\nint (*update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data)\nvoid *payload","tdef":null,"comments":"The callback settings structure\n\nSet the calbacks to be called by the remote.","used":{"returns":[],"needs":["git_remote_set_callbacks"]}}],["git_remote_head",{"type":"struct","value":"git_remote_head","file":"net.h","line":39,"lineto":44,"block":"int local\ngit_oid oid\ngit_oid loid\nchar *name","tdef":null,"comments":"Remote head description, given out on `ls` calls.","used":{"returns":[],"needs":[]}}],["git_repository",{"type":"struct","value":"git_repository","file":"types.h","line":105,"lineto":105,"block":"","tdef":"typedef","comments":"Representation of an existing git repository,\nincluding all its object contents","used":{"returns":["git_blob_owner","git_commit_owner","git_filter_source_repo","git_index_owner","git_object_owner","git_reference_owner","git_remote_owner","git_revwalk_repository","git_submodule_owner","git_tag_owner","git_tree_owner"],"needs":["git_attr_add_macro","git_attr_cache_flush","git_attr_foreach","git_attr_get","git_attr_get_many","git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_lookup","git_blob_lookup_prefix","git_branch_create","git_branch_foreach","git_branch_lookup","git_branch_remote_name","git_branch_upstream_name","git_checkout_head","git_checkout_index","git_checkout_tree","git_clone","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_lookup","git_commit_lookup_prefix","git_diff_index_to_workdir","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_filter_list_apply_to_file","git_filter_list_load","git_filter_list_new","git_graph_ahead_behind","git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored","git_index_write_tree_to","git_merge_base","git_merge_base_many","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref","git_merge_trees","git_note_create","git_note_default_ref","git_note_foreach","git_note_iterator_new","git_note_read","git_note_remove","git_object_lookup","git_object_lookup_prefix","git_packbuilder_new","git_pathspec_match_workdir","git_refdb_backend_fs","git_refdb_new","git_refdb_open","git_reference_create","git_reference_dwim","git_reference_foreach","git_reference_foreach_glob","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_list","git_reference_lookup","git_reference_name_to_id","git_reference_symbolic_create","git_remote_create","git_remote_create_inmemory","git_remote_list","git_remote_load","git_repository__cleanup","git_repository_config","git_repository_detach_head","git_repository_fetchhead_foreach","git_repository_free","git_repository_get_namespace","git_repository_hashfile","git_repository_head","git_repository_head_detached","git_repository_head_unborn","git_repository_index","git_repository_init","git_repository_init_ext","git_repository_is_bare","git_repository_is_empty","git_repository_is_shallow","git_repository_merge_cleanup","git_repository_mergehead_foreach","git_repository_message","git_repository_message_remove","git_repository_new","git_repository_odb","git_repository_open","git_repository_open_bare","git_repository_open_ext","git_repository_path","git_repository_refdb","git_repository_set_config","git_repository_set_head","git_repository_set_head_detached","git_repository_set_index","git_repository_set_namespace","git_repository_set_odb","git_repository_set_refdb","git_repository_set_workdir","git_repository_state","git_repository_workdir","git_repository_wrap_odb","git_reset","git_reset_default","git_revparse","git_revparse_ext","git_revparse_single","git_revwalk_new","git_signature_default","git_stash_drop","git_stash_foreach","git_stash_save","git_status_file","git_status_foreach","git_status_foreach_ext","git_status_list_new","git_status_should_ignore","git_submodule_add_setup","git_submodule_foreach","git_submodule_lookup","git_submodule_open","git_submodule_reload_all","git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_foreach","git_tag_list","git_tag_list_match","git_tag_lookup","git_tag_lookup_prefix","git_tree_entry_to_object","git_tree_lookup","git_tree_lookup_prefix","git_treebuilder_write"]}}],["git_repository_init_flag_t",{"type":"enum","file":"repository.h","line":202,"lineto":209,"block":"GIT_REPOSITORY_INIT_BARE\nGIT_REPOSITORY_INIT_NO_REINIT\nGIT_REPOSITORY_INIT_NO_DOTGIT_DIR\nGIT_REPOSITORY_INIT_MKDIR\nGIT_REPOSITORY_INIT_MKPATH\nGIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE","tdef":"typedef","comments":"Option flags for `git_repository_init_ext`.\n\nThese flags configure extra behaviors to `git_repository_init_ext`.\nIn every case, the default behavior is the zero value (i.e. flag is\nnot set). Just OR the flag values together for the `flags` parameter\nwhen initializing a new repo. Details of individual values are:\n\n* BARE - Create a bare repository with no working directory.\n* NO_REINIT - Return an GIT_EEXISTS error if the repo_path appears to\n already be an git repository.\n* NO_DOTGIT_DIR - Normally a \"/.git/\" will be appended to the repo\n path for non-bare repos (if it is not already there), but\n passing this flag prevents that behavior.\n* MKDIR - Make the repo_path (and workdir_path) as needed. Init is\n always willing to create the \".git\" directory even without this\n flag. This flag tells init to create the trailing component of\n the repo and workdir paths as needed.\n* MKPATH - Recursively make all components of the repo and workdir\n paths as necessary.\n* EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to\n initialize a new repo. This flags enables external templates,\n looking the \"template_path\" from the options if set, or the\n `init.templatedir` global config if not, or falling back on\n \"/usr/share/git-core/templates\" if it exists.","used":{"returns":[],"needs":[]}}],["git_repository_init_mode_t",{"type":"enum","file":"repository.h","line":224,"lineto":228,"block":"GIT_REPOSITORY_INIT_SHARED_UMASK\nGIT_REPOSITORY_INIT_SHARED_GROUP\nGIT_REPOSITORY_INIT_SHARED_ALL","tdef":"typedef","comments":"Mode options for `git_repository_init_ext`.\n\nSet the mode field of the `git_repository_init_options` structure\neither to the custom mode that you would like, or to one of the\nfollowing modes:\n\n* SHARED_UMASK - Use permissions configured by umask - the default.\n* SHARED_GROUP - Use \"--shared=group\" behavior, chmod'ing the new repo\n to be group writable and \"g+sx\" for sticky group assignment.\n* SHARED_ALL - Use \"--shared=all\" behavior, adding world readability.\n* Anything else - Set to custom value.","used":{"returns":[],"needs":[]}}],["git_repository_init_options",{"type":"struct","value":"git_repository_init_options","file":"repository.h","line":258,"lineto":270,"block":"unsigned int version\nuint32_t flags\nuint32_t mode\nconst char *workdir_path\nconst char *description\nconst char *template_path\nconst char *initial_head\nconst char *origin_url","tdef":"typedef","comments":"Extended options structure for `git_repository_init_ext`.\n\nThis contains extra options for `git_repository_init_ext` that enable\nadditional initialization features. The fields are:\n\n* flags - Combination of GIT_REPOSITORY_INIT flags above.\n* mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_...\n constants above, or to a custom value that you would like.\n* workdir_path - The path to the working dir or NULL for default (i.e.\n repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH,\n IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not\n the \"natural\" working directory, a .git gitlink file will be\n created here linking to the repo_path.\n* description - If set, this will be used to initialize the \"description\"\n file in the repository, instead of using the template content.\n* template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set,\n this contains the path to use for the template directory. If\n this is NULL, the config or default directory options will be\n used instead.\n* initial_head - The name of the head to point HEAD at. If NULL, then\n this will be treated as \"master\" and the HEAD ref will be set\n to \"refs/heads/master\". If this begins with \"refs/\" it will be\n used verbatim; otherwise \"refs/heads/\" will be prefixed.\n* origin_url - If this is non-NULL, then after the rest of the\n repository initialization is completed, an \"origin\" remote\n will be added pointing to this URL.","used":{"returns":[],"needs":["git_repository_init_ext"]}}],["git_repository_open_flag_t",{"type":"enum","file":"repository.h","line":101,"lineto":105,"block":"GIT_REPOSITORY_OPEN_NO_SEARCH\nGIT_REPOSITORY_OPEN_CROSS_FS\nGIT_REPOSITORY_OPEN_BARE","tdef":"typedef","comments":"Option flags for `git_repository_open_ext`.\n\n* GIT_REPOSITORY_OPEN_NO_SEARCH - Only open the repository if it can be\n immediately found in the start_path. Do not walk up from the\n start_path looking at parent directories.\n* GIT_REPOSITORY_OPEN_CROSS_FS - Unless this flag is set, open will not\n continue searching across filesystem boundaries (i.e. when `st_dev`\n changes from the `stat` system call). (E.g. Searching in a user's home\n directory \"/home/user/source/\" will not return \"/.git/\" as the found\n repo if \"/\" is a different filesystem than \"/home\".)\n* GIT_REPOSITORY_OPEN_BARE - Open repository as a bare repo regardless\n of core.bare config, and defer loading config file for faster setup.\n Unlike `git_repository_open_bare`, this can follow gitlinks.","used":{"returns":[],"needs":[]}}],["git_reset_t",{"type":"enum","file":"reset.h","line":21,"lineto":25,"block":"GIT_RESET_SOFT\nGIT_RESET_MIXED\nGIT_RESET_HARD","tdef":"typedef","comments":"Kinds of reset operation","used":{"returns":[],"needs":["git_reset"]}}],["git_revspec",{"type":"struct","value":"git_revspec","file":"revparse.h","line":83,"lineto":90,"block":"git_object *from\ngit_object *to\nunsigned int flags","tdef":"typedef","comments":"Git Revision Spec: output of a `git_revparse` operation","used":{"returns":[],"needs":["git_revparse"]}}],["git_revwalk",{"type":"struct","value":"git_revwalk","file":"types.h","line":111,"lineto":111,"block":"","tdef":"typedef","comments":"Representation of an in-progress walk through the commits in a repo","used":{"returns":[],"needs":["git_revwalk_free","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_hide_ref","git_revwalk_new","git_revwalk_next","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_push_range","git_revwalk_push_ref","git_revwalk_repository","git_revwalk_reset","git_revwalk_simplify_first_parent","git_revwalk_sorting"]}}],["git_signature",{"type":"struct","value":"git_signature","file":"types.h","line":162,"lineto":166,"block":"char *name\nchar *email\ngit_time when","tdef":"typedef","comments":"An action signature (e.g. for committers, taggers, etc)","used":{"returns":["git_commit_author","git_commit_committer","git_reflog_entry_committer","git_signature_dup","git_tag_tagger"],"needs":["git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_note_create","git_note_remove","git_reflog_append","git_signature_default","git_signature_dup","git_signature_free","git_signature_new","git_signature_now","git_stash_save","git_tag_annotation_create","git_tag_create"]}}],["git_stash_cb",{"type":"function pointer","value":"git_stash_cb","file":"stash.h","line":79,"lineto":83,"comments":"When iterating over all the stashed states, callback that will be\nissued per entry.\n\n@param index The position within the stash list. 0 points to the\nmost recent stashed state.\n\n@param message The stash message.\n\n@param stash_id The commit oid of the stashed state.\n\n@param payload Extra parameter to callback function.\n\n@return 0 on success, GIT_EUSER on non-zero callback, or error code","used":{"returns":[],"needs":["git_stash_foreach"]}}],["git_status_cb",{"type":"function pointer","value":"git_status_cb","file":"status.h","line":59,"lineto":60,"comments":"Function pointer to receive status on individual files\n\n`path` is the relative path to the file from the root of the repository.\n\n`status_flags` is a combination of `git_status_t` values that apply.\n\n`payload` is the value you passed to the foreach function as payload.","used":{"returns":[],"needs":["git_status_foreach","git_status_foreach_ext"]}}],["git_status_entry",{"type":"struct","value":"git_status_entry","file":"status.h","line":187,"lineto":191,"block":"git_status_t status\ngit_diff_delta *head_to_index\ngit_diff_delta *index_to_workdir","tdef":"typedef","comments":"A status entry, providing the differences between the file as it exists\nin HEAD and the index, and providing the differences between the index\nand the working directory.\n\nThe `status` value provides the status flags for this file.\n\nThe `head_to_index` value provides detailed information about the\ndifferences between the file in HEAD and the file in the index.\n\nThe `index_to_workdir` value provides detailed information about the\ndifferences between the file in the index and the file in the\nworking directory.","used":{"returns":["git_status_byindex"],"needs":[]}}],["git_status_list",{"type":"struct","value":"git_status_list","file":"types.h","line":178,"lineto":178,"block":"","tdef":"typedef","comments":"Representation of a status collection","used":{"returns":[],"needs":["git_status_byindex","git_status_list_entrycount","git_status_list_free","git_status_list_new"]}}],["git_status_opt_t",{"type":"enum","file":"status.h","line":127,"lineto":145,"block":"GIT_STATUS_OPT_INCLUDE_UNTRACKED\nGIT_STATUS_OPT_INCLUDE_IGNORED\nGIT_STATUS_OPT_INCLUDE_UNMODIFIED\nGIT_STATUS_OPT_EXCLUDE_SUBMODULES\nGIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS\nGIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH\nGIT_STATUS_OPT_RECURSE_IGNORED_DIRS\nGIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX\nGIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR\nGIT_STATUS_OPT_SORT_CASE_SENSITIVELY\nGIT_STATUS_OPT_SORT_CASE_INSENSITIVELY\nGIT_STATUS_OPT_RENAMES_FROM_REWRITES","tdef":"typedef","comments":"Flags to control status callbacks\n\n- GIT_STATUS_OPT_INCLUDE_UNTRACKED says that callbacks should be made\n on untracked files. These will only be made if the workdir files are\n included in the status \"show\" option.\n- GIT_STATUS_OPT_INCLUDE_IGNORED says that ignored files get callbacks.\n Again, these callbacks will only be made if the workdir files are\n included in the status \"show\" option.\n- GIT_STATUS_OPT_INCLUDE_UNMODIFIED indicates that callback should be\n made even on unmodified files.\n- GIT_STATUS_OPT_EXCLUDE_SUBMODULES indicates that submodules should be\n skipped. This only applies if there are no pending typechanges to\n the submodule (either from or to another type).\n- GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS indicates that all files in\n untracked directories should be included. Normally if an entire\n directory is new, then just the top-level directory is included (with\n a trailing slash on the entry name). This flag says to include all\n of the individual files in the directory instead.\n- GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH indicates that the given path\n should be treated as a literal path, and not as a pathspec pattern.\n- GIT_STATUS_OPT_RECURSE_IGNORED_DIRS indicates that the contents of\n ignored directories should be included in the status. This is like\n doing `git ls-files -o -i --exclude-standard` with core git.\n- GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX indicates that rename detection\n should be processed between the head and the index and enables\n the GIT_STATUS_INDEX_RENAMED as a possible status flag.\n- GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR indicates that rename\n detection should be run between the index and the working directory\n and enabled GIT_STATUS_WT_RENAMED as a possible status flag.\n- GIT_STATUS_OPT_SORT_CASE_SENSITIVELY overrides the native case\n sensitivity for the file system and forces the output to be in\n case-sensitive order\n- GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY overrides the native case\n sensitivity for the file system and forces the output to be in\n case-insensitive order\n- GIT_STATUS_OPT_RENAMES_FROM_REWRITES indicates that rename detection\n should include rewritten files\n\nCalling `git_status_foreach()` is like calling the extended version\nwith: GIT_STATUS_OPT_INCLUDE_IGNORED, GIT_STATUS_OPT_INCLUDE_UNTRACKED,\nand GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS. Those options are bundled\ntogether as `GIT_STATUS_OPT_DEFAULTS` if you want them as a baseline.","used":{"returns":[],"needs":[]}}],["git_status_options",{"type":"struct","value":"git_status_options","file":"status.h","line":163,"lineto":171,"block":"unsigned int version\ngit_status_show_t show\nunsigned int flags\ngit_strarray pathspec","tdef":"typedef","comments":"Options to control how `git_status_foreach_ext()` will issue callbacks.\n\nThis structure is set so that zeroing it out will give you relatively\nsane defaults.\n\nThe `show` value is one of the `git_status_show_t` constants that\ncontrol which files to scan and in what order.\n\nThe `flags` value is an OR'ed combination of the `git_status_opt_t`\nvalues above.\n\nThe `pathspec` is an array of path patterns to match (using\nfnmatch-style matching), or just an array of paths to match exactly if\n`GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.","used":{"returns":[],"needs":["git_status_foreach_ext","git_status_list_new"]}}],["git_status_show_t",{"type":"enum","file":"status.h","line":77,"lineto":81,"block":"GIT_STATUS_SHOW_INDEX_AND_WORKDIR\nGIT_STATUS_SHOW_INDEX_ONLY\nGIT_STATUS_SHOW_WORKDIR_ONLY","tdef":"typedef","comments":"Select the files on which to report status.\n\nWith `git_status_foreach_ext`, this will control which changes get\ncallbacks. With `git_status_list_new`, these will control which\nchanges are included in the list.\n\n- GIT_STATUS_SHOW_INDEX_AND_WORKDIR is the default. This roughly\n matches `git status --porcelain` regarding which files are\n included and in what order.\n- GIT_STATUS_SHOW_INDEX_ONLY only gives status based on HEAD to index\n comparison, not looking at working directory changes.\n- GIT_STATUS_SHOW_WORKDIR_ONLY only gives status based on index to\n working directory comparison, not comparing the index to the HEAD.","used":{"returns":[],"needs":[]}}],["git_status_t",{"type":"enum","file":"status.h","line":32,"lineto":48,"block":"GIT_STATUS_CURRENT\nGIT_STATUS_INDEX_NEW\nGIT_STATUS_INDEX_MODIFIED\nGIT_STATUS_INDEX_DELETED\nGIT_STATUS_INDEX_RENAMED\nGIT_STATUS_INDEX_TYPECHANGE\nGIT_STATUS_WT_NEW\nGIT_STATUS_WT_MODIFIED\nGIT_STATUS_WT_DELETED\nGIT_STATUS_WT_TYPECHANGE\nGIT_STATUS_WT_RENAMED\nGIT_STATUS_IGNORED","tdef":"typedef","comments":"Status flags for a single file.\n\nA combination of these values will be returned to indicate the status of\na file. Status compares the working directory, the index, and the\ncurrent HEAD of the repository. The `GIT_STATUS_INDEX` set of flags\nrepresents the status of file in the index relative to the HEAD, and the\n`GIT_STATUS_WT` set of flags represent the status of the file in the\nworking directory relative to the index.","used":{"returns":[],"needs":[]}}],["git_strarray",{"type":"struct","value":"git_strarray","file":"strarray.h","line":22,"lineto":25,"block":"char **strings\nsize_t count","tdef":"typedef","comments":"Array of strings","used":{"returns":[],"needs":["git_index_add_all","git_index_remove_all","git_index_update_all","git_pathspec_new","git_reference_list","git_remote_get_fetch_refspecs","git_remote_get_push_refspecs","git_remote_list","git_reset_default","git_strarray_copy","git_strarray_free","git_tag_list","git_tag_list_match"]}}],["git_submodule",{"type":"struct","value":"git_submodule","file":"types.h","line":235,"lineto":235,"block":"","tdef":"typedef","comments":"Opaque structure representing a submodule.","used":{"returns":[],"needs":["git_submodule_add_finalize","git_submodule_add_setup","git_submodule_add_to_index","git_submodule_fetch_recurse_submodules","git_submodule_foreach","git_submodule_head_id","git_submodule_ignore","git_submodule_index_id","git_submodule_init","git_submodule_location","git_submodule_lookup","git_submodule_name","git_submodule_open","git_submodule_owner","git_submodule_path","git_submodule_reload","git_submodule_save","git_submodule_set_fetch_recurse_submodules","git_submodule_set_ignore","git_submodule_set_update","git_submodule_set_url","git_submodule_status","git_submodule_sync","git_submodule_update","git_submodule_url","git_submodule_wd_id"]}}],["git_submodule_ignore_t",{"type":"enum","file":"types.h","line":295,"lineto":301,"block":"GIT_SUBMODULE_IGNORE_RESET\nGIT_SUBMODULE_IGNORE_NONE\nGIT_SUBMODULE_IGNORE_UNTRACKED\nGIT_SUBMODULE_IGNORE_DIRTY\nGIT_SUBMODULE_IGNORE_ALL","tdef":"typedef","comments":"Submodule ignore values\n\nThese values represent settings for the `submodule.$name.ignore`\nconfiguration value which says how deeply to look at the working\ndirectory when getting submodule status.\n\nYou can override this value in memory on a per-submodule basis with\n`git_submodule_set_ignore()` and can write the changed value to disk\nwith `git_submodule_save()`. If you have overwritten the value, you\ncan revert to the on disk value by using `GIT_SUBMODULE_IGNORE_RESET`.\n\nThe values are:\n\n- GIT_SUBMODULE_IGNORE_RESET: reset to the on-disk value.\n- GIT_SUBMODULE_IGNORE_NONE: don't ignore any change - i.e. even an\n untracked file, will mark the submodule as dirty. Ignored files are\n still ignored, of course.\n- GIT_SUBMODULE_IGNORE_UNTRACKED: ignore untracked files; only changes\n to tracked files, or the index or the HEAD commit will matter.\n- GIT_SUBMODULE_IGNORE_DIRTY: ignore changes in the working directory,\n only considering changes if the HEAD of submodule has moved from the\n value in the superproject.\n- GIT_SUBMODULE_IGNORE_ALL: never check if the submodule is dirty","used":{"returns":[],"needs":["git_submodule_set_ignore"]}}],["git_submodule_status_t",{"type":"enum","file":"submodule.h","line":72,"lineto":105,"block":"GIT_SUBMODULE_STATUS_IN_HEAD\nGIT_SUBMODULE_STATUS_IN_INDEX\nGIT_SUBMODULE_STATUS_IN_CONFIG\nGIT_SUBMODULE_STATUS_IN_WD\nGIT_SUBMODULE_STATUS_INDEX_ADDED\nGIT_SUBMODULE_STATUS_INDEX_DELETED\nGIT_SUBMODULE_STATUS_INDEX_MODIFIED\nGIT_SUBMODULE_STATUS_WD_UNINITIALIZED\nGIT_SUBMODULE_STATUS_WD_ADDED\nGIT_SUBMODULE_STATUS_WD_DELETED\nGIT_SUBMODULE_STATUS_WD_MODIFIED\nGIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED\nGIT_SUBMODULE_STATUS_WD_WD_MODIFIED\nGIT_SUBMODULE_STATUS_WD_UNTRACKED","tdef":"typedef","comments":"Return codes for submodule status.\n\nA combination of these flags will be returned to describe the status of a\nsubmodule. Depending on the \"ignore\" property of the submodule, some of\nthe flags may never be returned because they indicate changes that are\nsupposed to be ignored.\n\nSubmodule info is contained in 4 places: the HEAD tree, the index, config\nfiles (both .git/config and .gitmodules), and the working directory. Any\nor all of those places might be missing information about the submodule\ndepending on what state the repo is in. We consider all four places to\nbuild the combination of status flags.\n\nThere are four values that are not really status, but give basic info\nabout what sources of submodule data are available. These will be\nreturned even if ignore is set to \"ALL\".\n\n* IN_HEAD - superproject head contains submodule\n* IN_INDEX - superproject index contains submodule\n* IN_CONFIG - superproject gitmodules has submodule\n* IN_WD - superproject workdir has submodule\n\nThe following values will be returned so long as ignore is not \"ALL\".\n\n* INDEX_ADDED - in index, not in head\n* INDEX_DELETED - in head, not in index\n* INDEX_MODIFIED - index and head don't match\n* WD_UNINITIALIZED - workdir contains empty directory\n* WD_ADDED - in workdir, not index\n* WD_DELETED - in index, not workdir\n* WD_MODIFIED - index and workdir head don't match\n\nThe following can only be returned if ignore is \"NONE\" or \"UNTRACKED\".\n\n* WD_INDEX_MODIFIED - submodule workdir index is dirty\n* WD_WD_MODIFIED - submodule workdir has modified files\n\nLastly, the following will only be returned for ignore \"NONE\".\n\n* WD_UNTRACKED - wd contains untracked files","used":{"returns":[],"needs":[]}}],["git_submodule_update_t",{"type":"enum","file":"types.h","line":262,"lineto":268,"block":"GIT_SUBMODULE_UPDATE_RESET\nGIT_SUBMODULE_UPDATE_CHECKOUT\nGIT_SUBMODULE_UPDATE_REBASE\nGIT_SUBMODULE_UPDATE_MERGE\nGIT_SUBMODULE_UPDATE_NONE","tdef":"typedef","comments":"Submodule update values\n\nThese values represent settings for the `submodule.$name.update`\nconfiguration value which says how to handle `git submodule update` for\nthis submodule. The value is usually set in the \".gitmodules\" file and\ncopied to \".git/config\" when the submodule is initialized.\n\nYou can override this setting on a per-submodule basis with\n`git_submodule_set_update()` and write the changed value to disk using\n`git_submodule_save()`. If you have overwritten the value, you can\nrevert it by passing `GIT_SUBMODULE_UPDATE_RESET` to the set function.\n\nThe values are:\n\n- GIT_SUBMODULE_UPDATE_RESET: reset to the on-disk value.\n- GIT_SUBMODULE_UPDATE_CHECKOUT: the default; when a submodule is\n updated, checkout the new detached HEAD to the submodule directory.\n- GIT_SUBMODULE_UPDATE_REBASE: update by rebasing the current checked\n out branch onto the commit from the superproject.\n- GIT_SUBMODULE_UPDATE_MERGE: update by merging the commit in the\n superproject into the current checkout out branch of the submodule.\n- GIT_SUBMODULE_UPDATE_NONE: do not update this submodule even when\n the commit in the superproject is updated.","used":{"returns":[],"needs":["git_submodule_set_update"]}}],["git_tag",{"type":"struct","value":"git_tag","file":"types.h","line":114,"lineto":114,"block":"","tdef":"typedef","comments":"Parsed representation of a tag object.","used":{"returns":[],"needs":["git_tag_free","git_tag_id","git_tag_lookup","git_tag_lookup_prefix","git_tag_message","git_tag_name","git_tag_owner","git_tag_peel","git_tag_tagger","git_tag_target","git_tag_target_id","git_tag_target_type"]}}],["git_time",{"type":"struct","value":"git_time","file":"types.h","line":156,"lineto":159,"block":"git_time_t time\nint offset","tdef":"typedef","comments":"Time in a signature","used":{"returns":[],"needs":[]}}],["git_trace_callback",{"type":"function pointer","value":"git_trace_callback","file":"trace.h","line":52,"lineto":52,"comments":"An instance for a tracing function","used":{"returns":[],"needs":["git_trace_set"]}}],["git_transfer_progress",{"type":"struct","value":"git_transfer_progress","file":"types.h","line":216,"lineto":221,"block":"unsigned int total_objects\nunsigned int indexed_objects\nunsigned int received_objects\nsize_t received_bytes","tdef":"typedef","comments":"This is passed as the first argument to the callback to allow the\nuser to see the progress.","used":{"returns":["git_remote_stats"],"needs":["git_indexer_stream_add","git_indexer_stream_finalize"]}}],["git_transfer_progress_callback",{"type":"function pointer","value":"git_transfer_progress_callback","file":"types.h","line":230,"lineto":230,"comments":"Type for progress callbacks during indexing. Return a value less than zero\nto cancel the transfer.\n\n@param stats Structure containing information about the state of the transfer\n@param payload Payload provided by caller","used":{"returns":[],"needs":["git_indexer_stream_new","git_odb_write_pack","git_packbuilder_write","git_remote_download"]}}],["git_tree",{"type":"struct","value":"git_tree","file":"types.h","line":126,"lineto":126,"block":"","tdef":"typedef","comments":"Representation of a tree object.","used":{"returns":[],"needs":["git_commit_create","git_commit_create_v","git_commit_tree","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir","git_index_read_tree","git_merge_trees","git_pathspec_match_tree","git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entrycount","git_tree_free","git_tree_id","git_tree_lookup","git_tree_lookup_prefix","git_tree_owner","git_tree_walk","git_treebuilder_create"]}}],["git_tree_entry",{"type":"struct","value":"git_tree_entry","file":"types.h","line":123,"lineto":123,"block":"","tdef":"typedef","comments":"Representation of each one of the entries in a tree object.","used":{"returns":["git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_dup","git_treebuilder_get"],"needs":["git_tree_entry_bypath","git_tree_entry_cmp","git_tree_entry_dup","git_tree_entry_filemode","git_tree_entry_free","git_tree_entry_id","git_tree_entry_name","git_tree_entry_to_object","git_tree_entry_type","git_treebuilder_insert"]}}],["git_treebuilder",{"type":"struct","value":"git_treebuilder","file":"types.h","line":129,"lineto":129,"block":"","tdef":"typedef","comments":"Constructor for in-memory trees","used":{"returns":[],"needs":["git_treebuilder_clear","git_treebuilder_create","git_treebuilder_entrycount","git_treebuilder_filter","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_write"]}}],["git_treewalk_cb",{"type":"function pointer","value":"git_treewalk_cb","file":"tree.h","line":359,"lineto":360,"comments":"Callback for the tree traversal method","used":{"returns":[],"needs":["git_tree_walk"]}}],["git_treewalk_mode",{"type":"enum","file":"tree.h","line":363,"lineto":366,"block":"GIT_TREEWALK_PRE\nGIT_TREEWALK_POST","tdef":"typedef","comments":"Tree traversal modes","used":{"returns":[],"needs":["git_tree_walk"]}}]],"prefix":"include/git2","groups":[["attr",["git_attr_add_macro","git_attr_cache_flush","git_attr_foreach","git_attr_get","git_attr_get_many"]],["blob",["git_blob_create_frombuffer","git_blob_create_fromchunks","git_blob_create_fromdisk","git_blob_create_fromworkdir","git_blob_filtered_content","git_blob_free","git_blob_id","git_blob_is_binary","git_blob_lookup","git_blob_lookup_prefix","git_blob_owner","git_blob_rawcontent","git_blob_rawsize"]],["branch",["git_branch_create","git_branch_delete","git_branch_foreach","git_branch_is_head","git_branch_lookup","git_branch_move","git_branch_name","git_branch_remote_name","git_branch_set_upstream","git_branch_upstream","git_branch_upstream_name"]],["buf",["git_buf_free","git_buf_grow","git_buf_set"]],["checkout",["git_checkout_head","git_checkout_index","git_checkout_tree"]],["clone",["git_clone"]],["commit",["git_commit_author","git_commit_committer","git_commit_create","git_commit_create_from_oids","git_commit_create_v","git_commit_free","git_commit_id","git_commit_lookup","git_commit_lookup_prefix","git_commit_message","git_commit_message_encoding","git_commit_nth_gen_ancestor","git_commit_owner","git_commit_parent","git_commit_parent_id","git_commit_parentcount","git_commit_raw_header","git_commit_time","git_commit_time_offset","git_commit_tree","git_commit_tree_id"]],["config",["git_config_add_backend","git_config_add_file_ondisk","git_config_backend_foreach_match","git_config_delete_entry","git_config_find_global","git_config_find_system","git_config_find_xdg","git_config_foreach","git_config_foreach_match","git_config_free","git_config_get_bool","git_config_get_entry","git_config_get_int32","git_config_get_int64","git_config_get_mapped","git_config_get_multivar_foreach","git_config_get_string","git_config_iterator_free","git_config_iterator_glob_new","git_config_iterator_new","git_config_lookup_map_value","git_config_multivar_iterator_new","git_config_new","git_config_next","git_config_open_default","git_config_open_global","git_config_open_level","git_config_open_ondisk","git_config_parse_bool","git_config_parse_int32","git_config_parse_int64","git_config_refresh","git_config_set_bool","git_config_set_int32","git_config_set_int64","git_config_set_multivar","git_config_set_string"]],["cred",["git_cred_has_username","git_cred_ssh_keyfile_passphrase_new","git_cred_ssh_publickey_new","git_cred_userpass","git_cred_userpass_plaintext_new"]],["diff",["git_diff_blob_to_buffer","git_diff_blobs","git_diff_find_similar","git_diff_foreach","git_diff_get_patch","git_diff_index_to_workdir","git_diff_is_sorted_icase","git_diff_list_free","git_diff_merge","git_diff_num_deltas","git_diff_num_deltas_of_type","git_diff_patch_delta","git_diff_patch_free","git_diff_patch_from_blob_and_buffer","git_diff_patch_from_blobs","git_diff_patch_get_hunk","git_diff_patch_get_line_in_hunk","git_diff_patch_line_stats","git_diff_patch_num_hunks","git_diff_patch_num_lines_in_hunk","git_diff_patch_print","git_diff_patch_size","git_diff_patch_to_str","git_diff_print_compact","git_diff_print_patch","git_diff_print_raw","git_diff_status_char","git_diff_tree_to_index","git_diff_tree_to_tree","git_diff_tree_to_workdir"]],["filter",["git_filter_list_apply_to_blob","git_filter_list_apply_to_data","git_filter_list_apply_to_file","git_filter_list_free","git_filter_list_length","git_filter_list_load","git_filter_list_new","git_filter_list_push","git_filter_lookup","git_filter_register","git_filter_source_filemode","git_filter_source_id","git_filter_source_mode","git_filter_source_path","git_filter_source_repo","git_filter_unregister"]],["giterr",["giterr_clear","giterr_last","giterr_set_oom","giterr_set_str"]],["graph",["git_graph_ahead_behind"]],["ignore",["git_ignore_add_rule","git_ignore_clear_internal_rules","git_ignore_path_is_ignored"]],["index",["git_index_add","git_index_add_all","git_index_add_bypath","git_index_caps","git_index_clear","git_index_conflict_add","git_index_conflict_cleanup","git_index_conflict_get","git_index_conflict_iterator_free","git_index_conflict_iterator_new","git_index_conflict_next","git_index_conflict_remove","git_index_entry_stage","git_index_entrycount","git_index_find","git_index_free","git_index_get_byindex","git_index_get_bypath","git_index_has_conflicts","git_index_name_add","git_index_name_clear","git_index_name_entrycount","git_index_name_get_byindex","git_index_new","git_index_open","git_index_owner","git_index_path","git_index_read","git_index_read_tree","git_index_remove","git_index_remove_all","git_index_remove_bypath","git_index_remove_directory","git_index_reuc_add","git_index_reuc_clear","git_index_reuc_entrycount","git_index_reuc_find","git_index_reuc_get_byindex","git_index_reuc_get_bypath","git_index_reuc_remove","git_index_set_caps","git_index_update_all","git_index_write","git_index_write_tree","git_index_write_tree_to"]],["indexer",["git_indexer_stream_add","git_indexer_stream_finalize","git_indexer_stream_free","git_indexer_stream_hash","git_indexer_stream_new"]],["libgit2",["git_libgit2_capabilities","git_libgit2_opts","git_libgit2_version"]],["merge",["git_merge_base","git_merge_base_many","git_merge_head_free","git_merge_head_from_fetchhead","git_merge_head_from_oid","git_merge_head_from_ref","git_merge_trees"]],["message",["git_message_prettify"]],["note",["git_note_create","git_note_default_ref","git_note_foreach","git_note_free","git_note_iterator_free","git_note_iterator_new","git_note_message","git_note_next","git_note_oid","git_note_read","git_note_remove"]],["object",["git_object__size","git_object_dup","git_object_free","git_object_id","git_object_lookup","git_object_lookup_prefix","git_object_owner","git_object_peel","git_object_string2type","git_object_type","git_object_type2string","git_object_typeisloose"]],["odb",["git_odb_add_alternate","git_odb_add_backend","git_odb_add_disk_alternate","git_odb_backend_loose","git_odb_backend_one_pack","git_odb_backend_pack","git_odb_exists","git_odb_foreach","git_odb_free","git_odb_get_backend","git_odb_hash","git_odb_hashfile","git_odb_new","git_odb_num_backends","git_odb_object_data","git_odb_object_free","git_odb_object_id","git_odb_object_size","git_odb_object_type","git_odb_open","git_odb_open_rstream","git_odb_open_wstream","git_odb_read","git_odb_read_header","git_odb_read_prefix","git_odb_refresh","git_odb_stream_finalize_write","git_odb_stream_free","git_odb_stream_read","git_odb_stream_write","git_odb_write","git_odb_write_pack"]],["oid",["git_oid_allocfmt","git_oid_cmp","git_oid_cpy","git_oid_equal","git_oid_fmt","git_oid_fromraw","git_oid_fromstr","git_oid_fromstrn","git_oid_fromstrp","git_oid_iszero","git_oid_ncmp","git_oid_nfmt","git_oid_pathfmt","git_oid_shorten_add","git_oid_shorten_free","git_oid_shorten_new","git_oid_strcmp","git_oid_streq","git_oid_tostr"]],["packbuilder",["git_packbuilder_foreach","git_packbuilder_free","git_packbuilder_insert","git_packbuilder_insert_commit","git_packbuilder_insert_tree","git_packbuilder_new","git_packbuilder_object_count","git_packbuilder_set_threads","git_packbuilder_write","git_packbuilder_written"]],["pathspec",["git_pathspec_free","git_pathspec_match_diff","git_pathspec_match_index","git_pathspec_match_list_diff_entry","git_pathspec_match_list_entry","git_pathspec_match_list_entrycount","git_pathspec_match_list_failed_entry","git_pathspec_match_list_failed_entrycount","git_pathspec_match_list_free","git_pathspec_match_tree","git_pathspec_match_workdir","git_pathspec_matches_path","git_pathspec_new"]],["push",["git_push_add_refspec","git_push_finish","git_push_free","git_push_new","git_push_set_options","git_push_status_foreach","git_push_unpack_ok","git_push_update_tips"]],["refdb",["git_refdb_backend_fs","git_refdb_compress","git_refdb_free","git_refdb_new","git_refdb_open","git_refdb_set_backend"]],["reference",["git_reference__alloc","git_reference__alloc_symbolic","git_reference_cmp","git_reference_create","git_reference_delete","git_reference_dwim","git_reference_foreach","git_reference_foreach_glob","git_reference_free","git_reference_has_log","git_reference_is_branch","git_reference_is_remote","git_reference_is_tag","git_reference_is_valid_name","git_reference_iterator_free","git_reference_iterator_glob_new","git_reference_iterator_new","git_reference_list","git_reference_lookup","git_reference_name","git_reference_name_to_id","git_reference_next","git_reference_normalize_name","git_reference_owner","git_reference_peel","git_reference_rename","git_reference_resolve","git_reference_set_target","git_reference_shorthand","git_reference_symbolic_create","git_reference_symbolic_set_target","git_reference_symbolic_target","git_reference_target","git_reference_target_peel","git_reference_type"]],["reflog",["git_reflog_append","git_reflog_delete","git_reflog_drop","git_reflog_entry_byindex","git_reflog_entry_committer","git_reflog_entry_id_new","git_reflog_entry_id_old","git_reflog_entry_message","git_reflog_entrycount","git_reflog_free","git_reflog_read","git_reflog_rename","git_reflog_write"]],["refspec",["git_refspec_direction","git_refspec_dst","git_refspec_dst_matches","git_refspec_force","git_refspec_rtransform","git_refspec_src","git_refspec_src_matches","git_refspec_string","git_refspec_transform"]],["remote",["git_remote_add_fetch","git_remote_add_push","git_remote_autotag","git_remote_check_cert","git_remote_clear_refspecs","git_remote_connect","git_remote_connected","git_remote_create","git_remote_create_inmemory","git_remote_disconnect","git_remote_download","git_remote_free","git_remote_get_fetch_refspecs","git_remote_get_push_refspecs","git_remote_get_refspec","git_remote_is_valid_name","git_remote_list","git_remote_load","git_remote_ls","git_remote_name","git_remote_owner","git_remote_pushurl","git_remote_refspec_count","git_remote_remove_refspec","git_remote_rename","git_remote_save","git_remote_set_autotag","git_remote_set_callbacks","git_remote_set_cred_acquire_cb","git_remote_set_pushurl","git_remote_set_transport","git_remote_set_update_fetchhead","git_remote_set_url","git_remote_stats","git_remote_stop","git_remote_supported_url","git_remote_update_fetchhead","git_remote_update_tips","git_remote_url","git_remote_valid_url"]],["repository",["git_repository__cleanup","git_repository_config","git_repository_detach_head","git_repository_discover","git_repository_fetchhead_foreach","git_repository_free","git_repository_get_namespace","git_repository_hashfile","git_repository_head","git_repository_head_detached","git_repository_head_unborn","git_repository_index","git_repository_init","git_repository_init_ext","git_repository_is_bare","git_repository_is_empty","git_repository_is_shallow","git_repository_merge_cleanup","git_repository_mergehead_foreach","git_repository_message","git_repository_message_remove","git_repository_new","git_repository_odb","git_repository_open","git_repository_open_bare","git_repository_open_ext","git_repository_path","git_repository_refdb","git_repository_set_config","git_repository_set_head","git_repository_set_head_detached","git_repository_set_index","git_repository_set_namespace","git_repository_set_odb","git_repository_set_refdb","git_repository_set_workdir","git_repository_state","git_repository_workdir","git_repository_wrap_odb"]],["reset",["git_reset","git_reset_default"]],["revparse",["git_revparse","git_revparse_ext","git_revparse_single"]],["revwalk",["git_revwalk_free","git_revwalk_hide","git_revwalk_hide_glob","git_revwalk_hide_head","git_revwalk_hide_ref","git_revwalk_new","git_revwalk_next","git_revwalk_push","git_revwalk_push_glob","git_revwalk_push_head","git_revwalk_push_range","git_revwalk_push_ref","git_revwalk_repository","git_revwalk_reset","git_revwalk_simplify_first_parent","git_revwalk_sorting"]],["signature",["git_signature_default","git_signature_dup","git_signature_free","git_signature_new","git_signature_now"]],["smart",["git_smart_subtransport_git","git_smart_subtransport_http","git_smart_subtransport_ssh"]],["stash",["git_stash_drop","git_stash_foreach","git_stash_save"]],["status",["git_status_byindex","git_status_file","git_status_foreach","git_status_foreach_ext","git_status_list_entrycount","git_status_list_free","git_status_list_new","git_status_should_ignore"]],["strarray",["git_strarray_copy","git_strarray_free"]],["submodule",["git_submodule_add_finalize","git_submodule_add_setup","git_submodule_add_to_index","git_submodule_fetch_recurse_submodules","git_submodule_foreach","git_submodule_head_id","git_submodule_ignore","git_submodule_index_id","git_submodule_init","git_submodule_location","git_submodule_lookup","git_submodule_name","git_submodule_open","git_submodule_owner","git_submodule_path","git_submodule_reload","git_submodule_reload_all","git_submodule_save","git_submodule_set_fetch_recurse_submodules","git_submodule_set_ignore","git_submodule_set_update","git_submodule_set_url","git_submodule_status","git_submodule_sync","git_submodule_update","git_submodule_url","git_submodule_wd_id"]],["tag",["git_tag_annotation_create","git_tag_create","git_tag_create_frombuffer","git_tag_create_lightweight","git_tag_delete","git_tag_foreach","git_tag_free","git_tag_id","git_tag_list","git_tag_list_match","git_tag_lookup","git_tag_lookup_prefix","git_tag_message","git_tag_name","git_tag_owner","git_tag_peel","git_tag_tagger","git_tag_target","git_tag_target_id","git_tag_target_type"]],["threads",["git_threads_init","git_threads_shutdown"]],["trace",["git_trace_set"]],["transport",["git_transport_dummy","git_transport_local","git_transport_new","git_transport_smart"]],["tree",["git_tree_entry_byindex","git_tree_entry_byname","git_tree_entry_byoid","git_tree_entry_bypath","git_tree_entry_cmp","git_tree_entry_dup","git_tree_entry_filemode","git_tree_entry_free","git_tree_entry_id","git_tree_entry_name","git_tree_entry_to_object","git_tree_entry_type","git_tree_entrycount","git_tree_free","git_tree_id","git_tree_lookup","git_tree_lookup_prefix","git_tree_owner","git_tree_walk"]],["treebuilder",["git_treebuilder_clear","git_treebuilder_create","git_treebuilder_entrycount","git_treebuilder_filter","git_treebuilder_free","git_treebuilder_get","git_treebuilder_insert","git_treebuilder_remove","git_treebuilder_write"]]],"examples":[["add.c","ex/HEAD/add.html"],["cat-file.c","ex/HEAD/cat-file.html"],["diff.c","ex/HEAD/diff.html"],["general.c","ex/HEAD/general.html"],["init.c","ex/HEAD/init.html"],["log.c","ex/HEAD/log.html"],["network/clone.c","ex/HEAD/network/clone.html"],["network/common.c","ex/HEAD/network/common.html"],["network/fetch.c","ex/HEAD/network/fetch.html"],["network/git2.c","ex/HEAD/network/git2.html"],["network/index-pack.c","ex/HEAD/network/index-pack.html"],["network/ls-remote.c","ex/HEAD/network/ls-remote.html"],["rev-list.c","ex/HEAD/rev-list.html"],["rev-parse.c","ex/HEAD/rev-parse.html"],["showindex.c","ex/HEAD/showindex.html"],["status.c","ex/HEAD/status.html"]]} \ No newline at end of file
diff --git a/ex/HEAD/add.html b/ex/HEAD/add.html
new file mode 100644
index 000000000..1781d988a
--- /dev/null
+++ b/ex/HEAD/add.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8">
+ <title>add.c</title>
+ <link rel="stylesheet" href="https://raw.github.com/jashkenas/docco/c640fda9b0b1d09d2b7236f655b3663dc06c63d6/resources/docco.css">
+ <style type="text/css">
+ a.fnlink {text-decoration: none}
+ a.fnlink:hover {text-decoration: underline}
+ </style>
+</head>
+<body>
+<div id='container'>
+ <div id="background"></div>
+ <div id="jump_to">
+ Jump To &hellip;
+ <div id="jump_wrapper">
+ <div id="jump_page">
+ <a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
+ <a class="source" href="cat-file.html">cat-file.c</a>
+ <a class="source" href="diff.html">diff.c</a>
+ <a class="source" href="general.html">general.c</a>
+ <a class="source" href="init.html">init.c</a>
+ <a class="source" href="log.html">log.c</a>
+ <a class="source" href="network/clone.html">clone.c</a>
+ <a class="source" href="network/common.html">common.c</a>
+ <a class="source" href="network/fetch.html">fetch.c</a>
+ <a class="source" href="network/git2.html">git2.c</a>
+ <a class="source" href="network/index-pack.html">index-pack.c</a>
+ <a class="source" href="network/ls-remote.html">ls-remote.c</a>
+ <a class="source" href="rev-list.html">rev-list.c</a>
+ <a class="source" href="rev-parse.html">rev-parse.c</a>
+ <a class="source" href="showindex.html">showindex.c</a>
+ <a class="source" href="status.html">status.c</a>
+ </div>
+ </div>
+ </div>
+ <table cellspacing=0 cellpadding=0>
+ <thead>
+ <tr>
+ <th class=docs><h1>add.c</h1></th>
+ <th class=code></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr id='section-1'>
+ <td class=docs>
+ <div class="pilwrap">
+ <a class="pilcrow" href="#section-1">&#182;</a>
+ </div>
+
+
+ </td>
+ <td class=code>
+ <div class='highlight'><pre><span class="cp">#include &lt;git2.h&gt;</span>
+<span class="cp">#include &lt;stdio.h&gt;</span>
+<span class="cp">#include &lt;string.h&gt;</span>
+<span class="cp">#include &lt;assert.h&gt;</span>
+
+<span class="k">enum</span> <span class="n">print_options</span> <span class="p">{</span>
+ <span class="n">SKIP</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">VERBOSE</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
+ <span class="n">UPDATE</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
+<span class="p">};</span>
+
+<span class="k">struct</span> <span class="n">print_payload</span> <span class="p">{</span>
+ <span class="k">enum</span> <span class="n">print_options</span> <span class="n">options</span><span class="p">;</span>
+ <span class="n">git_repository</span> <span class="o">*</span><span class="n">repo</span><span class="p">;</span>
+<span class="p">};</span>
+
+<span class="kt">void</span> <span class="nf">init_array</span><span class="p">(</span><span class="n">git_strarray</span> <span class="o">*</span><span class="n">array</span><span class="p">,</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">i</span><span class="p">;</span>
+
+ <span class="n">array</span><span class="o">-&gt;</span><span class="n">count</span> <span class="o">=</span> <span class="n">argc</span><span class="p">;</span>
+ <span class="n">array</span><span class="o">-&gt;</span><span class="n">strings</span> <span class="o">=</span> <span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="o">*</span><span class="p">)</span> <span class="o">*</span> <span class="n">array</span><span class="o">-&gt;</span><span class="n">count</span><span class="p">);</span>
+ <span class="n">assert</span><span class="p">(</span><span class="n">array</span><span class="o">-&gt;</span><span class="n">strings</span><span class="o">!=</span><span class="nb">NULL</span><span class="p">);</span>
+
+ <span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o">&lt;</span><span class="n">array</span><span class="o">-&gt;</span><span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">array</span><span class="o">-&gt;</span><span class="n">strings</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
+ <span class="p">}</span>
+
+ <span class="k">return</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="kt">int</span> <span class="nf">print_matched_cb</span><span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">matched_pathspec</span><span class="p">,</span> <span class="kt">void</span> <span class="o">*</span><span class="n">payload</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="k">struct</span> <span class="n">print_payload</span> <span class="n">p</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="k">struct</span> <span class="n">print_payload</span><span class="o">*</span><span class="p">)(</span><span class="n">payload</span><span class="p">);</span>
+ <span class="kt">int</span> <span class="n">ret</span><span class="p">;</span>
+ <span class="n">git_status_t</span> <span class="n">status</span><span class="p">;</span>
+ <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">matched_pathspec</span><span class="p">;</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n"><a name="git_status_file-8" class="fnlink" href="../../#HEAD/group/status/git_status_file">git_status_file</a></span><span class="p">(</span><span class="o">&amp;</span><span class="n">status</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">repo</span><span class="p">,</span> <span class="n">path</span><span class="p">))</span> <span class="p">{</span>
+ <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="c1">//abort</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">status</span> <span class="o">&amp;</span> <span class="n">GIT_STATUS_WT_MODIFIED</span> <span class="o">||</span>
+ <span class="n">status</span> <span class="o">&amp;</span> <span class="n">GIT_STATUS_WT_NEW</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">&quot;add &#39;%s&#39;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">path</span><span class="p">);</span>
+ <span class="n">ret</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+ <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+ <span class="n">ret</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">options</span> <span class="o">&amp;</span> <span class="n">SKIP</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">ret</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">return</span> <span class="n">ret</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">print_usage</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;usage: add [options] [--] file-spec [file-spec] [...]</span><span class="se">\n\n</span><span class="s">&quot;</span><span class="p">);</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\t</span><span class="s">-n, --dry-run dry run</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\t</span><span class="s">-v, --verbose be verbose</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\t</span><span class="s">-u, --update update tracked files</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+<span class="p">}</span>
+
+
+<span class="kt">int</span> <span class="nf">main</span> <span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">**</span> <span class="n">argv</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="n">git_index_matched_path_cb</span> <span class="n">matched_cb</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+ <span class="n">git_repository</span> <span class="o">*</span><span class="n">repo</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+ <span class="n">git_index</span> <span class="o">*</span><span class="n">index</span><span class="p">;</span>
+ <span class="n">git_strarray</span> <span class="n">array</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
+ <span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">options</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+ <span class="k">struct</span> <span class="n">print_payload</span> <span class="n">payload</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
+
+ <span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">argc</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">if</span> <span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">&#39;-&#39;</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;--verbose&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;-v&quot;</span><span class="p">))</span> <span class="p">{</span>
+ <span class="n">options</span> <span class="o">|=</span> <span class="n">VERBOSE</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;--dry-run&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;-n&quot;</span><span class="p">))</span> <span class="p">{</span>
+ <span class="n">options</span> <span class="o">|=</span> <span class="n">SKIP</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;--update&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;-u&quot;</span><span class="p">))</span> <span class="p">{</span>
+ <span class="n">options</span> <span class="o">|=</span> <span class="n">UPDATE</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;-h&quot;</span><span class="p">))</span> <span class="p">{</span>
+ <span class="n">print_usage</span><span class="p">();</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="s">&quot;--&quot;</span><span class="p">))</span> <span class="p">{</span>
+ <span class="n">i</span><span class="o">++</span><span class="p">;</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;Unsupported option %s.</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">argv</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
+ <span class="n">print_usage</span><span class="p">();</span>
+ <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">argc</span><span class="o">&lt;=</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">print_usage</span><span class="p">();</span>
+ <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="n"><a name="git_threads_init-9" class="fnlink" href="../../#HEAD/group/threads/git_threads_init">git_threads_init</a></span><span class="p">();</span>
+
+ <span class="n">init_array</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array</span><span class="p">,</span> <span class="n">argc</span><span class="o">-</span><span class="n">i</span><span class="p">,</span> <span class="n">argv</span><span class="o">+</span><span class="n">i</span><span class="p">);</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n"><a name="git_repository_open-5" class="fnlink" href="../../#HEAD/group/repository/git_repository_open">git_repository_open</a></span><span class="p">(</span><span class="o">&amp;</span><span class="n">repo</span><span class="p">,</span> <span class="s">&quot;.&quot;</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;No git repository</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+ <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n"><a name="git_repository_index-7" class="fnlink" href="../../#HEAD/group/repository/git_repository_index">git_repository_index</a></span><span class="p">(</span><span class="o">&amp;</span><span class="n">index</span><span class="p">,</span> <span class="n">repo</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;Could not open repository index</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+ <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">options</span><span class="o">&amp;</span><span class="n">VERBOSE</span> <span class="o">||</span> <span class="n">options</span><span class="o">&amp;</span><span class="n">SKIP</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">matched_cb</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">print_matched_cb</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="n">payload</span><span class="p">.</span><span class="n">options</span> <span class="o">=</span> <span class="n">options</span><span class="p">;</span>
+ <span class="n">payload</span><span class="p">.</span><span class="n">repo</span> <span class="o">=</span> <span class="n">repo</span><span class="p">;</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">options</span><span class="o">&amp;</span><span class="n">UPDATE</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n"><a name="git_index_update_all-4" class="fnlink" href="../../#HEAD/group/index/git_index_update_all">git_index_update_all</a></span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">array</span><span class="p">,</span> <span class="n">matched_cb</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">payload</span><span class="p">);</span>
+ <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+ <span class="n"><a name="git_index_add_all-3" class="fnlink" href="../../#HEAD/group/index/git_index_add_all">git_index_add_all</a></span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">array</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">matched_cb</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">payload</span><span class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="n"><a name="git_index_write-2" class="fnlink" href="../../#HEAD/group/index/git_index_write">git_index_write</a></span><span class="p">(</span><span class="n">index</span><span class="p">);</span>
+ <span class="n"><a name="git_index_free-1" class="fnlink" href="../../#HEAD/group/index/git_index_free">git_index_free</a></span><span class="p">(</span><span class="n">index</span><span class="p">);</span>
+ <span class="n"><a name="git_repository_free-6" class="fnlink" href="../../#HEAD/group/repository/git_repository_free">git_repository_free</a></span><span class="p">(</span><span class="n">repo</span><span class="p">);</span>
+
+ <span class="n"><a name="git_threads_shutdown-10" class="fnlink" href="../../#HEAD/group/threads/git_threads_shutdown">git_threads_shutdown</a></span><span class="p">();</span>
+
+ <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span></pre></div>
+ </td>
+ </tr>
+ </table>
+</div>
+</body>
diff --git a/ex/HEAD/cat-file.html b/ex/HEAD/cat-file.html
index 5ee337fac..aef4de99f 100644
--- a/ex/HEAD/cat-file.html
+++ b/ex/HEAD/cat-file.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/diff.html b/ex/HEAD/diff.html
index c007dd169..7d77f63d9 100644
--- a/ex/HEAD/diff.html
+++ b/ex/HEAD/diff.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/general.html b/ex/HEAD/general.html
index 259bf5fe7..97f62f9d7 100644
--- a/ex/HEAD/general.html
+++ b/ex/HEAD/general.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/init.html b/ex/HEAD/init.html
index a4afd1349..3d24e0ec4 100644
--- a/ex/HEAD/init.html
+++ b/ex/HEAD/init.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/log.html b/ex/HEAD/log.html
index ef85c8ff1..4f95b2905 100644
--- a/ex/HEAD/log.html
+++ b/ex/HEAD/log.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/network/clone.html b/ex/HEAD/network/clone.html
index 2e156ae32..aad36e49b 100644
--- a/ex/HEAD/network/clone.html
+++ b/ex/HEAD/network/clone.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/network/common.html b/ex/HEAD/network/common.html
index 86c2329b0..6bdb9d4ef 100644
--- a/ex/HEAD/network/common.html
+++ b/ex/HEAD/network/common.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/network/fetch.html b/ex/HEAD/network/fetch.html
index d856c3626..9ae1dc652 100644
--- a/ex/HEAD/network/fetch.html
+++ b/ex/HEAD/network/fetch.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/network/git2.html b/ex/HEAD/network/git2.html
index c0011eb5f..ce8ccf1ab 100644
--- a/ex/HEAD/network/git2.html
+++ b/ex/HEAD/network/git2.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/network/index-pack.html b/ex/HEAD/network/index-pack.html
index 6fe11607d..2e49d65b7 100644
--- a/ex/HEAD/network/index-pack.html
+++ b/ex/HEAD/network/index-pack.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/network/ls-remote.html b/ex/HEAD/network/ls-remote.html
index 7143783e7..a38ecb64e 100644
--- a/ex/HEAD/network/ls-remote.html
+++ b/ex/HEAD/network/ls-remote.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="../add.html">add.c</a>
<a class="source" href="../cat-file.html">cat-file.c</a>
<a class="source" href="../diff.html">diff.c</a>
<a class="source" href="../general.html">general.c</a>
diff --git a/ex/HEAD/rev-list.html b/ex/HEAD/rev-list.html
index cb2ae8136..61fdc06ae 100644
--- a/ex/HEAD/rev-list.html
+++ b/ex/HEAD/rev-list.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/rev-parse.html b/ex/HEAD/rev-parse.html
index 9d30c2a45..2030107b1 100644
--- a/ex/HEAD/rev-parse.html
+++ b/ex/HEAD/rev-parse.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
diff --git a/ex/HEAD/showindex.html b/ex/HEAD/showindex.html
index 546673d99..f652c302a 100644
--- a/ex/HEAD/showindex.html
+++ b/ex/HEAD/showindex.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
@@ -66,6 +67,8 @@
<span class="kt">char</span> <span class="n">out</span><span class="p">[</span><span class="mi">41</span><span class="p">];</span>
<span class="n">out</span><span class="p">[</span><span class="mi">40</span><span class="p">]</span> <span class="o">=</span> <span class="sc">&#39;\0&#39;</span><span class="p">;</span>
+ <span class="n"><a name="git_threads_init-11" class="fnlink" href="../../#HEAD/group/threads/git_threads_init">git_threads_init</a></span><span class="p">();</span>
+
<span class="k">if</span> <span class="p">(</span><span class="n">argc</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">dir</span> <span class="o">=</span> <span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">dir</span> <span class="o">||</span> <span class="n">argc</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
@@ -116,6 +119,8 @@
<span class="n"><a name="git_index_free-2" class="fnlink" href="../../#HEAD/group/index/git_index_free">git_index_free</a></span><span class="p">(</span><span class="n">index</span><span class="p">);</span>
<span class="n"><a name="git_repository_free-9" class="fnlink" href="../../#HEAD/group/repository/git_repository_free">git_repository_free</a></span><span class="p">(</span><span class="n">repo</span><span class="p">);</span>
+ <span class="n"><a name="git_threads_shutdown-12" class="fnlink" href="../../#HEAD/group/threads/git_threads_shutdown">git_threads_shutdown</a></span><span class="p">();</span>
+
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span></pre></div>
</td>
diff --git a/ex/HEAD/status.html b/ex/HEAD/status.html
index 86eb6a3d0..b52bc8529 100644
--- a/ex/HEAD/status.html
+++ b/ex/HEAD/status.html
@@ -17,6 +17,7 @@
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="../../#HEAD">API Docs</a>
+ <a class="source" href="add.html">add.c</a>
<a class="source" href="cat-file.html">cat-file.c</a>
<a class="source" href="diff.html">diff.c</a>
<a class="source" href="general.html">general.c</a>
@@ -125,7 +126,7 @@
<span class="n">error</span> <span class="o">=</span> <span class="n"><a name="git_repository_head-6" class="fnlink" href="../../#HEAD/group/repository/git_repository_head">git_repository_head</a></span><span class="p">(</span><span class="o">&amp;</span><span class="n">head</span><span class="p">,</span> <span class="n">repo</span><span class="p">);</span>
- <span class="k">if</span> <span class="p">(</span><span class="n">error</span> <span class="o">==</span> <span class="n">GIT_EORPHANEDHEAD</span> <span class="o">||</span> <span class="n">error</span> <span class="o">==</span> <span class="n">GIT_ENOTFOUND</span><span class="p">)</span>
+ <span class="k">if</span> <span class="p">(</span><span class="n">error</span> <span class="o">==</span> <span class="n">GIT_EUNBORNBRANCH</span> <span class="o">||</span> <span class="n">error</span> <span class="o">==</span> <span class="n">GIT_ENOTFOUND</span><span class="p">)</span>
<span class="n">branch</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">error</span><span class="p">)</span> <span class="p">{</span>
<span class="n">branch</span> <span class="o">=</span> <span class="n"><a name="git_reference_name-2" class="fnlink" href="../../#HEAD/group/reference/git_reference_name">git_reference_name</a></span><span class="p">(</span><span class="n">head</span><span class="p">);</span>
diff --git a/project.json b/project.json
index 029723a88..2b76e4641 100644
--- a/project.json
+++ b/project.json
@@ -1 +1 @@
-{"versions":["HEAD","v0.19.0","v0.18.0","v0.17.0","v0.16.0","v0.15.0","v0.14.0","v0.13.0","v0.12.0","v0.11.0","v0.10.0","v0.8.0","v0.3.0","v0.2.0","v0.1.0"],"github":"libgit2/libgit2","name":"libgit2","signatures":{"git_blob_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_set_rawcontent_fromfile":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_set_rawcontent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_rawcontent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_blob_rawsize":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_blob_writefile":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_message_short":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0"],"changes":{}},"git_commit_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_time":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_committer":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_author":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_tree":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.18.0":true}},"git_commit_add_parent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_set_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_set_committer":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_commit_set_author":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_commit_set_tree":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_strerror":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_open_bare":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_index_open_inrepo":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_index_clear":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_read":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_find":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_add":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_remove":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_insert":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0"],"changes":{}},"git_index_get":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.13.0":true}},"git_index_entrycount":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_open":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_close":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_read":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_odb_read_header":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_odb__read_packed":{"exists":["v0.1.0"],"changes":{}},"git_odb__read_loose":{"exists":["v0.1.0"],"changes":{}},"git_odb_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_obj_close":{"exists":["v0.1.0"],"changes":{}},"git_obj_type_to_string":{"exists":["v0.1.0"],"changes":{}},"git_obj_string_to_type":{"exists":["v0.1.0"],"changes":{}},"git_obj__loose_object_type":{"exists":["v0.1.0"],"changes":{}},"git_obj_hash":{"exists":["v0.1.0"],"changes":{}},"git_odb_exists":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_mkstr":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_oid_mkraw":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_oid_fmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_pathfmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_allocfmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_to_string":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_oid_cpy":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_cmp":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_open":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0"],"changes":{}},"git_repository_database":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_repository_index":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.3.0":true}},"git_repository_newobject":{"exists":["v0.1.0","v0.2.0","v0.3.0"],"changes":{}},"git_object_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_object_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_type":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_owner":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_reset":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true}},"git_revwalk_hide":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true}},"git_revwalk_next":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.3.0":true,"v0.10.0":true}},"git_revwalk_sorting":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_repository":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_target":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.18.0":true}},"git_tag_type":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_tag_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_tagger":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_set_target":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_set_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_set_tagger":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_tag_set_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entrycount":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_byname":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_tree_entry_byindex":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.13.0":true,"v0.18.0":true,"v0.19.0":true}},"git_tree_entry_attributes":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.12.0":true}},"git_tree_entry_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.12.0":true}},"git_tree_entry_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.12.0":true}},"git_tree_entry_2object":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{"v0.11.0":true,"v0.12.0":true}},"git_tree_add_entry":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_tree_remove_entry_byindex":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_remove_entry_byname":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_attributes":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.10.0":true}},"deflateBound":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_commit_parentcount":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_parent":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.19.0":true}},"git_object_type2string":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_string2type":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_typeisloose":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_new":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_add_backend":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_rawobj_hash":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_rawobj_close":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_repository_open2":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_time_offset":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_object__size":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_new":{"exists":["v0.3.0"],"changes":{}},"git_reference_oid":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reference_target":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_type":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_name":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_resolve":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_write":{"exists":["v0.3.0"],"changes":{}},"git_reference_owner":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_set_name":{"exists":["v0.3.0"],"changes":{}},"git_reference_set_target":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_set_oid":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_repository_open3":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_repository_init":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_lookup_ref":{"exists":["v0.3.0"],"changes":{}},"git_signature_new":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true,"v0.15.0":true}},"git_signature_dup":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_signature_free":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_add_entry_unsorted":{"exists":["v0.3.0"],"changes":{}},"git_tree_sort_entries":{"exists":["v0.3.0"],"changes":{}},"git_tree_clear_entries":{"exists":["v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_object_lookup":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_new":{"exists":["v0.8.0","v0.10.0"],"changes":{}},"git_object_close":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_add_alternate":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_lookup":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_create_symbolic":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.14.0":true}},"git_reference_create_oid":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.14.0":true}},"git_reference_rename":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.18.0":true}},"git_reference_delete":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_packall":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_oid_shorten_new":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_shorten_add":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_shorten_free":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_listall":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_repository_close":{"exists":["v0.10.0"],"changes":{}},"git_tag_target_oid":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_blob_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_blob_create_fromfile":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_blob_create_frombuffer":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_create":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.15.0":true}},"git_commit_create_o":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_commit_create_ov":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_commit_create_v":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.15.0":true}},"git_odb_open_wstream":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_open_rstream":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_hash":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_object_id":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_data":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_size":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_type":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_listcb":{"exists":["v0.11.0","v0.12.0"],"changes":{}},"git_tag_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_tag_create":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true}},"git_tag_create_o":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_tree_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_tree_oid":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_commit_parent_oid":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_lasterror":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_add2":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_append":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_append2":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reference_create_symbolic_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_reference_create_oid_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_reference_rename_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_repository_is_empty":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_path":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.13.0":true,"v0.16.0":true}},"git_repository_workdir":{"exists":["v0.12.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_signature_now":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.15.0":true}},"git_tag_create_frombuffer":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true}},"git_tag_create_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_tag_create_fo":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_tag_delete":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_list":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_create_fromindex":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_treebuilder_create":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_clear":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_free":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_get":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_insert":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_treebuilder_remove":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_filter":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_treebuilder_write":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_libgit2_version":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_find_global":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_config_open_global":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_file__ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_config_new":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_add_file":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_config_add_file_ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"git_config_open_ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_free":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_int":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_get_long":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_get_bool":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_get_string":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_set_int":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_set_long":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_set_bool":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_set_string":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_foreach":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.18.0":true}},"git_index_open":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_entrycount_unmerged":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_get_unmerged_bypath":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_get_unmerged_byindex":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_entry_stage":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_read_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_oid_fromstr":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromraw":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_ncmp":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_foreach":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"git_repository_discover":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_is_bare":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_config":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_tag_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_type":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_delete":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_clearerror":{"exists":["v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_uniq":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_odb_hashfile":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromstrn":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_read":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_write":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_entrycount":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_byindex":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_entry_oidold":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_entry_oidnew":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_entry_committer":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_msg":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_free":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_dst":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src_match":{"exists":["v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_refspec_transform":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_get":{"exists":["v0.14.0","v0.15.0"],"changes":{}},"git_remote_name":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_url":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_fetchspec":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_pushspec":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_connect":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_ls":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_remote_free":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_repository_head_detached":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_head_orphan":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_status_foreach":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_status_file":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_create_lightweight":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_list_match":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_new":{"exists":["v0.14.0","v0.15.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_message_encoding":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_config_find_system":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_config_get_int32":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_get_int64":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_set_int32":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_set_int64":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_indexer_new":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_run":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_write":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_hash":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_free":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_remote_new":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.16.0":true,"v0.17.0":true}},"git_remote_negotiate":{"exists":["v0.15.0"],"changes":{}},"git_remote_download":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_remote_update_tips":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.17.0":true,"v0.18.0":true}},"git_repository_head":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_config_autoload":{"exists":["v0.15.0"],"changes":{}},"git_attr_get":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_attr_get_many":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_attr_foreach":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_attr_cache_flush":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_attr_add_macro":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_read_tree":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_streq":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_rename":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_delete":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_packed":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_reference_reload":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_reference_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_load":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_connected":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_disconnect":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_valid_url":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_workdir":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_repository_set_config":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_odb":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_odb":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_index":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_status_should_ignore":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_tag_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_threads_init":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_threads_shutdown":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_get_subtree":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_tree_walk":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_diff":{"exists":["v0.16.0"],"changes":{}},"gitwin_set_codepage":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"gitwin_get_codepage":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"gitwin_set_utf8":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_blob_create_fromdisk":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_create":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_branch_delete":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_branch_list":{"exists":["v0.17.0"],"changes":{}},"git_branch_move":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_config_get_multivar":{"exists":["v0.17.0","v0.18.0","v0.19.0"],"changes":{"v0.18.0":true}},"git_config_set_multivar":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_mapped":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_list_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_tree":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_index_to_tree":{"exists":["v0.17.0"],"changes":{}},"git_diff_workdir_to_index":{"exists":["v0.17.0"],"changes":{}},"git_diff_workdir_to_tree":{"exists":["v0.17.0"],"changes":{}},"git_diff_merge":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_print_compact":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_print_patch":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_blobs":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"giterr_last":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"giterr_clear":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_indexer_stream_new":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_add":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_finalize":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_hash":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_merge_base":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_read":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_message":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_oid":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_create":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_remove":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_default_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_oid_tostr":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_iszero":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_name_to_oid":{"exists":["v0.17.0"],"changes":{}},"git_reference_list":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reference_cmp":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src_matches":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_save":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_fetchspec":{"exists":["v0.17.0","v0.18.0"],"changes":{}},"git_remote_set_pushspec":{"exists":["v0.17.0","v0.18.0"],"changes":{}},"git_remote_supported_url":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_list":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_add":{"exists":["v0.17.0"],"changes":{}},"git_repository_open_ext":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_revwalk_push_glob":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_head":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_glob":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_head":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_status_foreach_ext":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_submodule_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_submodule_lookup":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_peel":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_to_object":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_create_fromworkdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_create_fromchunks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_is_binary":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_lookup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_upstream":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_set_upstream":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_upstream_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_is_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_remote_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_clone":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_tree_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_parent_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_commit_nth_gen_ancestor":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_libgit2_capabilities":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_libgit2_opts":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_find_xdg":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_open_default":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_add_backend":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_open_level":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_refresh":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_entry":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_delete_entry":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_foreach_match":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_lookup_map_value":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_bool":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_int32":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_int64":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_cred_userpass":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_index_to_workdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_workdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_find_similar":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_status_char":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_num_deltas":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_num_deltas_of_type":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_get_patch":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_delta":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_num_hunks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_line_stats":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_get_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_num_lines_in_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_get_line_in_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_print":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_to_str":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_blob_to_buffer":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"giterr_set_str":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"giterr_set_oom":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_graph_ahead_behind":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_add_rule":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_clear_internal_rules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_path_is_ignored":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_caps":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_set_caps":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_write_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_write_tree_to":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_get_byindex":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_get_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_remove_directory":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_add_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_remove_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_add":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_get":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_index_conflict_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_cleanup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_has_conflicts":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_entrycount":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_find":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_get_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_get_byindex":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_add":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_index_reuc_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_clear":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_merge_base_many":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_message_prettify":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_iterator_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_iterator_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_next":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_peel":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_dup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_add_disk_alternate":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_refresh":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_write_pack":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_backend_pack":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromstrp":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_equal":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_set_threads":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_write":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_packbuilder_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_object_count":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_written":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_set_options":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_add_refspec":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_update_tips":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_finish":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_unpack_ok":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_status_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference__alloc":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_refdb_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_open":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_compress":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_set_backend":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_backend_fs":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reflog_append":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_drop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_id_old":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_id_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_message":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_name_to_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_target":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_set_target":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_foreach_glob":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reference_has_log":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_branch":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_remote":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_normalize_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_peel":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_valid_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_force":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_dst_matches":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_rtransform":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_create_inmemory":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_pushurl":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_pushurl":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_stop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_check_cert":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_cred_acquire_cb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_transport":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_callbacks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_stats":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_autotag":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_autotag":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_rename":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_update_fetchhead":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_update_fetchhead":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_is_valid_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_wrap_odb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_init_ext":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_refdb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_refdb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_message":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_message_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_merge_cleanup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_fetchhead_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_mergehead_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_hashfile":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_head_detached":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_detach_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_state":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reset":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reset_default":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revparse_single":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revparse":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_range":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_stash_save":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_stash_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_stash_drop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_strarray_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_strarray_copy":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_setup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_finalize":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_to_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_save":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_path":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_index_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_head_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_wd_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_ignore":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_ignore":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_update":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_update":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_fetch_recurse_submodules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_fetch_recurse_submodules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_init":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_sync":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_open":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_reload":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_reload_all":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_status":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_location":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_target_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_target_type":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_trace_set":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_cred_userpass_plaintext_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_dummy":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_local":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_smart":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_smart_subtransport_http":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_smart_subtransport_git":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_byoid":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_tree_entry_dup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_filemode":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_cmp":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_entrycount":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_commit_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_print_raw":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_patch_from_blobs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_patch_from_blob_and_buffer":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_add_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_remove_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_update_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_iterator_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_next":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_iterator_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_ref":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_fetchhead":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_oid":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_trees":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_num_backends":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_get_backend":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_backend_loose":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_backend_one_pack":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_oid_nfmt":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_oid_strcmp":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert_commit":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_dwim":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_target_peel":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_glob_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_next":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_shorthand":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_refspec_string":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_refspec_direction":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_add_fetch":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_fetch_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_add_push":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_push_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_clear_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_refspec_count":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_refspec":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_remove_refspec":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_open_bare":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_set_namespace":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_get_namespace":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_is_shallow":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_revparse_ext":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_entrycount":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_byindex":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_commit_create_from_oids":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_entrycount":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_get_byindex":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_add":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_clear":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference__alloc_symbolic":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository__cleanup":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_tag_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_tag_annotation_create":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_cred_ssh_keyfile_passphrase_new":{"exists":["v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_cred_ssh_publickey_new":{"exists":["v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_smart_subtransport_ssh":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_commit_raw_header":{"exists":["HEAD"],"changes":{}},"git_config_get_multivar_foreach":{"exists":["HEAD"],"changes":{}},"git_config_multivar_iterator_new":{"exists":["HEAD"],"changes":{}},"git_config_next":{"exists":["HEAD"],"changes":{}},"git_config_iterator_free":{"exists":["HEAD"],"changes":{}},"git_config_iterator_new":{"exists":["HEAD"],"changes":{}},"git_config_iterator_glob_new":{"exists":["HEAD"],"changes":{}},"git_config_backend_foreach_match":{"exists":["HEAD"],"changes":{}},"git_diff_is_sorted_icase":{"exists":["HEAD"],"changes":{}},"git_diff_patch_size":{"exists":["HEAD"],"changes":{}},"git_index_path":{"exists":["HEAD"],"changes":{}},"git_odb_stream_write":{"exists":["HEAD"],"changes":{}},"git_odb_stream_finalize_write":{"exists":["HEAD"],"changes":{}},"git_odb_stream_read":{"exists":["HEAD"],"changes":{}},"git_odb_stream_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_new":{"exists":["HEAD"],"changes":{}},"git_pathspec_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_matches_path":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_workdir":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_index":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_tree":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_diff":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_entrycount":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_entry":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_diff_entry":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_failed_entrycount":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_failed_entry":{"exists":["HEAD"],"changes":{}},"git_reference_is_tag":{"exists":["HEAD"],"changes":{}},"git_remote_owner":{"exists":["HEAD"],"changes":{}},"git_revwalk_simplify_first_parent":{"exists":["HEAD"],"changes":{}},"git_signature_default":{"exists":["HEAD"],"changes":{}},"git_cred_has_username":{"exists":["HEAD"],"changes":{}}},"groups":{"git_blob_lookup":"blob","git_blob_new":"blob","git_blob_set_rawcontent_fromfile":"blob","git_blob_set_rawcontent":"blob","git_blob_rawcontent":"blob","git_blob_rawsize":"blob","git_blob_writefile":"blob","git_commit_lookup":"commit","git_commit_new":"commit","git_commit_id":"commit","git_commit_message_short":"commit","git_commit_message":"commit","git_commit_time":"commit","git_commit_committer":"commit","git_commit_author":"commit","git_commit_tree":"commit","git_commit_add_parent":"commit","git_commit_set_message":"commit","git_commit_set_committer":"commit","git_commit_set_author":"commit","git_commit_set_tree":"commit","git_strerror":"errors","git_index_open_bare":"index","git_index_open_inrepo":"index","git_index_clear":"index","git_index_free":"index","git_index_read":"index","git_index_write":"index","git_index_find":"index","git_index_add":"index","git_index_remove":"index","git_index_insert":"index","git_index_get":"index","git_index_entrycount":"index","git_odb_open":"odb","git_odb_close":"odb","git_odb_read":"odb","git_odb_read_header":"odb","git_odb__read_packed":"odb","git_odb__read_loose":"odb","git_odb_write":"odb","git_obj_close":"obj","git_obj_type_to_string":"obj","git_obj_string_to_type":"obj","git_obj__loose_object_type":"obj","git_obj_hash":"obj","git_odb_exists":"odb","git_oid_mkstr":"oid","git_oid_mkraw":"oid","git_oid_fmt":"oid","git_oid_pathfmt":"oid","git_oid_allocfmt":"oid","git_oid_to_string":"oid","git_oid_cpy":"oid","git_oid_cmp":"oid","git_repository_open":"repository","git_repository_lookup":"repository","git_repository_database":"repository","git_repository_index":"repository","git_repository_newobject":"repository","git_object_write":"object","git_object_id":"object","git_object_type":"object","git_object_owner":"object","git_object_free":"object","git_repository_free":"repository","git_revwalk_new":"revwalk","git_revwalk_reset":"revwalk","git_revwalk_push":"revwalk","git_revwalk_hide":"revwalk","git_revwalk_next":"revwalk","git_revwalk_sorting":"revwalk","git_revwalk_free":"revwalk","git_revwalk_repository":"revwalk","git_tag_lookup":"tag","git_tag_new":"tag","git_tag_id":"tag","git_tag_target":"tag","git_tag_type":"tag","git_tag_name":"tag","git_tag_tagger":"tag","git_tag_message":"tag","git_tag_set_target":"tag","git_tag_set_name":"tag","git_tag_set_tagger":"tag","git_tag_set_message":"tag","git_tree_lookup":"tree","git_tree_new":"tree","git_tree_id":"tree","git_tree_entrycount":"tree","git_tree_entry_byname":"tree","git_tree_entry_byindex":"tree","git_tree_entry_attributes":"tree","git_tree_entry_name":"tree","git_tree_entry_id":"tree","git_tree_entry_2object":"tree","git_tree_add_entry":"tree","git_tree_remove_entry_byindex":"tree","git_tree_remove_entry_byname":"tree","git_tree_entry_set_id":"tree","git_tree_entry_set_name":"tree","git_tree_entry_set_attributes":"tree","deflateBound":"zlib","git_commit_parentcount":"commit","git_commit_parent":"commit","git_object_type2string":"object","git_object_string2type":"object","git_object_typeisloose":"object","git_odb_new":"odb","git_odb_add_backend":"odb","git_rawobj_hash":"rawobj","git_rawobj_close":"rawobj","git_repository_open2":"repository","git_commit_time_offset":"commit","git_object__size":"object","git_reference_new":"reference","git_reference_oid":"reference","git_reference_target":"reference","git_reference_type":"reference","git_reference_name":"reference","git_reference_resolve":"reference","git_reference_write":"reference","git_reference_owner":"reference","git_reference_set_name":"reference","git_reference_set_target":"reference","git_reference_set_oid":"reference","git_repository_open3":"repository","git_repository_init":"repository","git_repository_lookup_ref":"repository","git_signature_new":"signature","git_signature_dup":"signature","git_signature_free":"signature","git_tree_add_entry_unsorted":"tree","git_tree_sort_entries":"tree","git_tree_clear_entries":"tree","git_object_lookup":"object","git_object_new":"object","git_object_close":"object","git_odb_add_alternate":"odb","git_reference_lookup":"reference","git_reference_create_symbolic":"reference","git_reference_create_oid":"reference","git_reference_rename":"reference","git_reference_delete":"reference","git_reference_packall":"reference","git_oid_shorten_new":"oid","git_oid_shorten_add":"oid","git_oid_shorten_free":"oid","git_reference_listall":"reference","git_repository_close":"repository","git_tag_target_oid":"tag","git_blob_close":"blob","git_blob_create_fromfile":"blob","git_blob_create_frombuffer":"blob","git_commit_close":"commit","git_commit_create":"commit","git_commit_create_o":"commit","git_commit_create_ov":"commit","git_commit_create_v":"commit","git_odb_open_wstream":"odb","git_odb_open_rstream":"odb","git_odb_hash":"odb","git_odb_object_close":"odb","git_odb_object_id":"odb","git_odb_object_data":"odb","git_odb_object_size":"odb","git_odb_object_type":"odb","git_reference_listcb":"reference","git_tag_close":"tag","git_tag_create":"tag","git_tag_create_o":"tag","git_tree_close":"tree","git_commit_tree_oid":"commit","git_commit_parent_oid":"commit","git_lasterror":"errors","git_index_add2":"index","git_index_append":"index","git_index_append2":"index","git_reference_create_symbolic_f":"reference","git_reference_create_oid_f":"reference","git_reference_rename_f":"reference","git_repository_is_empty":"repository","git_repository_path":"repository","git_repository_workdir":"repository","git_signature_now":"signature","git_tag_create_frombuffer":"tag","git_tag_create_f":"tag","git_tag_create_fo":"tag","git_tag_delete":"tag","git_tag_list":"tag","git_tree_create_fromindex":"tree","git_treebuilder_create":"treebuilder","git_treebuilder_clear":"treebuilder","git_treebuilder_free":"treebuilder","git_treebuilder_get":"treebuilder","git_treebuilder_insert":"treebuilder","git_treebuilder_remove":"treebuilder","git_treebuilder_filter":"treebuilder","git_treebuilder_write":"treebuilder","git_blob_lookup_prefix":"blob","git_commit_lookup_prefix":"commit","git_libgit2_version":"libgit2","git_config_find_global":"config","git_config_open_global":"config","git_config_file__ondisk":"config","git_config_new":"config","git_config_add_file":"config","git_config_add_file_ondisk":"config","git_config_open_ondisk":"config","git_config_free":"config","git_config_get_int":"config","git_config_get_long":"config","git_config_get_bool":"config","git_config_get_string":"config","git_config_set_int":"config","git_config_set_long":"config","git_config_set_bool":"config","git_config_set_string":"config","git_config_foreach":"config","git_index_open":"index","git_index_entrycount_unmerged":"index","git_index_get_unmerged_bypath":"index","git_index_get_unmerged_byindex":"index","git_index_entry_stage":"index","git_object_lookup_prefix":"object","git_odb_read_prefix":"odb","git_oid_fromstr":"oid","git_oid_fromraw":"oid","git_oid_ncmp":"oid","git_reference_foreach":"reference","git_repository_discover":"repository","git_repository_is_bare":"repository","git_repository_config":"repository","git_tag_lookup_prefix":"tag","git_tree_lookup_prefix":"tree","git_tree_entry_type":"tree","git_config_delete":"config","git_clearerror":"errors","git_index_uniq":"index","git_odb_hashfile":"odb","git_oid_fromstrn":"oid","git_reflog_read":"reflog","git_reflog_write":"reflog","git_reflog_entrycount":"reflog","git_reflog_entry_byindex":"reflog","git_reflog_entry_oidold":"reflog","git_reflog_entry_oidnew":"reflog","git_reflog_entry_committer":"reflog","git_reflog_entry_msg":"reflog","git_reflog_free":"reflog","git_refspec_src":"refspec","git_refspec_dst":"refspec","git_refspec_src_match":"refspec","git_refspec_transform":"refspec","git_remote_get":"remote","git_remote_name":"remote","git_remote_url":"remote","git_remote_fetchspec":"remote","git_remote_pushspec":"remote","git_remote_connect":"remote","git_remote_ls":"remote","git_remote_free":"remote","git_repository_head_detached":"repository","git_repository_head_orphan":"repository","git_status_foreach":"status","git_status_file":"status","git_tag_create_lightweight":"tag","git_tag_list_match":"tag","git_transport_new":"transport","git_commit_message_encoding":"commit","git_config_find_system":"config","git_config_get_int32":"config","git_config_get_int64":"config","git_config_set_int32":"config","git_config_set_int64":"config","git_indexer_new":"indexer","git_indexer_run":"indexer","git_indexer_write":"indexer","git_indexer_hash":"indexer","git_indexer_free":"indexer","git_remote_new":"remote","git_remote_negotiate":"remote","git_remote_download":"remote","git_remote_update_tips":"remote","git_repository_head":"repository","git_repository_config_autoload":"repository","git_attr_get":"attr","git_attr_get_many":"attr","git_attr_foreach":"attr","git_attr_cache_flush":"attr","git_attr_add_macro":"attr","git_blob_free":"blob","git_commit_free":"commit","git_index_read_tree":"index","git_odb_free":"odb","git_odb_object_free":"odb","git_oid_streq":"oid","git_reflog_rename":"reflog","git_reflog_delete":"reflog","git_reference_is_packed":"reference","git_reference_reload":"reference","git_reference_free":"reference","git_remote_load":"remote","git_remote_connected":"remote","git_remote_disconnect":"remote","git_remote_valid_url":"remote","git_repository_set_workdir":"repository","git_repository_set_config":"repository","git_repository_odb":"repository","git_repository_set_odb":"repository","git_repository_set_index":"repository","git_status_should_ignore":"status","git_tag_free":"tag","git_threads_init":"threads","git_threads_shutdown":"threads","git_tree_free":"tree","git_tree_get_subtree":"tree","git_tree_walk":"tree","git_tree_diff":"tree","gitwin_set_codepage":"gitwin","gitwin_get_codepage":"gitwin","gitwin_set_utf8":"gitwin","git_blob_create_fromdisk":"blob","git_branch_create":"branch","git_branch_delete":"branch","git_branch_list":"branch","git_branch_move":"branch","git_config_get_multivar":"config","git_config_set_multivar":"config","git_config_get_mapped":"config","git_diff_list_free":"diff","git_diff_tree_to_tree":"diff","git_diff_index_to_tree":"diff","git_diff_workdir_to_index":"diff","git_diff_workdir_to_tree":"diff","git_diff_merge":"diff","git_diff_foreach":"diff","git_diff_print_compact":"diff","git_diff_print_patch":"diff","git_diff_blobs":"diff","giterr_last":"giterr","giterr_clear":"giterr","git_indexer_stream_new":"indexer","git_indexer_stream_add":"indexer","git_indexer_stream_finalize":"indexer","git_indexer_stream_hash":"indexer","git_indexer_stream_free":"indexer","git_merge_base":"merge","git_note_read":"note","git_note_message":"note","git_note_oid":"note","git_note_create":"note","git_note_remove":"note","git_note_free":"note","git_note_default_ref":"note","git_note_foreach":"note","git_oid_tostr":"oid","git_oid_iszero":"oid","git_reference_name_to_oid":"reference","git_reference_list":"reference","git_reference_cmp":"reference","git_refspec_src_matches":"refspec","git_remote_save":"remote","git_remote_set_fetchspec":"remote","git_remote_set_pushspec":"remote","git_remote_supported_url":"remote","git_remote_list":"remote","git_remote_add":"remote","git_repository_open_ext":"repository","git_revwalk_push_glob":"revwalk","git_revwalk_push_head":"revwalk","git_revwalk_hide_glob":"revwalk","git_revwalk_hide_head":"revwalk","git_revwalk_push_ref":"revwalk","git_revwalk_hide_ref":"revwalk","git_status_foreach_ext":"status","git_submodule_foreach":"submodule","git_submodule_lookup":"submodule","git_tag_peel":"tag","git_tree_entry_to_object":"tree","git_blob_id":"blob","git_blob_create_fromworkdir":"blob","git_blob_create_fromchunks":"blob","git_blob_is_binary":"blob","git_branch_foreach":"branch","git_branch_lookup":"branch","git_branch_name":"branch","git_branch_upstream":"branch","git_branch_set_upstream":"branch","git_branch_upstream_name":"branch","git_branch_is_head":"branch","git_branch_remote_name":"branch","git_checkout_head":"checkout","git_checkout_index":"checkout","git_checkout_tree":"checkout","git_clone":"clone","git_commit_tree_id":"commit","git_commit_parent_id":"commit","git_commit_nth_gen_ancestor":"commit","git_libgit2_capabilities":"libgit2","git_libgit2_opts":"libgit2","git_config_find_xdg":"config","git_config_open_default":"config","git_config_add_backend":"config","git_config_open_level":"config","git_config_refresh":"config","git_config_get_entry":"config","git_config_delete_entry":"config","git_config_foreach_match":"config","git_config_lookup_map_value":"config","git_config_parse_bool":"config","git_config_parse_int32":"config","git_config_parse_int64":"config","git_cred_userpass":"cred","git_diff_tree_to_index":"diff","git_diff_index_to_workdir":"diff","git_diff_tree_to_workdir":"diff","git_diff_find_similar":"diff","git_diff_status_char":"diff","git_diff_num_deltas":"diff","git_diff_num_deltas_of_type":"diff","git_diff_get_patch":"diff","git_diff_patch_free":"diff","git_diff_patch_delta":"diff","git_diff_patch_num_hunks":"diff","git_diff_patch_line_stats":"diff","git_diff_patch_get_hunk":"diff","git_diff_patch_num_lines_in_hunk":"diff","git_diff_patch_get_line_in_hunk":"diff","git_diff_patch_print":"diff","git_diff_patch_to_str":"diff","git_diff_blob_to_buffer":"diff","giterr_set_str":"giterr","giterr_set_oom":"giterr","git_graph_ahead_behind":"graph","git_ignore_add_rule":"ignore","git_ignore_clear_internal_rules":"ignore","git_ignore_path_is_ignored":"ignore","git_index_new":"index","git_index_owner":"index","git_index_caps":"index","git_index_set_caps":"index","git_index_write_tree":"index","git_index_write_tree_to":"index","git_index_get_byindex":"index","git_index_get_bypath":"index","git_index_remove_directory":"index","git_index_add_bypath":"index","git_index_remove_bypath":"index","git_index_conflict_add":"index","git_index_conflict_get":"index","git_index_conflict_remove":"index","git_index_conflict_cleanup":"index","git_index_has_conflicts":"index","git_index_reuc_entrycount":"index","git_index_reuc_find":"index","git_index_reuc_get_bypath":"index","git_index_reuc_get_byindex":"index","git_index_reuc_add":"index","git_index_reuc_remove":"index","git_index_reuc_clear":"index","git_merge_base_many":"merge","git_message_prettify":"message","git_note_iterator_new":"note","git_note_iterator_free":"note","git_note_next":"note","git_object_peel":"object","git_object_dup":"object","git_odb_add_disk_alternate":"odb","git_odb_refresh":"odb","git_odb_foreach":"odb","git_odb_write_pack":"odb","git_odb_backend_pack":"odb","git_oid_fromstrp":"oid","git_oid_equal":"oid","git_packbuilder_new":"packbuilder","git_packbuilder_set_threads":"packbuilder","git_packbuilder_insert":"packbuilder","git_packbuilder_insert_tree":"packbuilder","git_packbuilder_write":"packbuilder","git_packbuilder_foreach":"packbuilder","git_packbuilder_object_count":"packbuilder","git_packbuilder_written":"packbuilder","git_packbuilder_free":"packbuilder","git_push_new":"push","git_push_set_options":"push","git_push_add_refspec":"push","git_push_update_tips":"push","git_push_finish":"push","git_push_unpack_ok":"push","git_push_status_foreach":"push","git_push_free":"push","git_reference__alloc":"reference","git_refdb_new":"refdb","git_refdb_open":"refdb","git_refdb_compress":"refdb","git_refdb_free":"refdb","git_refdb_set_backend":"refdb","git_refdb_backend_fs":"refdb","git_reflog_append":"reflog","git_reflog_drop":"reflog","git_reflog_entry_id_old":"reflog","git_reflog_entry_id_new":"reflog","git_reflog_entry_message":"reflog","git_reference_name_to_id":"reference","git_reference_symbolic_create":"reference","git_reference_create":"reference","git_reference_symbolic_target":"reference","git_reference_symbolic_set_target":"reference","git_reference_foreach_glob":"reference","git_reference_has_log":"reference","git_reference_is_branch":"reference","git_reference_is_remote":"reference","git_reference_normalize_name":"reference","git_reference_peel":"reference","git_reference_is_valid_name":"reference","git_refspec_force":"refspec","git_refspec_dst_matches":"refspec","git_refspec_rtransform":"refspec","git_remote_create":"remote","git_remote_create_inmemory":"remote","git_remote_pushurl":"remote","git_remote_set_url":"remote","git_remote_set_pushurl":"remote","git_remote_stop":"remote","git_remote_check_cert":"remote","git_remote_set_cred_acquire_cb":"remote","git_remote_set_transport":"remote","git_remote_set_callbacks":"remote","git_remote_stats":"remote","git_remote_autotag":"remote","git_remote_set_autotag":"remote","git_remote_rename":"remote","git_remote_update_fetchhead":"remote","git_remote_set_update_fetchhead":"remote","git_remote_is_valid_name":"remote","git_repository_wrap_odb":"repository","git_repository_init_ext":"repository","git_repository_refdb":"repository","git_repository_set_refdb":"repository","git_repository_message":"repository","git_repository_message_remove":"repository","git_repository_merge_cleanup":"repository","git_repository_fetchhead_foreach":"repository","git_repository_mergehead_foreach":"repository","git_repository_hashfile":"repository","git_repository_set_head":"repository","git_repository_set_head_detached":"repository","git_repository_detach_head":"repository","git_repository_state":"repository","git_reset":"reset","git_reset_default":"reset","git_revparse_single":"revparse","git_revparse":"revparse","git_revwalk_push_range":"revwalk","git_stash_save":"stash","git_stash_foreach":"stash","git_stash_drop":"stash","git_strarray_free":"strarray","git_strarray_copy":"strarray","git_submodule_add_setup":"submodule","git_submodule_add_finalize":"submodule","git_submodule_add_to_index":"submodule","git_submodule_save":"submodule","git_submodule_owner":"submodule","git_submodule_name":"submodule","git_submodule_path":"submodule","git_submodule_url":"submodule","git_submodule_set_url":"submodule","git_submodule_index_id":"submodule","git_submodule_head_id":"submodule","git_submodule_wd_id":"submodule","git_submodule_ignore":"submodule","git_submodule_set_ignore":"submodule","git_submodule_update":"submodule","git_submodule_set_update":"submodule","git_submodule_fetch_recurse_submodules":"submodule","git_submodule_set_fetch_recurse_submodules":"submodule","git_submodule_init":"submodule","git_submodule_sync":"submodule","git_submodule_open":"submodule","git_submodule_reload":"submodule","git_submodule_reload_all":"submodule","git_submodule_status":"submodule","git_submodule_location":"submodule","git_tag_target_id":"tag","git_tag_target_type":"tag","git_tag_foreach":"tag","git_trace_set":"trace","git_cred_userpass_plaintext_new":"cred","git_transport_dummy":"transport","git_transport_local":"transport","git_transport_smart":"transport","git_smart_subtransport_http":"smart","git_smart_subtransport_git":"smart","git_tree_owner":"tree","git_tree_entry_byoid":"tree","git_tree_entry_bypath":"tree","git_tree_entry_dup":"tree","git_tree_entry_free":"tree","git_tree_entry_filemode":"tree","git_tree_entry_cmp":"tree","git_treebuilder_entrycount":"treebuilder","git_blob_owner":"blob","git_commit_owner":"commit","git_diff_print_raw":"diff","git_diff_patch_from_blobs":"diff","git_diff_patch_from_blob_and_buffer":"diff","git_index_add_all":"index","git_index_remove_all":"index","git_index_update_all":"index","git_index_conflict_iterator_new":"index","git_index_conflict_next":"index","git_index_conflict_iterator_free":"index","git_merge_head_from_ref":"merge","git_merge_head_from_fetchhead":"merge","git_merge_head_from_oid":"merge","git_merge_head_free":"merge","git_merge_trees":"merge","git_odb_num_backends":"odb","git_odb_get_backend":"odb","git_odb_backend_loose":"odb","git_odb_backend_one_pack":"odb","git_oid_nfmt":"oid","git_oid_strcmp":"oid","git_packbuilder_insert_commit":"packbuilder","git_reference_dwim":"reference","git_reference_target_peel":"reference","git_reference_iterator_new":"reference","git_reference_iterator_glob_new":"reference","git_reference_next":"reference","git_reference_iterator_free":"reference","git_reference_shorthand":"reference","git_refspec_string":"refspec","git_refspec_direction":"refspec","git_remote_add_fetch":"remote","git_remote_get_fetch_refspecs":"remote","git_remote_add_push":"remote","git_remote_get_push_refspecs":"remote","git_remote_clear_refspecs":"remote","git_remote_refspec_count":"remote","git_remote_get_refspec":"remote","git_remote_remove_refspec":"remote","git_repository_open_bare":"repository","git_repository_set_namespace":"repository","git_repository_get_namespace":"repository","git_repository_is_shallow":"repository","git_revparse_ext":"revparse","git_status_list_new":"status","git_status_list_entrycount":"status","git_status_byindex":"status","git_status_list_free":"status","git_commit_create_from_oids":"commit","git_index_name_entrycount":"index","git_index_name_get_byindex":"index","git_index_name_add":"index","git_index_name_clear":"index","git_reference__alloc_symbolic":"reference","git_repository_new":"repository","git_repository__cleanup":"repository","git_tag_owner":"tag","git_tag_annotation_create":"tag","git_cred_ssh_keyfile_passphrase_new":"cred","git_cred_ssh_publickey_new":"cred","git_smart_subtransport_ssh":"smart","git_commit_raw_header":"commit","git_config_get_multivar_foreach":"config","git_config_multivar_iterator_new":"config","git_config_next":"config","git_config_iterator_free":"config","git_config_iterator_new":"config","git_config_iterator_glob_new":"config","git_config_backend_foreach_match":"config","git_diff_is_sorted_icase":"diff","git_diff_patch_size":"diff","git_index_path":"index","git_odb_stream_write":"odb","git_odb_stream_finalize_write":"odb","git_odb_stream_read":"odb","git_odb_stream_free":"odb","git_pathspec_new":"pathspec","git_pathspec_free":"pathspec","git_pathspec_matches_path":"pathspec","git_pathspec_match_workdir":"pathspec","git_pathspec_match_index":"pathspec","git_pathspec_match_tree":"pathspec","git_pathspec_match_diff":"pathspec","git_pathspec_match_list_free":"pathspec","git_pathspec_match_list_entrycount":"pathspec","git_pathspec_match_list_entry":"pathspec","git_pathspec_match_list_diff_entry":"pathspec","git_pathspec_match_list_failed_entrycount":"pathspec","git_pathspec_match_list_failed_entry":"pathspec","git_reference_is_tag":"reference","git_remote_owner":"remote","git_revwalk_simplify_first_parent":"revwalk","git_signature_default":"signature","git_cred_has_username":"cred"}} \ No newline at end of file
+{"versions":["HEAD","v0.19.0","v0.18.0","v0.17.0","v0.16.0","v0.15.0","v0.14.0","v0.13.0","v0.12.0","v0.11.0","v0.10.0","v0.8.0","v0.3.0","v0.2.0","v0.1.0"],"github":"libgit2/libgit2","name":"libgit2","signatures":{"git_blob_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_set_rawcontent_fromfile":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_set_rawcontent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_blob_rawcontent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_blob_rawsize":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_blob_writefile":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_message_short":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0"],"changes":{}},"git_commit_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_time":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_committer":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_author":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_tree":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.18.0":true}},"git_commit_add_parent":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_set_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_commit_set_committer":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_commit_set_author":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_commit_set_tree":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_strerror":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_open_bare":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_index_open_inrepo":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_index_clear":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_read":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_find":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_add":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_remove":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_index_insert":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0"],"changes":{}},"git_index_get":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.13.0":true}},"git_index_entrycount":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_open":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_close":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_read":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_odb_read_header":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_odb__read_packed":{"exists":["v0.1.0"],"changes":{}},"git_odb__read_loose":{"exists":["v0.1.0"],"changes":{}},"git_odb_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true}},"git_obj_close":{"exists":["v0.1.0"],"changes":{}},"git_obj_type_to_string":{"exists":["v0.1.0"],"changes":{}},"git_obj_string_to_type":{"exists":["v0.1.0"],"changes":{}},"git_obj__loose_object_type":{"exists":["v0.1.0"],"changes":{}},"git_obj_hash":{"exists":["v0.1.0"],"changes":{}},"git_odb_exists":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_mkstr":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_oid_mkraw":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0"],"changes":{}},"git_oid_fmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_pathfmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_allocfmt":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_to_string":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_oid_cpy":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_cmp":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_open":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0"],"changes":{}},"git_repository_database":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_repository_index":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.3.0":true}},"git_repository_newobject":{"exists":["v0.1.0","v0.2.0","v0.3.0"],"changes":{}},"git_object_write":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_object_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_type":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_owner":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_object_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_reset":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true}},"git_revwalk_hide":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true}},"git_revwalk_next":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.3.0":true,"v0.10.0":true}},"git_revwalk_sorting":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_free":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_repository":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_target":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.18.0":true}},"git_tag_type":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_tag_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_tagger":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tag_set_target":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_set_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tag_set_tagger":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_tag_set_message":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_lookup":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_new":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entrycount":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_byname":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_tree_entry_byindex":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.13.0":true,"v0.18.0":true,"v0.19.0":true}},"git_tree_entry_attributes":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.12.0":true}},"git_tree_entry_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.12.0":true}},"git_tree_entry_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.12.0":true}},"git_tree_entry_2object":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{"v0.11.0":true,"v0.12.0":true}},"git_tree_add_entry":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.3.0":true}},"git_tree_remove_entry_byindex":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_remove_entry_byname":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_id":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_name":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_tree_entry_set_attributes":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{"v0.10.0":true}},"deflateBound":{"exists":["v0.1.0","v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_commit_parentcount":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_parent":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.10.0":true,"v0.19.0":true}},"git_object_type2string":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_string2type":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_typeisloose":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_new":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_add_backend":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.8.0":true}},"git_rawobj_hash":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_rawobj_close":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_repository_open2":{"exists":["v0.2.0","v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_time_offset":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_object__size":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_new":{"exists":["v0.3.0"],"changes":{}},"git_reference_oid":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reference_target":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_type":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_name":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_resolve":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_write":{"exists":["v0.3.0"],"changes":{}},"git_reference_owner":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_set_name":{"exists":["v0.3.0"],"changes":{}},"git_reference_set_target":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_set_oid":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_repository_open3":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_repository_init":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_lookup_ref":{"exists":["v0.3.0"],"changes":{}},"git_signature_new":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.11.0":true,"v0.15.0":true}},"git_signature_dup":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_signature_free":{"exists":["v0.3.0","v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_add_entry_unsorted":{"exists":["v0.3.0"],"changes":{}},"git_tree_sort_entries":{"exists":["v0.3.0"],"changes":{}},"git_tree_clear_entries":{"exists":["v0.3.0","v0.8.0","v0.10.0"],"changes":{}},"git_object_lookup":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_new":{"exists":["v0.8.0","v0.10.0"],"changes":{}},"git_object_close":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_add_alternate":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_lookup":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_create_symbolic":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.14.0":true}},"git_reference_create_oid":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.14.0":true}},"git_reference_rename":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.18.0":true}},"git_reference_delete":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_packall":{"exists":["v0.8.0","v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_oid_shorten_new":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_shorten_add":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_shorten_free":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_listall":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_repository_close":{"exists":["v0.10.0"],"changes":{}},"git_tag_target_oid":{"exists":["v0.10.0","v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_blob_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_blob_create_fromfile":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_blob_create_frombuffer":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_create":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.15.0":true}},"git_commit_create_o":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_commit_create_ov":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_commit_create_v":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.15.0":true}},"git_odb_open_wstream":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_open_rstream":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_hash":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_odb_object_id":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_data":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_size":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_type":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_listcb":{"exists":["v0.11.0","v0.12.0"],"changes":{}},"git_tag_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_tag_create":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true}},"git_tag_create_o":{"exists":["v0.11.0","v0.12.0","v0.13.0"],"changes":{}},"git_tree_close":{"exists":["v0.11.0","v0.12.0","v0.13.0","v0.14.0","v0.15.0"],"changes":{}},"git_commit_tree_oid":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_commit_parent_oid":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_lasterror":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_add2":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_append":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_append2":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reference_create_symbolic_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_reference_create_oid_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_reference_rename_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_repository_is_empty":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_path":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.13.0":true,"v0.16.0":true}},"git_repository_workdir":{"exists":["v0.12.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_signature_now":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.15.0":true}},"git_tag_create_frombuffer":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true}},"git_tag_create_f":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_tag_create_fo":{"exists":["v0.12.0","v0.13.0"],"changes":{}},"git_tag_delete":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_list":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_create_fromindex":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_treebuilder_create":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_clear":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_free":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_get":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_insert":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_treebuilder_remove":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_filter":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_treebuilder_write":{"exists":["v0.12.0","v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_libgit2_version":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_find_global":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_config_open_global":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_file__ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_config_new":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_add_file":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_config_add_file_ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"git_config_open_ondisk":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_free":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_int":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_get_long":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_get_bool":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_get_string":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_set_int":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_set_long":{"exists":["v0.13.0","v0.14.0"],"changes":{}},"git_config_set_bool":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_set_string":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_foreach":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.14.0":true,"v0.18.0":true}},"git_index_open":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_entrycount_unmerged":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_get_unmerged_bypath":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_get_unmerged_byindex":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_index_entry_stage":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_read_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_oid_fromstr":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromraw":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_ncmp":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reference_foreach":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"git_repository_discover":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_is_bare":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_config":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_tag_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_lookup_prefix":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_type":{"exists":["v0.13.0","v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_delete":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_clearerror":{"exists":["v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_index_uniq":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_odb_hashfile":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromstrn":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_read":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_write":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_entrycount":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_byindex":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_reflog_entry_oidold":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_entry_oidnew":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_entry_committer":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_msg":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_reflog_free":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_dst":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src_match":{"exists":["v0.14.0","v0.15.0","v0.16.0"],"changes":{}},"git_refspec_transform":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_get":{"exists":["v0.14.0","v0.15.0"],"changes":{}},"git_remote_name":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_url":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_fetchspec":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_pushspec":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_connect":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.18.0":true}},"git_remote_ls":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_remote_free":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true}},"git_repository_head_detached":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_head_orphan":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0"],"changes":{}},"git_status_foreach":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_status_file":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_create_lightweight":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_list_match":{"exists":["v0.14.0","v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_new":{"exists":["v0.14.0","v0.15.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_commit_message_encoding":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_config_find_system":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_config_get_int32":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_get_int64":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_config_set_int32":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_set_int64":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_indexer_new":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_run":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_write":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_hash":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_indexer_free":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{}},"git_remote_new":{"exists":["v0.15.0","v0.16.0","v0.17.0"],"changes":{"v0.16.0":true,"v0.17.0":true}},"git_remote_negotiate":{"exists":["v0.15.0"],"changes":{}},"git_remote_download":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_remote_update_tips":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.16.0":true,"v0.17.0":true,"v0.18.0":true}},"git_repository_head":{"exists":["v0.15.0","v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_config_autoload":{"exists":["v0.15.0"],"changes":{}},"git_attr_get":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_attr_get_many":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_attr_foreach":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true,"v0.18.0":true}},"git_attr_cache_flush":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_attr_add_macro":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_read_tree":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_odb_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_object_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_streq":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_rename":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_delete":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_packed":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_reference_reload":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_reference_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_load":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_connected":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_disconnect":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_valid_url":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_workdir":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_repository_set_config":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_odb":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_odb":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_index":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_status_should_ignore":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.17.0":true}},"git_tag_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_threads_init":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_threads_shutdown":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_free":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_get_subtree":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_tree_walk":{"exists":["v0.16.0","v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_diff":{"exists":["v0.16.0"],"changes":{}},"gitwin_set_codepage":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"gitwin_get_codepage":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"gitwin_set_utf8":{"exists":["v0.16.0","v0.17.0"],"changes":{}},"git_blob_create_fromdisk":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_create":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_branch_delete":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_branch_list":{"exists":["v0.17.0"],"changes":{}},"git_branch_move":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_config_get_multivar":{"exists":["v0.17.0","v0.18.0","v0.19.0"],"changes":{"v0.18.0":true}},"git_config_set_multivar":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_mapped":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_list_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_tree":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_index_to_tree":{"exists":["v0.17.0"],"changes":{}},"git_diff_workdir_to_index":{"exists":["v0.17.0"],"changes":{}},"git_diff_workdir_to_tree":{"exists":["v0.17.0"],"changes":{}},"git_diff_merge":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_print_compact":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_print_patch":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_diff_blobs":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true,"v0.19.0":true}},"giterr_last":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"giterr_clear":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_indexer_stream_new":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_add":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_finalize":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_hash":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_indexer_stream_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_merge_base":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_read":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_message":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_oid":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_create":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_remove":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_note_free":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_default_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_oid_tostr":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_iszero":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_name_to_oid":{"exists":["v0.17.0"],"changes":{}},"git_reference_list":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reference_cmp":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_src_matches":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_save":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_fetchspec":{"exists":["v0.17.0","v0.18.0"],"changes":{}},"git_remote_set_pushspec":{"exists":["v0.17.0","v0.18.0"],"changes":{}},"git_remote_supported_url":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_list":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_add":{"exists":["v0.17.0"],"changes":{}},"git_repository_open_ext":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_revwalk_push_glob":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_head":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_glob":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_head":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_hide_ref":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_status_foreach_ext":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_submodule_foreach":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_submodule_lookup":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_peel":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{"v0.18.0":true}},"git_tree_entry_to_object":{"exists":["v0.17.0","v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_create_fromworkdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_create_fromchunks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_is_binary":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_lookup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_upstream":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_set_upstream":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_upstream_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_is_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_branch_remote_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_checkout_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_clone":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_tree_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_commit_parent_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_commit_nth_gen_ancestor":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_libgit2_capabilities":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_libgit2_opts":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_find_xdg":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_open_default":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_add_backend":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_open_level":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_config_refresh":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_get_entry":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_delete_entry":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_foreach_match":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_lookup_map_value":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_bool":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_int32":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_config_parse_int64":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_cred_userpass":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_index_to_workdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_tree_to_workdir":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_find_similar":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_status_char":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_num_deltas":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_num_deltas_of_type":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_get_patch":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_delta":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_num_hunks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_line_stats":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_get_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_num_lines_in_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_get_line_in_hunk":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_print":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_patch_to_str":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_diff_blob_to_buffer":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"giterr_set_str":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"giterr_set_oom":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_graph_ahead_behind":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_add_rule":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_clear_internal_rules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_ignore_path_is_ignored":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_caps":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_set_caps":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_index_write_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_write_tree_to":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_get_byindex":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_get_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_remove_directory":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_add_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_remove_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_add":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_get":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_index_conflict_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_conflict_cleanup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_has_conflicts":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_entrycount":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_find":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_get_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_get_byindex":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_add":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_index_reuc_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_index_reuc_clear":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_merge_base_many":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_message_prettify":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_iterator_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_iterator_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_note_next":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_peel":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_object_dup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_add_disk_alternate":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_refresh":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_write_pack":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_odb_backend_pack":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_fromstrp":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_oid_equal":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_set_threads":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert_tree":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_write":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_packbuilder_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_object_count":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_written":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_packbuilder_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_set_options":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_add_refspec":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_update_tips":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_finish":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_unpack_ok":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_status_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_push_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference__alloc":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_refdb_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_open":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_compress":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_set_backend":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refdb_backend_fs":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reflog_append":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_drop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_id_old":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_id_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reflog_entry_message":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_name_to_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_target":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_symbolic_set_target":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_foreach_glob":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_reference_has_log":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_branch":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_remote":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_normalize_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_peel":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reference_is_valid_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_force":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_dst_matches":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_refspec_rtransform":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_create":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_create_inmemory":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_pushurl":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_pushurl":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_stop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_check_cert":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_cred_acquire_cb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_transport":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_callbacks":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_stats":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_autotag":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_autotag":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_rename":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_update_fetchhead":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_set_update_fetchhead":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_remote_is_valid_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_wrap_odb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_init_ext":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_refdb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_refdb":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_message":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_message_remove":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_merge_cleanup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_fetchhead_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_mergehead_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_hashfile":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_set_head_detached":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_detach_head":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_repository_state":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reset":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_reset_default":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revparse_single":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revparse":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_revwalk_push_range":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_stash_save":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_stash_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_stash_drop":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_strarray_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_strarray_copy":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_setup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_finalize":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_add_to_index":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_save":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_name":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_path":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_url":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_index_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_head_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_wd_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_ignore":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_ignore":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_update":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_update":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_fetch_recurse_submodules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_set_fetch_recurse_submodules":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_init":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_sync":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_open":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_reload":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_reload_all":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_status":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_submodule_location":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_target_id":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_target_type":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tag_foreach":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_trace_set":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_cred_userpass_plaintext_new":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_dummy":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_local":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_transport_smart":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_smart_subtransport_http":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_smart_subtransport_git":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_owner":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_byoid":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_bypath":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{"v0.19.0":true}},"git_tree_entry_dup":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_free":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_filemode":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_tree_entry_cmp":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_treebuilder_entrycount":{"exists":["v0.18.0","v0.19.0","HEAD"],"changes":{}},"git_blob_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_commit_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_print_raw":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_patch_from_blobs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_diff_patch_from_blob_and_buffer":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_add_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_remove_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_update_all":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_iterator_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_next":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_conflict_iterator_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_ref":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_fetchhead":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_from_oid":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_head_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_merge_trees":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_num_backends":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_get_backend":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_backend_loose":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_odb_backend_one_pack":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_oid_nfmt":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_oid_strcmp":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_packbuilder_insert_commit":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_dwim":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_target_peel":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_glob_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_next":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_iterator_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference_shorthand":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_refspec_string":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_refspec_direction":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_add_fetch":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_fetch_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_add_push":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_push_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_clear_refspecs":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_refspec_count":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_get_refspec":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_remote_remove_refspec":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_open_bare":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_set_namespace":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_get_namespace":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_is_shallow":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_revparse_ext":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_entrycount":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_byindex":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_status_list_free":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_commit_create_from_oids":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_entrycount":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_get_byindex":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_add":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_index_name_clear":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_reference__alloc_symbolic":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository_new":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_repository__cleanup":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_tag_owner":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_tag_annotation_create":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_cred_ssh_keyfile_passphrase_new":{"exists":["v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_cred_ssh_publickey_new":{"exists":["v0.19.0","HEAD"],"changes":{"HEAD":true}},"git_smart_subtransport_ssh":{"exists":["v0.19.0","HEAD"],"changes":{}},"git_blob_filtered_content":{"exists":["HEAD"],"changes":{}},"git_buf_free":{"exists":["HEAD"],"changes":{}},"git_buf_grow":{"exists":["HEAD"],"changes":{}},"git_buf_set":{"exists":["HEAD"],"changes":{}},"git_commit_raw_header":{"exists":["HEAD"],"changes":{}},"git_config_get_multivar_foreach":{"exists":["HEAD"],"changes":{}},"git_config_multivar_iterator_new":{"exists":["HEAD"],"changes":{}},"git_config_next":{"exists":["HEAD"],"changes":{}},"git_config_iterator_free":{"exists":["HEAD"],"changes":{}},"git_config_iterator_new":{"exists":["HEAD"],"changes":{}},"git_config_iterator_glob_new":{"exists":["HEAD"],"changes":{}},"git_config_backend_foreach_match":{"exists":["HEAD"],"changes":{}},"git_diff_is_sorted_icase":{"exists":["HEAD"],"changes":{}},"git_diff_patch_size":{"exists":["HEAD"],"changes":{}},"git_filter_list_load":{"exists":["HEAD"],"changes":{}},"git_filter_list_apply_to_data":{"exists":["HEAD"],"changes":{}},"git_filter_list_apply_to_file":{"exists":["HEAD"],"changes":{}},"git_filter_list_apply_to_blob":{"exists":["HEAD"],"changes":{}},"git_filter_list_free":{"exists":["HEAD"],"changes":{}},"git_index_path":{"exists":["HEAD"],"changes":{}},"git_odb_stream_write":{"exists":["HEAD"],"changes":{}},"git_odb_stream_finalize_write":{"exists":["HEAD"],"changes":{}},"git_odb_stream_read":{"exists":["HEAD"],"changes":{}},"git_odb_stream_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_new":{"exists":["HEAD"],"changes":{}},"git_pathspec_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_matches_path":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_workdir":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_index":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_tree":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_diff":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_free":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_entrycount":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_entry":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_diff_entry":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_failed_entrycount":{"exists":["HEAD"],"changes":{}},"git_pathspec_match_list_failed_entry":{"exists":["HEAD"],"changes":{}},"git_reference_is_tag":{"exists":["HEAD"],"changes":{}},"git_remote_owner":{"exists":["HEAD"],"changes":{}},"git_repository_head_unborn":{"exists":["HEAD"],"changes":{}},"git_revwalk_simplify_first_parent":{"exists":["HEAD"],"changes":{}},"git_signature_default":{"exists":["HEAD"],"changes":{}},"git_filter_lookup":{"exists":["HEAD"],"changes":{}},"git_filter_list_new":{"exists":["HEAD"],"changes":{}},"git_filter_list_push":{"exists":["HEAD"],"changes":{}},"git_filter_list_length":{"exists":["HEAD"],"changes":{}},"git_filter_source_repo":{"exists":["HEAD"],"changes":{}},"git_filter_source_path":{"exists":["HEAD"],"changes":{}},"git_filter_source_filemode":{"exists":["HEAD"],"changes":{}},"git_filter_source_id":{"exists":["HEAD"],"changes":{}},"git_filter_source_mode":{"exists":["HEAD"],"changes":{}},"git_filter_register":{"exists":["HEAD"],"changes":{}},"git_filter_unregister":{"exists":["HEAD"],"changes":{}},"git_cred_has_username":{"exists":["HEAD"],"changes":{}}},"groups":{"git_blob_lookup":"blob","git_blob_new":"blob","git_blob_set_rawcontent_fromfile":"blob","git_blob_set_rawcontent":"blob","git_blob_rawcontent":"blob","git_blob_rawsize":"blob","git_blob_writefile":"blob","git_commit_lookup":"commit","git_commit_new":"commit","git_commit_id":"commit","git_commit_message_short":"commit","git_commit_message":"commit","git_commit_time":"commit","git_commit_committer":"commit","git_commit_author":"commit","git_commit_tree":"commit","git_commit_add_parent":"commit","git_commit_set_message":"commit","git_commit_set_committer":"commit","git_commit_set_author":"commit","git_commit_set_tree":"commit","git_strerror":"errors","git_index_open_bare":"index","git_index_open_inrepo":"index","git_index_clear":"index","git_index_free":"index","git_index_read":"index","git_index_write":"index","git_index_find":"index","git_index_add":"index","git_index_remove":"index","git_index_insert":"index","git_index_get":"index","git_index_entrycount":"index","git_odb_open":"odb","git_odb_close":"odb","git_odb_read":"odb","git_odb_read_header":"odb","git_odb__read_packed":"odb","git_odb__read_loose":"odb","git_odb_write":"odb","git_obj_close":"obj","git_obj_type_to_string":"obj","git_obj_string_to_type":"obj","git_obj__loose_object_type":"obj","git_obj_hash":"obj","git_odb_exists":"odb","git_oid_mkstr":"oid","git_oid_mkraw":"oid","git_oid_fmt":"oid","git_oid_pathfmt":"oid","git_oid_allocfmt":"oid","git_oid_to_string":"oid","git_oid_cpy":"oid","git_oid_cmp":"oid","git_repository_open":"repository","git_repository_lookup":"repository","git_repository_database":"repository","git_repository_index":"repository","git_repository_newobject":"repository","git_object_write":"object","git_object_id":"object","git_object_type":"object","git_object_owner":"object","git_object_free":"object","git_repository_free":"repository","git_revwalk_new":"revwalk","git_revwalk_reset":"revwalk","git_revwalk_push":"revwalk","git_revwalk_hide":"revwalk","git_revwalk_next":"revwalk","git_revwalk_sorting":"revwalk","git_revwalk_free":"revwalk","git_revwalk_repository":"revwalk","git_tag_lookup":"tag","git_tag_new":"tag","git_tag_id":"tag","git_tag_target":"tag","git_tag_type":"tag","git_tag_name":"tag","git_tag_tagger":"tag","git_tag_message":"tag","git_tag_set_target":"tag","git_tag_set_name":"tag","git_tag_set_tagger":"tag","git_tag_set_message":"tag","git_tree_lookup":"tree","git_tree_new":"tree","git_tree_id":"tree","git_tree_entrycount":"tree","git_tree_entry_byname":"tree","git_tree_entry_byindex":"tree","git_tree_entry_attributes":"tree","git_tree_entry_name":"tree","git_tree_entry_id":"tree","git_tree_entry_2object":"tree","git_tree_add_entry":"tree","git_tree_remove_entry_byindex":"tree","git_tree_remove_entry_byname":"tree","git_tree_entry_set_id":"tree","git_tree_entry_set_name":"tree","git_tree_entry_set_attributes":"tree","deflateBound":"zlib","git_commit_parentcount":"commit","git_commit_parent":"commit","git_object_type2string":"object","git_object_string2type":"object","git_object_typeisloose":"object","git_odb_new":"odb","git_odb_add_backend":"odb","git_rawobj_hash":"rawobj","git_rawobj_close":"rawobj","git_repository_open2":"repository","git_commit_time_offset":"commit","git_object__size":"object","git_reference_new":"reference","git_reference_oid":"reference","git_reference_target":"reference","git_reference_type":"reference","git_reference_name":"reference","git_reference_resolve":"reference","git_reference_write":"reference","git_reference_owner":"reference","git_reference_set_name":"reference","git_reference_set_target":"reference","git_reference_set_oid":"reference","git_repository_open3":"repository","git_repository_init":"repository","git_repository_lookup_ref":"repository","git_signature_new":"signature","git_signature_dup":"signature","git_signature_free":"signature","git_tree_add_entry_unsorted":"tree","git_tree_sort_entries":"tree","git_tree_clear_entries":"tree","git_object_lookup":"object","git_object_new":"object","git_object_close":"object","git_odb_add_alternate":"odb","git_reference_lookup":"reference","git_reference_create_symbolic":"reference","git_reference_create_oid":"reference","git_reference_rename":"reference","git_reference_delete":"reference","git_reference_packall":"reference","git_oid_shorten_new":"oid","git_oid_shorten_add":"oid","git_oid_shorten_free":"oid","git_reference_listall":"reference","git_repository_close":"repository","git_tag_target_oid":"tag","git_blob_close":"blob","git_blob_create_fromfile":"blob","git_blob_create_frombuffer":"blob","git_commit_close":"commit","git_commit_create":"commit","git_commit_create_o":"commit","git_commit_create_ov":"commit","git_commit_create_v":"commit","git_odb_open_wstream":"odb","git_odb_open_rstream":"odb","git_odb_hash":"odb","git_odb_object_close":"odb","git_odb_object_id":"odb","git_odb_object_data":"odb","git_odb_object_size":"odb","git_odb_object_type":"odb","git_reference_listcb":"reference","git_tag_close":"tag","git_tag_create":"tag","git_tag_create_o":"tag","git_tree_close":"tree","git_commit_tree_oid":"commit","git_commit_parent_oid":"commit","git_lasterror":"errors","git_index_add2":"index","git_index_append":"index","git_index_append2":"index","git_reference_create_symbolic_f":"reference","git_reference_create_oid_f":"reference","git_reference_rename_f":"reference","git_repository_is_empty":"repository","git_repository_path":"repository","git_repository_workdir":"repository","git_signature_now":"signature","git_tag_create_frombuffer":"tag","git_tag_create_f":"tag","git_tag_create_fo":"tag","git_tag_delete":"tag","git_tag_list":"tag","git_tree_create_fromindex":"tree","git_treebuilder_create":"treebuilder","git_treebuilder_clear":"treebuilder","git_treebuilder_free":"treebuilder","git_treebuilder_get":"treebuilder","git_treebuilder_insert":"treebuilder","git_treebuilder_remove":"treebuilder","git_treebuilder_filter":"treebuilder","git_treebuilder_write":"treebuilder","git_blob_lookup_prefix":"blob","git_commit_lookup_prefix":"commit","git_libgit2_version":"libgit2","git_config_find_global":"config","git_config_open_global":"config","git_config_file__ondisk":"config","git_config_new":"config","git_config_add_file":"config","git_config_add_file_ondisk":"config","git_config_open_ondisk":"config","git_config_free":"config","git_config_get_int":"config","git_config_get_long":"config","git_config_get_bool":"config","git_config_get_string":"config","git_config_set_int":"config","git_config_set_long":"config","git_config_set_bool":"config","git_config_set_string":"config","git_config_foreach":"config","git_index_open":"index","git_index_entrycount_unmerged":"index","git_index_get_unmerged_bypath":"index","git_index_get_unmerged_byindex":"index","git_index_entry_stage":"index","git_object_lookup_prefix":"object","git_odb_read_prefix":"odb","git_oid_fromstr":"oid","git_oid_fromraw":"oid","git_oid_ncmp":"oid","git_reference_foreach":"reference","git_repository_discover":"repository","git_repository_is_bare":"repository","git_repository_config":"repository","git_tag_lookup_prefix":"tag","git_tree_lookup_prefix":"tree","git_tree_entry_type":"tree","git_config_delete":"config","git_clearerror":"errors","git_index_uniq":"index","git_odb_hashfile":"odb","git_oid_fromstrn":"oid","git_reflog_read":"reflog","git_reflog_write":"reflog","git_reflog_entrycount":"reflog","git_reflog_entry_byindex":"reflog","git_reflog_entry_oidold":"reflog","git_reflog_entry_oidnew":"reflog","git_reflog_entry_committer":"reflog","git_reflog_entry_msg":"reflog","git_reflog_free":"reflog","git_refspec_src":"refspec","git_refspec_dst":"refspec","git_refspec_src_match":"refspec","git_refspec_transform":"refspec","git_remote_get":"remote","git_remote_name":"remote","git_remote_url":"remote","git_remote_fetchspec":"remote","git_remote_pushspec":"remote","git_remote_connect":"remote","git_remote_ls":"remote","git_remote_free":"remote","git_repository_head_detached":"repository","git_repository_head_orphan":"repository","git_status_foreach":"status","git_status_file":"status","git_tag_create_lightweight":"tag","git_tag_list_match":"tag","git_transport_new":"transport","git_commit_message_encoding":"commit","git_config_find_system":"config","git_config_get_int32":"config","git_config_get_int64":"config","git_config_set_int32":"config","git_config_set_int64":"config","git_indexer_new":"indexer","git_indexer_run":"indexer","git_indexer_write":"indexer","git_indexer_hash":"indexer","git_indexer_free":"indexer","git_remote_new":"remote","git_remote_negotiate":"remote","git_remote_download":"remote","git_remote_update_tips":"remote","git_repository_head":"repository","git_repository_config_autoload":"repository","git_attr_get":"attr","git_attr_get_many":"attr","git_attr_foreach":"attr","git_attr_cache_flush":"attr","git_attr_add_macro":"attr","git_blob_free":"blob","git_commit_free":"commit","git_index_read_tree":"index","git_odb_free":"odb","git_odb_object_free":"odb","git_oid_streq":"oid","git_reflog_rename":"reflog","git_reflog_delete":"reflog","git_reference_is_packed":"reference","git_reference_reload":"reference","git_reference_free":"reference","git_remote_load":"remote","git_remote_connected":"remote","git_remote_disconnect":"remote","git_remote_valid_url":"remote","git_repository_set_workdir":"repository","git_repository_set_config":"repository","git_repository_odb":"repository","git_repository_set_odb":"repository","git_repository_set_index":"repository","git_status_should_ignore":"status","git_tag_free":"tag","git_threads_init":"threads","git_threads_shutdown":"threads","git_tree_free":"tree","git_tree_get_subtree":"tree","git_tree_walk":"tree","git_tree_diff":"tree","gitwin_set_codepage":"gitwin","gitwin_get_codepage":"gitwin","gitwin_set_utf8":"gitwin","git_blob_create_fromdisk":"blob","git_branch_create":"branch","git_branch_delete":"branch","git_branch_list":"branch","git_branch_move":"branch","git_config_get_multivar":"config","git_config_set_multivar":"config","git_config_get_mapped":"config","git_diff_list_free":"diff","git_diff_tree_to_tree":"diff","git_diff_index_to_tree":"diff","git_diff_workdir_to_index":"diff","git_diff_workdir_to_tree":"diff","git_diff_merge":"diff","git_diff_foreach":"diff","git_diff_print_compact":"diff","git_diff_print_patch":"diff","git_diff_blobs":"diff","giterr_last":"giterr","giterr_clear":"giterr","git_indexer_stream_new":"indexer","git_indexer_stream_add":"indexer","git_indexer_stream_finalize":"indexer","git_indexer_stream_hash":"indexer","git_indexer_stream_free":"indexer","git_merge_base":"merge","git_note_read":"note","git_note_message":"note","git_note_oid":"note","git_note_create":"note","git_note_remove":"note","git_note_free":"note","git_note_default_ref":"note","git_note_foreach":"note","git_oid_tostr":"oid","git_oid_iszero":"oid","git_reference_name_to_oid":"reference","git_reference_list":"reference","git_reference_cmp":"reference","git_refspec_src_matches":"refspec","git_remote_save":"remote","git_remote_set_fetchspec":"remote","git_remote_set_pushspec":"remote","git_remote_supported_url":"remote","git_remote_list":"remote","git_remote_add":"remote","git_repository_open_ext":"repository","git_revwalk_push_glob":"revwalk","git_revwalk_push_head":"revwalk","git_revwalk_hide_glob":"revwalk","git_revwalk_hide_head":"revwalk","git_revwalk_push_ref":"revwalk","git_revwalk_hide_ref":"revwalk","git_status_foreach_ext":"status","git_submodule_foreach":"submodule","git_submodule_lookup":"submodule","git_tag_peel":"tag","git_tree_entry_to_object":"tree","git_blob_id":"blob","git_blob_create_fromworkdir":"blob","git_blob_create_fromchunks":"blob","git_blob_is_binary":"blob","git_branch_foreach":"branch","git_branch_lookup":"branch","git_branch_name":"branch","git_branch_upstream":"branch","git_branch_set_upstream":"branch","git_branch_upstream_name":"branch","git_branch_is_head":"branch","git_branch_remote_name":"branch","git_checkout_head":"checkout","git_checkout_index":"checkout","git_checkout_tree":"checkout","git_clone":"clone","git_commit_tree_id":"commit","git_commit_parent_id":"commit","git_commit_nth_gen_ancestor":"commit","git_libgit2_capabilities":"libgit2","git_libgit2_opts":"libgit2","git_config_find_xdg":"config","git_config_open_default":"config","git_config_add_backend":"config","git_config_open_level":"config","git_config_refresh":"config","git_config_get_entry":"config","git_config_delete_entry":"config","git_config_foreach_match":"config","git_config_lookup_map_value":"config","git_config_parse_bool":"config","git_config_parse_int32":"config","git_config_parse_int64":"config","git_cred_userpass":"cred","git_diff_tree_to_index":"diff","git_diff_index_to_workdir":"diff","git_diff_tree_to_workdir":"diff","git_diff_find_similar":"diff","git_diff_status_char":"diff","git_diff_num_deltas":"diff","git_diff_num_deltas_of_type":"diff","git_diff_get_patch":"diff","git_diff_patch_free":"diff","git_diff_patch_delta":"diff","git_diff_patch_num_hunks":"diff","git_diff_patch_line_stats":"diff","git_diff_patch_get_hunk":"diff","git_diff_patch_num_lines_in_hunk":"diff","git_diff_patch_get_line_in_hunk":"diff","git_diff_patch_print":"diff","git_diff_patch_to_str":"diff","git_diff_blob_to_buffer":"diff","giterr_set_str":"giterr","giterr_set_oom":"giterr","git_graph_ahead_behind":"graph","git_ignore_add_rule":"ignore","git_ignore_clear_internal_rules":"ignore","git_ignore_path_is_ignored":"ignore","git_index_new":"index","git_index_owner":"index","git_index_caps":"index","git_index_set_caps":"index","git_index_write_tree":"index","git_index_write_tree_to":"index","git_index_get_byindex":"index","git_index_get_bypath":"index","git_index_remove_directory":"index","git_index_add_bypath":"index","git_index_remove_bypath":"index","git_index_conflict_add":"index","git_index_conflict_get":"index","git_index_conflict_remove":"index","git_index_conflict_cleanup":"index","git_index_has_conflicts":"index","git_index_reuc_entrycount":"index","git_index_reuc_find":"index","git_index_reuc_get_bypath":"index","git_index_reuc_get_byindex":"index","git_index_reuc_add":"index","git_index_reuc_remove":"index","git_index_reuc_clear":"index","git_merge_base_many":"merge","git_message_prettify":"message","git_note_iterator_new":"note","git_note_iterator_free":"note","git_note_next":"note","git_object_peel":"object","git_object_dup":"object","git_odb_add_disk_alternate":"odb","git_odb_refresh":"odb","git_odb_foreach":"odb","git_odb_write_pack":"odb","git_odb_backend_pack":"odb","git_oid_fromstrp":"oid","git_oid_equal":"oid","git_packbuilder_new":"packbuilder","git_packbuilder_set_threads":"packbuilder","git_packbuilder_insert":"packbuilder","git_packbuilder_insert_tree":"packbuilder","git_packbuilder_write":"packbuilder","git_packbuilder_foreach":"packbuilder","git_packbuilder_object_count":"packbuilder","git_packbuilder_written":"packbuilder","git_packbuilder_free":"packbuilder","git_push_new":"push","git_push_set_options":"push","git_push_add_refspec":"push","git_push_update_tips":"push","git_push_finish":"push","git_push_unpack_ok":"push","git_push_status_foreach":"push","git_push_free":"push","git_reference__alloc":"reference","git_refdb_new":"refdb","git_refdb_open":"refdb","git_refdb_compress":"refdb","git_refdb_free":"refdb","git_refdb_set_backend":"refdb","git_refdb_backend_fs":"refdb","git_reflog_append":"reflog","git_reflog_drop":"reflog","git_reflog_entry_id_old":"reflog","git_reflog_entry_id_new":"reflog","git_reflog_entry_message":"reflog","git_reference_name_to_id":"reference","git_reference_symbolic_create":"reference","git_reference_create":"reference","git_reference_symbolic_target":"reference","git_reference_symbolic_set_target":"reference","git_reference_foreach_glob":"reference","git_reference_has_log":"reference","git_reference_is_branch":"reference","git_reference_is_remote":"reference","git_reference_normalize_name":"reference","git_reference_peel":"reference","git_reference_is_valid_name":"reference","git_refspec_force":"refspec","git_refspec_dst_matches":"refspec","git_refspec_rtransform":"refspec","git_remote_create":"remote","git_remote_create_inmemory":"remote","git_remote_pushurl":"remote","git_remote_set_url":"remote","git_remote_set_pushurl":"remote","git_remote_stop":"remote","git_remote_check_cert":"remote","git_remote_set_cred_acquire_cb":"remote","git_remote_set_transport":"remote","git_remote_set_callbacks":"remote","git_remote_stats":"remote","git_remote_autotag":"remote","git_remote_set_autotag":"remote","git_remote_rename":"remote","git_remote_update_fetchhead":"remote","git_remote_set_update_fetchhead":"remote","git_remote_is_valid_name":"remote","git_repository_wrap_odb":"repository","git_repository_init_ext":"repository","git_repository_refdb":"repository","git_repository_set_refdb":"repository","git_repository_message":"repository","git_repository_message_remove":"repository","git_repository_merge_cleanup":"repository","git_repository_fetchhead_foreach":"repository","git_repository_mergehead_foreach":"repository","git_repository_hashfile":"repository","git_repository_set_head":"repository","git_repository_set_head_detached":"repository","git_repository_detach_head":"repository","git_repository_state":"repository","git_reset":"reset","git_reset_default":"reset","git_revparse_single":"revparse","git_revparse":"revparse","git_revwalk_push_range":"revwalk","git_stash_save":"stash","git_stash_foreach":"stash","git_stash_drop":"stash","git_strarray_free":"strarray","git_strarray_copy":"strarray","git_submodule_add_setup":"submodule","git_submodule_add_finalize":"submodule","git_submodule_add_to_index":"submodule","git_submodule_save":"submodule","git_submodule_owner":"submodule","git_submodule_name":"submodule","git_submodule_path":"submodule","git_submodule_url":"submodule","git_submodule_set_url":"submodule","git_submodule_index_id":"submodule","git_submodule_head_id":"submodule","git_submodule_wd_id":"submodule","git_submodule_ignore":"submodule","git_submodule_set_ignore":"submodule","git_submodule_update":"submodule","git_submodule_set_update":"submodule","git_submodule_fetch_recurse_submodules":"submodule","git_submodule_set_fetch_recurse_submodules":"submodule","git_submodule_init":"submodule","git_submodule_sync":"submodule","git_submodule_open":"submodule","git_submodule_reload":"submodule","git_submodule_reload_all":"submodule","git_submodule_status":"submodule","git_submodule_location":"submodule","git_tag_target_id":"tag","git_tag_target_type":"tag","git_tag_foreach":"tag","git_trace_set":"trace","git_cred_userpass_plaintext_new":"cred","git_transport_dummy":"transport","git_transport_local":"transport","git_transport_smart":"transport","git_smart_subtransport_http":"smart","git_smart_subtransport_git":"smart","git_tree_owner":"tree","git_tree_entry_byoid":"tree","git_tree_entry_bypath":"tree","git_tree_entry_dup":"tree","git_tree_entry_free":"tree","git_tree_entry_filemode":"tree","git_tree_entry_cmp":"tree","git_treebuilder_entrycount":"treebuilder","git_blob_owner":"blob","git_commit_owner":"commit","git_diff_print_raw":"diff","git_diff_patch_from_blobs":"diff","git_diff_patch_from_blob_and_buffer":"diff","git_index_add_all":"index","git_index_remove_all":"index","git_index_update_all":"index","git_index_conflict_iterator_new":"index","git_index_conflict_next":"index","git_index_conflict_iterator_free":"index","git_merge_head_from_ref":"merge","git_merge_head_from_fetchhead":"merge","git_merge_head_from_oid":"merge","git_merge_head_free":"merge","git_merge_trees":"merge","git_odb_num_backends":"odb","git_odb_get_backend":"odb","git_odb_backend_loose":"odb","git_odb_backend_one_pack":"odb","git_oid_nfmt":"oid","git_oid_strcmp":"oid","git_packbuilder_insert_commit":"packbuilder","git_reference_dwim":"reference","git_reference_target_peel":"reference","git_reference_iterator_new":"reference","git_reference_iterator_glob_new":"reference","git_reference_next":"reference","git_reference_iterator_free":"reference","git_reference_shorthand":"reference","git_refspec_string":"refspec","git_refspec_direction":"refspec","git_remote_add_fetch":"remote","git_remote_get_fetch_refspecs":"remote","git_remote_add_push":"remote","git_remote_get_push_refspecs":"remote","git_remote_clear_refspecs":"remote","git_remote_refspec_count":"remote","git_remote_get_refspec":"remote","git_remote_remove_refspec":"remote","git_repository_open_bare":"repository","git_repository_set_namespace":"repository","git_repository_get_namespace":"repository","git_repository_is_shallow":"repository","git_revparse_ext":"revparse","git_status_list_new":"status","git_status_list_entrycount":"status","git_status_byindex":"status","git_status_list_free":"status","git_commit_create_from_oids":"commit","git_index_name_entrycount":"index","git_index_name_get_byindex":"index","git_index_name_add":"index","git_index_name_clear":"index","git_reference__alloc_symbolic":"reference","git_repository_new":"repository","git_repository__cleanup":"repository","git_tag_owner":"tag","git_tag_annotation_create":"tag","git_cred_ssh_keyfile_passphrase_new":"cred","git_cred_ssh_publickey_new":"cred","git_smart_subtransport_ssh":"smart","git_blob_filtered_content":"blob","git_buf_free":"buf","git_buf_grow":"buf","git_buf_set":"buf","git_commit_raw_header":"commit","git_config_get_multivar_foreach":"config","git_config_multivar_iterator_new":"config","git_config_next":"config","git_config_iterator_free":"config","git_config_iterator_new":"config","git_config_iterator_glob_new":"config","git_config_backend_foreach_match":"config","git_diff_is_sorted_icase":"diff","git_diff_patch_size":"diff","git_filter_list_load":"filter","git_filter_list_apply_to_data":"filter","git_filter_list_apply_to_file":"filter","git_filter_list_apply_to_blob":"filter","git_filter_list_free":"filter","git_index_path":"index","git_odb_stream_write":"odb","git_odb_stream_finalize_write":"odb","git_odb_stream_read":"odb","git_odb_stream_free":"odb","git_pathspec_new":"pathspec","git_pathspec_free":"pathspec","git_pathspec_matches_path":"pathspec","git_pathspec_match_workdir":"pathspec","git_pathspec_match_index":"pathspec","git_pathspec_match_tree":"pathspec","git_pathspec_match_diff":"pathspec","git_pathspec_match_list_free":"pathspec","git_pathspec_match_list_entrycount":"pathspec","git_pathspec_match_list_entry":"pathspec","git_pathspec_match_list_diff_entry":"pathspec","git_pathspec_match_list_failed_entrycount":"pathspec","git_pathspec_match_list_failed_entry":"pathspec","git_reference_is_tag":"reference","git_remote_owner":"remote","git_repository_head_unborn":"repository","git_revwalk_simplify_first_parent":"revwalk","git_signature_default":"signature","git_filter_lookup":"filter","git_filter_list_new":"filter","git_filter_list_push":"filter","git_filter_list_length":"filter","git_filter_source_repo":"filter","git_filter_source_path":"filter","git_filter_source_filemode":"filter","git_filter_source_id":"filter","git_filter_source_mode":"filter","git_filter_register":"filter","git_filter_unregister":"filter","git_cred_has_username":"cred"}} \ No newline at end of file