rugged 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -0
- data/README.md +3 -3
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_commit.c +1 -1
- data/ext/rugged/rugged_config.c +1 -1
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_remote.c +32 -2
- data/ext/rugged/rugged_repo.c +13 -3
- data/lib/rugged/commit.rb +17 -4
- data/lib/rugged/repository.rb +7 -8
- data/lib/rugged/submodule_collection.rb +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +41 -74
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
- data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
- data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
- data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
- data/vendor/libgit2/deps/pcre/LICENCE +93 -0
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
- data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
- data/vendor/libgit2/deps/zlib/deflate.c +1 -0
- data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
- data/vendor/libgit2/include/git2/apply.h +2 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +95 -42
- data/vendor/libgit2/include/git2/blob.h +31 -3
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +33 -6
- data/vendor/libgit2/include/git2/config.h +1 -1
- data/vendor/libgit2/include/git2/deprecated.h +248 -8
- data/vendor/libgit2/include/git2/diff.h +35 -20
- data/vendor/libgit2/include/git2/errors.h +8 -7
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +4 -5
- data/vendor/libgit2/include/git2/indexer.h +2 -1
- data/vendor/libgit2/include/git2/odb.h +44 -20
- data/vendor/libgit2/include/git2/pack.h +1 -1
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +9 -5
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/repository.h +95 -52
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/strarray.h +6 -10
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/transport.h +1 -1
- data/vendor/libgit2/include/git2/tree.h +2 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +77 -44
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +21 -8
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/assert_safe.h +58 -0
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +92 -42
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +44 -40
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +28 -15
- data/vendor/libgit2/src/blame_git.c +6 -3
- data/vendor/libgit2/src/blob.c +46 -24
- data/vendor/libgit2/src/branch.c +87 -37
- data/vendor/libgit2/src/buffer.c +339 -27
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +3 -24
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +97 -98
- data/vendor/libgit2/src/cherrypick.c +8 -2
- data/vendor/libgit2/src/clone.c +104 -29
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +26 -2
- data/vendor/libgit2/src/config.c +40 -22
- data/vendor/libgit2/src/config_cache.c +9 -4
- data/vendor/libgit2/src/config_entries.c +35 -27
- data/vendor/libgit2/src/config_file.c +25 -8
- data/vendor/libgit2/src/config_parse.c +5 -7
- data/vendor/libgit2/src/config_snapshot.c +2 -1
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +11 -4
- data/vendor/libgit2/src/diff.c +23 -19
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +5 -7
- data/vendor/libgit2/src/diff_generate.c +56 -28
- data/vendor/libgit2/src/diff_parse.c +2 -3
- data/vendor/libgit2/src/diff_print.c +81 -65
- data/vendor/libgit2/src/diff_stats.c +19 -16
- data/vendor/libgit2/src/diff_tform.c +13 -13
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +26 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +7 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +209 -113
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +8 -8
- data/vendor/libgit2/src/futils.h +4 -4
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/idxmap.c +0 -22
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +126 -84
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +60 -36
- data/vendor/libgit2/src/integer.h +79 -2
- data/vendor/libgit2/src/iterator.c +40 -28
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +108 -46
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +15 -9
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +879 -0
- data/vendor/libgit2/src/midx.h +110 -0
- data/vendor/libgit2/src/mwindow.c +214 -95
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +133 -4
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +24 -15
- data/vendor/libgit2/src/odb.c +298 -57
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +31 -21
- data/vendor/libgit2/src/odb_mempack.c +3 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +7 -4
- data/vendor/libgit2/src/pack-objects.c +83 -69
- data/vendor/libgit2/src/pack.c +383 -150
- data/vendor/libgit2/src/pack.h +44 -9
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +3 -5
- data/vendor/libgit2/src/patch_parse.c +6 -3
- data/vendor/libgit2/src/path.c +102 -57
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +12 -11
- data/vendor/libgit2/src/pool.c +34 -22
- data/vendor/libgit2/src/pool.h +9 -1
- data/vendor/libgit2/src/posix.c +43 -12
- data/vendor/libgit2/src/posix.h +9 -0
- data/vendor/libgit2/src/proxy.c +2 -0
- data/vendor/libgit2/src/push.c +2 -0
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +95 -49
- data/vendor/libgit2/src/refdb.c +165 -13
- data/vendor/libgit2/src/refdb.h +69 -0
- data/vendor/libgit2/src/refdb_fs.c +144 -152
- data/vendor/libgit2/src/reflog.c +21 -20
- data/vendor/libgit2/src/refs.c +151 -231
- data/vendor/libgit2/src/refs.h +2 -20
- data/vendor/libgit2/src/refspec.c +80 -44
- data/vendor/libgit2/src/regexp.c +2 -2
- data/vendor/libgit2/src/remote.c +312 -121
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +351 -189
- data/vendor/libgit2/src/repository.h +23 -29
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +8 -2
- data/vendor/libgit2/src/revparse.c +19 -13
- data/vendor/libgit2/src/revwalk.c +35 -20
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.c +2 -3
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +7 -3
- data/vendor/libgit2/src/status.c +9 -4
- data/vendor/libgit2/src/strarray.c +64 -0
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +113 -207
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +10 -9
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +134 -66
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +8 -26
- data/vendor/libgit2/src/sysdir.h +0 -11
- data/vendor/libgit2/src/tag.c +49 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +21 -9
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +17 -7
- data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +84 -42
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +5 -5
- data/vendor/libgit2/src/transports/smart.c +14 -9
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +156 -88
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/posix.h +16 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +74 -183
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/git2.rc +18 -3
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +23 -25
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +77 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +37 -15
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +56 -38
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -361
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -246
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
|
@@ -212,7 +212,8 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote);
|
|
|
212
212
|
* Get the remote's url
|
|
213
213
|
*
|
|
214
214
|
* If url.*.insteadOf has been configured for this URL, it will
|
|
215
|
-
* return the modified URL.
|
|
215
|
+
* return the modified URL. If `git_remote_set_instance_pushurl`
|
|
216
|
+
* has been called for this remote, then that URL will be returned.
|
|
216
217
|
*
|
|
217
218
|
* @param remote the remote
|
|
218
219
|
* @return a pointer to the url
|
|
@@ -220,10 +221,11 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote);
|
|
|
220
221
|
GIT_EXTERN(const char *) git_remote_url(const git_remote *remote);
|
|
221
222
|
|
|
222
223
|
/**
|
|
223
|
-
* Get the remote's url for pushing
|
|
224
|
+
* Get the remote's url for pushing.
|
|
224
225
|
*
|
|
225
226
|
* If url.*.pushInsteadOf has been configured for this URL, it
|
|
226
|
-
* will return the modified URL.
|
|
227
|
+
* will return the modified URL. If `git_remote_set_instance_pushurl`
|
|
228
|
+
* has been called for this remote, then that URL will be returned.
|
|
227
229
|
*
|
|
228
230
|
* @param remote the remote
|
|
229
231
|
* @return a pointer to the url or NULL if no special url for pushing is set
|
|
@@ -253,9 +255,30 @@ GIT_EXTERN(int) git_remote_set_url(git_repository *repo, const char *remote, con
|
|
|
253
255
|
* @param repo the repository in which to perform the change
|
|
254
256
|
* @param remote the remote's name
|
|
255
257
|
* @param url the url to set
|
|
258
|
+
* @return 0, or an error code
|
|
256
259
|
*/
|
|
257
260
|
GIT_EXTERN(int) git_remote_set_pushurl(git_repository *repo, const char *remote, const char* url);
|
|
258
261
|
|
|
262
|
+
/**
|
|
263
|
+
* Set the url for this particular url instance. The URL in the
|
|
264
|
+
* configuration will be ignored, and will not be changed.
|
|
265
|
+
*
|
|
266
|
+
* @param remote the remote's name
|
|
267
|
+
* @param url the url to set
|
|
268
|
+
* @return 0 or an error value
|
|
269
|
+
*/
|
|
270
|
+
GIT_EXTERN(int) git_remote_set_instance_url(git_remote *remote, const char *url);
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Set the push url for this particular url instance. The URL in the
|
|
274
|
+
* configuration will be ignored, and will not be changed.
|
|
275
|
+
*
|
|
276
|
+
* @param remote the remote's name
|
|
277
|
+
* @param url the url to set
|
|
278
|
+
* @return 0 or an error value
|
|
279
|
+
*/
|
|
280
|
+
GIT_EXTERN(int) git_remote_set_instance_pushurl(git_remote *remote, const char *url);
|
|
281
|
+
|
|
259
282
|
/**
|
|
260
283
|
* Add a fetch refspec to the remote's configuration
|
|
261
284
|
*
|
|
@@ -476,6 +499,7 @@ typedef int GIT_CALLBACK(git_push_negotiation)(const git_push_update **updates,
|
|
|
476
499
|
*/
|
|
477
500
|
typedef int GIT_CALLBACK(git_push_update_reference_cb)(const char *refname, const char *status, void *data);
|
|
478
501
|
|
|
502
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
479
503
|
/**
|
|
480
504
|
* Callback to resolve URLs before connecting to remote
|
|
481
505
|
*
|
|
@@ -487,8 +511,22 @@ typedef int GIT_CALLBACK(git_push_update_reference_cb)(const char *refname, cons
|
|
|
487
511
|
* @param direction GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH
|
|
488
512
|
* @param payload Payload provided by the caller
|
|
489
513
|
* @return 0 on success, GIT_PASSTHROUGH or an error
|
|
514
|
+
* @deprecated Use `git_remote_set_instance_url`
|
|
490
515
|
*/
|
|
491
516
|
typedef int GIT_CALLBACK(git_url_resolve_cb)(git_buf *url_resolved, const char *url, int direction, void *payload);
|
|
517
|
+
#endif
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Callback invoked immediately before we attempt to connect to the
|
|
521
|
+
* given url. Callers may change the URL before the connection by
|
|
522
|
+
* calling `git_remote_set_instance_url` in the callback.
|
|
523
|
+
*
|
|
524
|
+
* @param remote The remote to be connected
|
|
525
|
+
* @param direction GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH
|
|
526
|
+
* @param payload Payload provided by the caller
|
|
527
|
+
* @return 0 on success, or an error
|
|
528
|
+
*/
|
|
529
|
+
typedef int GIT_CALLBACK(git_remote_ready_cb)(git_remote *remote, int direction, void *payload);
|
|
492
530
|
|
|
493
531
|
/**
|
|
494
532
|
* The callback settings structure
|
|
@@ -574,17 +612,29 @@ struct git_remote_callbacks {
|
|
|
574
612
|
*/
|
|
575
613
|
git_transport_cb transport;
|
|
576
614
|
|
|
615
|
+
/**
|
|
616
|
+
* Callback when the remote is ready to connect.
|
|
617
|
+
*/
|
|
618
|
+
git_remote_ready_cb remote_ready;
|
|
619
|
+
|
|
577
620
|
/**
|
|
578
621
|
* This will be passed to each of the callbacks in this struct
|
|
579
622
|
* as the last parameter.
|
|
580
623
|
*/
|
|
581
624
|
void *payload;
|
|
582
625
|
|
|
626
|
+
#ifdef GIT_DEPRECATE_HARD
|
|
627
|
+
void *reserved;
|
|
628
|
+
#else
|
|
583
629
|
/**
|
|
584
630
|
* Resolve URL before connecting to remote.
|
|
585
631
|
* The returned URL will be used to connect to the remote instead.
|
|
632
|
+
*
|
|
633
|
+
* This callback is deprecated; users should use
|
|
634
|
+
* git_remote_ready_cb and configure the instance URL instead.
|
|
586
635
|
*/
|
|
587
636
|
git_url_resolve_cb resolve_url;
|
|
637
|
+
#endif
|
|
588
638
|
};
|
|
589
639
|
|
|
590
640
|
#define GIT_REMOTE_CALLBACKS_VERSION 1
|
|
@@ -876,8 +926,10 @@ GIT_EXTERN(git_remote_autotag_option_t) git_remote_autotag(const git_remote *rem
|
|
|
876
926
|
* @param repo the repository in which to make the change
|
|
877
927
|
* @param remote the name of the remote
|
|
878
928
|
* @param value the new value to take.
|
|
929
|
+
* @return 0, or an error code.
|
|
879
930
|
*/
|
|
880
931
|
GIT_EXTERN(int) git_remote_set_autotag(git_repository *repo, const char *remote, git_remote_autotag_option_t value);
|
|
932
|
+
|
|
881
933
|
/**
|
|
882
934
|
* Retrieve the ref-prune setting
|
|
883
935
|
*
|
|
@@ -915,10 +967,11 @@ GIT_EXTERN(int) git_remote_rename(
|
|
|
915
967
|
/**
|
|
916
968
|
* Ensure the remote name is well-formed.
|
|
917
969
|
*
|
|
970
|
+
* @param valid output pointer to set with validity of given remote name
|
|
918
971
|
* @param remote_name name to be checked.
|
|
919
|
-
* @return
|
|
972
|
+
* @return 0 on success or an error code
|
|
920
973
|
*/
|
|
921
|
-
|
|
974
|
+
int git_remote_name_is_valid(int *valid, const char *remote_name);
|
|
922
975
|
|
|
923
976
|
/**
|
|
924
977
|
* Delete an existing persisted remote.
|
|
@@ -943,7 +996,7 @@ GIT_EXTERN(int) git_remote_delete(git_repository *repo, const char *name);
|
|
|
943
996
|
*
|
|
944
997
|
* This function must only be called after connecting.
|
|
945
998
|
*
|
|
946
|
-
* @param out the
|
|
999
|
+
* @param out the buffer in which to store the reference name
|
|
947
1000
|
* @param remote the remote
|
|
948
1001
|
* @return 0, GIT_ENOTFOUND if the remote does not have any references
|
|
949
1002
|
* or none of them point to HEAD's commit, or an error message.
|
|
@@ -219,36 +219,54 @@ GIT_EXTERN(int) git_repository_init(
|
|
|
219
219
|
*
|
|
220
220
|
* These flags configure extra behaviors to `git_repository_init_ext`.
|
|
221
221
|
* In every case, the default behavior is the zero value (i.e. flag is
|
|
222
|
-
* not set).
|
|
223
|
-
* when initializing a new repo.
|
|
224
|
-
*
|
|
225
|
-
* * BARE - Create a bare repository with no working directory.
|
|
226
|
-
* * NO_REINIT - Return an GIT_EEXISTS error if the repo_path appears to
|
|
227
|
-
* already be an git repository.
|
|
228
|
-
* * NO_DOTGIT_DIR - Normally a "/.git/" will be appended to the repo
|
|
229
|
-
* path for non-bare repos (if it is not already there), but
|
|
230
|
-
* passing this flag prevents that behavior.
|
|
231
|
-
* * MKDIR - Make the repo_path (and workdir_path) as needed. Init is
|
|
232
|
-
* always willing to create the ".git" directory even without this
|
|
233
|
-
* flag. This flag tells init to create the trailing component of
|
|
234
|
-
* the repo and workdir paths as needed.
|
|
235
|
-
* * MKPATH - Recursively make all components of the repo and workdir
|
|
236
|
-
* paths as necessary.
|
|
237
|
-
* * EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to
|
|
238
|
-
* initialize a new repo. This flags enables external templates,
|
|
239
|
-
* looking the "template_path" from the options if set, or the
|
|
240
|
-
* `init.templatedir` global config if not, or falling back on
|
|
241
|
-
* "/usr/share/git-core/templates" if it exists.
|
|
242
|
-
* * GIT_REPOSITORY_INIT_RELATIVE_GITLINK - If an alternate workdir is
|
|
243
|
-
* specified, use relative paths for the gitdir and core.worktree.
|
|
222
|
+
* not set). Just OR the flag values together for the `flags` parameter
|
|
223
|
+
* when initializing a new repo.
|
|
244
224
|
*/
|
|
245
225
|
typedef enum {
|
|
226
|
+
/**
|
|
227
|
+
* Create a bare repository with no working directory.
|
|
228
|
+
*/
|
|
246
229
|
GIT_REPOSITORY_INIT_BARE = (1u << 0),
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Return an GIT_EEXISTS error if the repo_path appears to already be
|
|
233
|
+
* an git repository.
|
|
234
|
+
*/
|
|
247
235
|
GIT_REPOSITORY_INIT_NO_REINIT = (1u << 1),
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Normally a "/.git/" will be appended to the repo path for
|
|
239
|
+
* non-bare repos (if it is not already there), but passing this flag
|
|
240
|
+
* prevents that behavior.
|
|
241
|
+
*/
|
|
248
242
|
GIT_REPOSITORY_INIT_NO_DOTGIT_DIR = (1u << 2),
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Make the repo_path (and workdir_path) as needed. Init is always willing
|
|
246
|
+
* to create the ".git" directory even without this flag. This flag tells
|
|
247
|
+
* init to create the trailing component of the repo and workdir paths
|
|
248
|
+
* as needed.
|
|
249
|
+
*/
|
|
249
250
|
GIT_REPOSITORY_INIT_MKDIR = (1u << 3),
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Recursively make all components of the repo and workdir paths as
|
|
254
|
+
* necessary.
|
|
255
|
+
*/
|
|
250
256
|
GIT_REPOSITORY_INIT_MKPATH = (1u << 4),
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* libgit2 normally uses internal templates to initialize a new repo.
|
|
260
|
+
* This flags enables external templates, looking the "template_path" from
|
|
261
|
+
* the options if set, or the `init.templatedir` global config if not,
|
|
262
|
+
* or falling back on "/usr/share/git-core/templates" if it exists.
|
|
263
|
+
*/
|
|
251
264
|
GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE = (1u << 5),
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* If an alternate workdir is specified, use relative paths for the gitdir
|
|
268
|
+
* and core.worktree.
|
|
269
|
+
*/
|
|
252
270
|
GIT_REPOSITORY_INIT_RELATIVE_GITLINK = (1u << 6),
|
|
253
271
|
} git_repository_init_flag_t;
|
|
254
272
|
|
|
@@ -257,17 +275,23 @@ typedef enum {
|
|
|
257
275
|
*
|
|
258
276
|
* Set the mode field of the `git_repository_init_options` structure
|
|
259
277
|
* either to the custom mode that you would like, or to one of the
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
* * SHARED_UMASK - Use permissions configured by umask - the default.
|
|
263
|
-
* * SHARED_GROUP - Use "--shared=group" behavior, chmod'ing the new repo
|
|
264
|
-
* to be group writable and "g+sx" for sticky group assignment.
|
|
265
|
-
* * SHARED_ALL - Use "--shared=all" behavior, adding world readability.
|
|
266
|
-
* * Anything else - Set to custom value.
|
|
278
|
+
* defined modes.
|
|
267
279
|
*/
|
|
268
280
|
typedef enum {
|
|
281
|
+
/**
|
|
282
|
+
* Use permissions configured by umask - the default.
|
|
283
|
+
*/
|
|
269
284
|
GIT_REPOSITORY_INIT_SHARED_UMASK = 0,
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Use "--shared=group" behavior, chmod'ing the new repo to be group
|
|
288
|
+
* writable and "g+sx" for sticky group assignment.
|
|
289
|
+
*/
|
|
270
290
|
GIT_REPOSITORY_INIT_SHARED_GROUP = 0002775,
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Use "--shared=all" behavior, adding world readability.
|
|
294
|
+
*/
|
|
271
295
|
GIT_REPOSITORY_INIT_SHARED_ALL = 0002777,
|
|
272
296
|
} git_repository_init_mode_t;
|
|
273
297
|
|
|
@@ -275,38 +299,57 @@ typedef enum {
|
|
|
275
299
|
* Extended options structure for `git_repository_init_ext`.
|
|
276
300
|
*
|
|
277
301
|
* This contains extra options for `git_repository_init_ext` that enable
|
|
278
|
-
* additional initialization features.
|
|
279
|
-
*
|
|
280
|
-
* * flags - Combination of GIT_REPOSITORY_INIT flags above.
|
|
281
|
-
* * mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_...
|
|
282
|
-
* constants above, or to a custom value that you would like.
|
|
283
|
-
* * workdir_path - The path to the working dir or NULL for default (i.e.
|
|
284
|
-
* repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH,
|
|
285
|
-
* IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not
|
|
286
|
-
* the "natural" working directory, a .git gitlink file will be
|
|
287
|
-
* created here linking to the repo_path.
|
|
288
|
-
* * description - If set, this will be used to initialize the "description"
|
|
289
|
-
* file in the repository, instead of using the template content.
|
|
290
|
-
* * template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set,
|
|
291
|
-
* this contains the path to use for the template directory. If
|
|
292
|
-
* this is NULL, the config or default directory options will be
|
|
293
|
-
* used instead.
|
|
294
|
-
* * initial_head - The name of the head to point HEAD at. If NULL, then
|
|
295
|
-
* this will be treated as "master" and the HEAD ref will be set
|
|
296
|
-
* to "refs/heads/master". If this begins with "refs/" it will be
|
|
297
|
-
* used verbatim; otherwise "refs/heads/" will be prefixed.
|
|
298
|
-
* * origin_url - If this is non-NULL, then after the rest of the
|
|
299
|
-
* repository initialization is completed, an "origin" remote
|
|
300
|
-
* will be added pointing to this URL.
|
|
302
|
+
* additional initialization features.
|
|
301
303
|
*/
|
|
302
304
|
typedef struct {
|
|
303
305
|
unsigned int version;
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Combination of GIT_REPOSITORY_INIT flags above.
|
|
309
|
+
*/
|
|
304
310
|
uint32_t flags;
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Set to one of the standard GIT_REPOSITORY_INIT_SHARED_... constants
|
|
314
|
+
* above, or to a custom value that you would like.
|
|
315
|
+
*/
|
|
305
316
|
uint32_t mode;
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* The path to the working dir or NULL for default (i.e. repo_path parent
|
|
320
|
+
* on non-bare repos). IF THIS IS RELATIVE PATH, IT WILL BE EVALUATED
|
|
321
|
+
* RELATIVE TO THE REPO_PATH. If this is not the "natural" working
|
|
322
|
+
* directory, a .git gitlink file will be created here linking to the
|
|
323
|
+
* repo_path.
|
|
324
|
+
*/
|
|
306
325
|
const char *workdir_path;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* If set, this will be used to initialize the "description" file in the
|
|
329
|
+
* repository, instead of using the template content.
|
|
330
|
+
*/
|
|
307
331
|
const char *description;
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set, this contains
|
|
335
|
+
* the path to use for the template directory. If this is NULL, the config
|
|
336
|
+
* or default directory options will be used instead.
|
|
337
|
+
*/
|
|
308
338
|
const char *template_path;
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* The name of the head to point HEAD at. If NULL, then this will be
|
|
342
|
+
* treated as "master" and the HEAD ref will be set to "refs/heads/master".
|
|
343
|
+
* If this begins with "refs/" it will be used verbatim;
|
|
344
|
+
* otherwise "refs/heads/" will be prefixed.
|
|
345
|
+
*/
|
|
309
346
|
const char *initial_head;
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* If this is non-NULL, then after the rest of the repository
|
|
350
|
+
* initialization is completed, an "origin" remote will be added
|
|
351
|
+
* pointing to this URL.
|
|
352
|
+
*/
|
|
310
353
|
const char *origin_url;
|
|
311
354
|
} git_repository_init_options;
|
|
312
355
|
|
|
@@ -70,12 +70,12 @@ GIT_EXTERN(int) git_revparse_ext(
|
|
|
70
70
|
*/
|
|
71
71
|
typedef enum {
|
|
72
72
|
/** The spec targeted a single object. */
|
|
73
|
-
|
|
73
|
+
GIT_REVSPEC_SINGLE = 1 << 0,
|
|
74
74
|
/** The spec targeted a range of commits. */
|
|
75
|
-
|
|
75
|
+
GIT_REVSPEC_RANGE = 1 << 1,
|
|
76
76
|
/** The spec used the '...' operator, which invokes special semantics. */
|
|
77
|
-
|
|
78
|
-
}
|
|
77
|
+
GIT_REVSPEC_MERGE_BASE = 1 << 2,
|
|
78
|
+
} git_revspec_t;
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* Git Revision Spec: output of a `git_revparse` operation
|
|
@@ -85,7 +85,7 @@ typedef struct {
|
|
|
85
85
|
git_object *from;
|
|
86
86
|
/** The right element of the revspec; must be freed by the user */
|
|
87
87
|
git_object *to;
|
|
88
|
-
/** The intent of the revspec (i.e. `
|
|
88
|
+
/** The intent of the revspec (i.e. `git_revspec_mode_t` flags) */
|
|
89
89
|
unsigned int flags;
|
|
90
90
|
} git_revspec;
|
|
91
91
|
|
|
@@ -69,89 +69,141 @@ typedef int GIT_CALLBACK(git_status_cb)(
|
|
|
69
69
|
* With `git_status_foreach_ext`, this will control which changes get
|
|
70
70
|
* callbacks. With `git_status_list_new`, these will control which
|
|
71
71
|
* changes are included in the list.
|
|
72
|
-
*
|
|
73
|
-
* - GIT_STATUS_SHOW_INDEX_AND_WORKDIR is the default. This roughly
|
|
74
|
-
* matches `git status --porcelain` regarding which files are
|
|
75
|
-
* included and in what order.
|
|
76
|
-
* - GIT_STATUS_SHOW_INDEX_ONLY only gives status based on HEAD to index
|
|
77
|
-
* comparison, not looking at working directory changes.
|
|
78
|
-
* - GIT_STATUS_SHOW_WORKDIR_ONLY only gives status based on index to
|
|
79
|
-
* working directory comparison, not comparing the index to the HEAD.
|
|
80
72
|
*/
|
|
81
73
|
typedef enum {
|
|
74
|
+
/**
|
|
75
|
+
* The default. This roughly matches `git status --porcelain` regarding
|
|
76
|
+
* which files are included and in what order.
|
|
77
|
+
*/
|
|
82
78
|
GIT_STATUS_SHOW_INDEX_AND_WORKDIR = 0,
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Only gives status based on HEAD to index comparison, not looking at
|
|
82
|
+
* working directory changes.
|
|
83
|
+
*/
|
|
83
84
|
GIT_STATUS_SHOW_INDEX_ONLY = 1,
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Only gives status based on index to working directory comparison,
|
|
88
|
+
* not comparing the index to the HEAD.
|
|
89
|
+
*/
|
|
84
90
|
GIT_STATUS_SHOW_WORKDIR_ONLY = 2,
|
|
85
91
|
} git_status_show_t;
|
|
86
92
|
|
|
87
93
|
/**
|
|
88
94
|
* Flags to control status callbacks
|
|
89
95
|
*
|
|
90
|
-
* - GIT_STATUS_OPT_INCLUDE_UNTRACKED says that callbacks should be made
|
|
91
|
-
* on untracked files. These will only be made if the workdir files are
|
|
92
|
-
* included in the status "show" option.
|
|
93
|
-
* - GIT_STATUS_OPT_INCLUDE_IGNORED says that ignored files get callbacks.
|
|
94
|
-
* Again, these callbacks will only be made if the workdir files are
|
|
95
|
-
* included in the status "show" option.
|
|
96
|
-
* - GIT_STATUS_OPT_INCLUDE_UNMODIFIED indicates that callback should be
|
|
97
|
-
* made even on unmodified files.
|
|
98
|
-
* - GIT_STATUS_OPT_EXCLUDE_SUBMODULES indicates that submodules should be
|
|
99
|
-
* skipped. This only applies if there are no pending typechanges to
|
|
100
|
-
* the submodule (either from or to another type).
|
|
101
|
-
* - GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS indicates that all files in
|
|
102
|
-
* untracked directories should be included. Normally if an entire
|
|
103
|
-
* directory is new, then just the top-level directory is included (with
|
|
104
|
-
* a trailing slash on the entry name). This flag says to include all
|
|
105
|
-
* of the individual files in the directory instead.
|
|
106
|
-
* - GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH indicates that the given path
|
|
107
|
-
* should be treated as a literal path, and not as a pathspec pattern.
|
|
108
|
-
* - GIT_STATUS_OPT_RECURSE_IGNORED_DIRS indicates that the contents of
|
|
109
|
-
* ignored directories should be included in the status. This is like
|
|
110
|
-
* doing `git ls-files -o -i --exclude-standard` with core git.
|
|
111
|
-
* - GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX indicates that rename detection
|
|
112
|
-
* should be processed between the head and the index and enables
|
|
113
|
-
* the GIT_STATUS_INDEX_RENAMED as a possible status flag.
|
|
114
|
-
* - GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR indicates that rename
|
|
115
|
-
* detection should be run between the index and the working directory
|
|
116
|
-
* and enabled GIT_STATUS_WT_RENAMED as a possible status flag.
|
|
117
|
-
* - GIT_STATUS_OPT_SORT_CASE_SENSITIVELY overrides the native case
|
|
118
|
-
* sensitivity for the file system and forces the output to be in
|
|
119
|
-
* case-sensitive order
|
|
120
|
-
* - GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY overrides the native case
|
|
121
|
-
* sensitivity for the file system and forces the output to be in
|
|
122
|
-
* case-insensitive order
|
|
123
|
-
* - GIT_STATUS_OPT_RENAMES_FROM_REWRITES indicates that rename detection
|
|
124
|
-
* should include rewritten files
|
|
125
|
-
* - GIT_STATUS_OPT_NO_REFRESH bypasses the default status behavior of
|
|
126
|
-
* doing a "soft" index reload (i.e. reloading the index data if the
|
|
127
|
-
* file on disk has been modified outside libgit2).
|
|
128
|
-
* - GIT_STATUS_OPT_UPDATE_INDEX tells libgit2 to refresh the stat cache
|
|
129
|
-
* in the index for files that are unchanged but have out of date stat
|
|
130
|
-
* information in the index. It will result in less work being done on
|
|
131
|
-
* subsequent calls to get status. This is mutually exclusive with the
|
|
132
|
-
* NO_REFRESH option.
|
|
133
|
-
*
|
|
134
96
|
* Calling `git_status_foreach()` is like calling the extended version
|
|
135
97
|
* with: GIT_STATUS_OPT_INCLUDE_IGNORED, GIT_STATUS_OPT_INCLUDE_UNTRACKED,
|
|
136
98
|
* and GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS. Those options are bundled
|
|
137
99
|
* together as `GIT_STATUS_OPT_DEFAULTS` if you want them as a baseline.
|
|
138
100
|
*/
|
|
139
101
|
typedef enum {
|
|
102
|
+
/**
|
|
103
|
+
* Says that callbacks should be made on untracked files.
|
|
104
|
+
* These will only be made if the workdir files are included in the status
|
|
105
|
+
* "show" option.
|
|
106
|
+
*/
|
|
140
107
|
GIT_STATUS_OPT_INCLUDE_UNTRACKED = (1u << 0),
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Says that ignored files get callbacks.
|
|
111
|
+
* Again, these callbacks will only be made if the workdir files are
|
|
112
|
+
* included in the status "show" option.
|
|
113
|
+
*/
|
|
141
114
|
GIT_STATUS_OPT_INCLUDE_IGNORED = (1u << 1),
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Indicates that callback should be made even on unmodified files.
|
|
118
|
+
*/
|
|
142
119
|
GIT_STATUS_OPT_INCLUDE_UNMODIFIED = (1u << 2),
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Indicates that submodules should be skipped.
|
|
123
|
+
* This only applies if there are no pending typechanges to the submodule
|
|
124
|
+
* (either from or to another type).
|
|
125
|
+
*/
|
|
143
126
|
GIT_STATUS_OPT_EXCLUDE_SUBMODULES = (1u << 3),
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Indicates that all files in untracked directories should be included.
|
|
130
|
+
* Normally if an entire directory is new, then just the top-level
|
|
131
|
+
* directory is included (with a trailing slash on the entry name).
|
|
132
|
+
* This flag says to include all of the individual files in the directory
|
|
133
|
+
* instead.
|
|
134
|
+
*/
|
|
144
135
|
GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS = (1u << 4),
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Indicates that the given path should be treated as a literal path,
|
|
139
|
+
* and not as a pathspec pattern.
|
|
140
|
+
*/
|
|
145
141
|
GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH = (1u << 5),
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Indicates that the contents of ignored directories should be included
|
|
145
|
+
* in the status. This is like doing `git ls-files -o -i --exclude-standard`
|
|
146
|
+
* with core git.
|
|
147
|
+
*/
|
|
146
148
|
GIT_STATUS_OPT_RECURSE_IGNORED_DIRS = (1u << 6),
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Indicates that rename detection should be processed between the head and
|
|
152
|
+
* the index and enables the GIT_STATUS_INDEX_RENAMED as a possible status
|
|
153
|
+
* flag.
|
|
154
|
+
*/
|
|
147
155
|
GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX = (1u << 7),
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Indicates that rename detection should be run between the index and the
|
|
159
|
+
* working directory and enabled GIT_STATUS_WT_RENAMED as a possible status
|
|
160
|
+
* flag.
|
|
161
|
+
*/
|
|
148
162
|
GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR = (1u << 8),
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Overrides the native case sensitivity for the file system and forces
|
|
166
|
+
* the output to be in case-sensitive order.
|
|
167
|
+
*/
|
|
149
168
|
GIT_STATUS_OPT_SORT_CASE_SENSITIVELY = (1u << 9),
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Overrides the native case sensitivity for the file system and forces
|
|
172
|
+
* the output to be in case-insensitive order.
|
|
173
|
+
*/
|
|
150
174
|
GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY = (1u << 10),
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Iindicates that rename detection should include rewritten files.
|
|
178
|
+
*/
|
|
151
179
|
GIT_STATUS_OPT_RENAMES_FROM_REWRITES = (1u << 11),
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Bypasses the default status behavior of doing a "soft" index reload
|
|
183
|
+
* (i.e. reloading the index data if the file on disk has been modified
|
|
184
|
+
* outside libgit2).
|
|
185
|
+
*/
|
|
152
186
|
GIT_STATUS_OPT_NO_REFRESH = (1u << 12),
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Tells libgit2 to refresh the stat cache in the index for files that are
|
|
190
|
+
* unchanged but have out of date stat einformation in the index.
|
|
191
|
+
* It will result in less work being done on subsequent calls to get status.
|
|
192
|
+
* This is mutually exclusive with the NO_REFRESH option.
|
|
193
|
+
*/
|
|
153
194
|
GIT_STATUS_OPT_UPDATE_INDEX = (1u << 13),
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Normally files that cannot be opened or read are ignored as
|
|
198
|
+
* these are often transient files; this option will return
|
|
199
|
+
* unreadable files as `GIT_STATUS_WT_UNREADABLE`.
|
|
200
|
+
*/
|
|
154
201
|
GIT_STATUS_OPT_INCLUDE_UNREADABLE = (1u << 14),
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Unreadable files will be detected and given the status
|
|
205
|
+
* untracked instead of unreadable.
|
|
206
|
+
*/
|
|
155
207
|
GIT_STATUS_OPT_INCLUDE_UNREADABLE_AS_UNTRACKED = (1u << 15),
|
|
156
208
|
} git_status_opt_t;
|
|
157
209
|
|
|
@@ -168,7 +220,10 @@ typedef enum {
|
|
|
168
220
|
*
|
|
169
221
|
*/
|
|
170
222
|
typedef struct {
|
|
171
|
-
|
|
223
|
+
/**
|
|
224
|
+
* The struct version; pass `GIT_STATUS_OPTIONS_VERSION`.
|
|
225
|
+
*/
|
|
226
|
+
unsigned int version;
|
|
172
227
|
|
|
173
228
|
/**
|
|
174
229
|
* The `show` value is one of the `git_status_show_t` constants that
|
|
@@ -177,21 +232,22 @@ typedef struct {
|
|
|
177
232
|
git_status_show_t show;
|
|
178
233
|
|
|
179
234
|
/**
|
|
180
|
-
* The `flags` value is an OR'ed combination of the
|
|
181
|
-
* values above.
|
|
235
|
+
* The `flags` value is an OR'ed combination of the
|
|
236
|
+
* `git_status_opt_t` values above.
|
|
182
237
|
*/
|
|
183
238
|
unsigned int flags;
|
|
184
239
|
|
|
185
240
|
/**
|
|
186
241
|
* The `pathspec` is an array of path patterns to match (using
|
|
187
|
-
* fnmatch-style matching), or just an array of paths to match
|
|
188
|
-
* `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified
|
|
242
|
+
* fnmatch-style matching), or just an array of paths to match
|
|
243
|
+
* exactly if `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified
|
|
244
|
+
* in the flags.
|
|
189
245
|
*/
|
|
190
246
|
git_strarray pathspec;
|
|
191
247
|
|
|
192
248
|
/**
|
|
193
|
-
* The `baseline` is the tree to be used for comparison to the
|
|
194
|
-
* and index; defaults to HEAD.
|
|
249
|
+
* The `baseline` is the tree to be used for comparison to the
|
|
250
|
+
* working directory and index; defaults to HEAD.
|
|
195
251
|
*/
|
|
196
252
|
git_tree *baseline;
|
|
197
253
|
} git_status_options;
|