rugged 1.6.3 → 1.9.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/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
#include <stdio.h>
|
9
9
|
#include <git2.h>
|
10
|
-
#include "
|
10
|
+
#include "common.h"
|
11
11
|
#include "cmd.h"
|
12
12
|
#include "error.h"
|
13
13
|
#include "sighandler.h"
|
@@ -18,15 +18,13 @@
|
|
18
18
|
|
19
19
|
#define COMMAND_NAME "clone"
|
20
20
|
|
21
|
-
static char *branch, *remote_path, *local_path;
|
22
|
-
static int
|
21
|
+
static char *branch, *remote_path, *local_path, *depth;
|
22
|
+
static int quiet, checkout = 1, bare;
|
23
23
|
static bool local_path_exists;
|
24
24
|
static cli_progress progress = CLI_PROGRESS_INIT;
|
25
25
|
|
26
26
|
static const cli_opt_spec opts[] = {
|
27
|
-
|
28
|
-
CLI_OPT_USAGE_HIDDEN | CLI_OPT_USAGE_STOP_PARSING, NULL,
|
29
|
-
"display help about the " COMMAND_NAME " command" },
|
27
|
+
CLI_COMMON_OPT,
|
30
28
|
|
31
29
|
{ CLI_OPT_TYPE_SWITCH, "quiet", 'q', &quiet, 1,
|
32
30
|
CLI_OPT_USAGE_DEFAULT, NULL, "display the type of the object" },
|
@@ -36,6 +34,8 @@ static const cli_opt_spec opts[] = {
|
|
36
34
|
CLI_OPT_USAGE_DEFAULT, NULL, "don't create a working directory" },
|
37
35
|
{ CLI_OPT_TYPE_VALUE, "branch", 'b', &branch, 0,
|
38
36
|
CLI_OPT_USAGE_DEFAULT, "name", "branch to check out" },
|
37
|
+
{ CLI_OPT_TYPE_VALUE, "depth", 0, &depth, 0,
|
38
|
+
CLI_OPT_USAGE_DEFAULT, "depth", "commit depth to check out " },
|
39
39
|
{ CLI_OPT_TYPE_LITERAL },
|
40
40
|
{ CLI_OPT_TYPE_ARG, "repository", 0, &remote_path, 0,
|
41
41
|
CLI_OPT_USAGE_REQUIRED, "repository", "repository path" },
|
@@ -46,7 +46,7 @@ static const cli_opt_spec opts[] = {
|
|
46
46
|
|
47
47
|
static void print_help(void)
|
48
48
|
{
|
49
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts);
|
49
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
50
50
|
printf("\n");
|
51
51
|
|
52
52
|
printf("Clone a repository into a new directory.\n");
|
@@ -71,6 +71,22 @@ static char *compute_local_path(const char *orig_path)
|
|
71
71
|
return local_path;
|
72
72
|
}
|
73
73
|
|
74
|
+
static int compute_depth(const char *depth)
|
75
|
+
{
|
76
|
+
int64_t i;
|
77
|
+
const char *endptr;
|
78
|
+
|
79
|
+
if (!depth)
|
80
|
+
return 0;
|
81
|
+
|
82
|
+
if (git__strntol64(&i, depth, strlen(depth), &endptr, 10) < 0 || i < 0 || i > INT_MAX || *endptr) {
|
83
|
+
fprintf(stderr, "fatal: depth '%s' is not valid.\n", depth);
|
84
|
+
exit(128);
|
85
|
+
}
|
86
|
+
|
87
|
+
return (int)i;
|
88
|
+
}
|
89
|
+
|
74
90
|
static bool validate_local_path(const char *path)
|
75
91
|
{
|
76
92
|
if (!git_fs_path_exists(path))
|
@@ -117,7 +133,7 @@ int cmd_clone(int argc, char **argv)
|
|
117
133
|
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
118
134
|
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
119
135
|
|
120
|
-
if (
|
136
|
+
if (cli_opt__show_help) {
|
121
137
|
print_help();
|
122
138
|
return 0;
|
123
139
|
}
|
@@ -127,11 +143,9 @@ int cmd_clone(int argc, char **argv)
|
|
127
143
|
goto done;
|
128
144
|
}
|
129
145
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
if (branch)
|
134
|
-
clone_opts.checkout_branch = branch;
|
146
|
+
clone_opts.bare = !!bare;
|
147
|
+
clone_opts.checkout_branch = branch;
|
148
|
+
clone_opts.fetch_opts.depth = compute_depth(depth);
|
135
149
|
|
136
150
|
if (!checkout)
|
137
151
|
clone_opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_NONE;
|
@@ -0,0 +1,241 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#include <git2.h>
|
9
|
+
|
10
|
+
#include "common.h"
|
11
|
+
#include "cmd.h"
|
12
|
+
|
13
|
+
#define COMMAND_NAME "config"
|
14
|
+
|
15
|
+
typedef enum {
|
16
|
+
ACTION_NONE = 0,
|
17
|
+
ACTION_GET,
|
18
|
+
ACTION_ADD,
|
19
|
+
ACTION_REPLACE_ALL,
|
20
|
+
ACTION_LIST
|
21
|
+
} action_t;
|
22
|
+
|
23
|
+
static action_t action = ACTION_NONE;
|
24
|
+
static int show_origin;
|
25
|
+
static int show_scope;
|
26
|
+
static int null_separator;
|
27
|
+
static int config_level;
|
28
|
+
static char *config_filename;
|
29
|
+
static char *name, *value, *value_pattern;
|
30
|
+
|
31
|
+
static const cli_opt_spec opts[] = {
|
32
|
+
CLI_COMMON_OPT, \
|
33
|
+
|
34
|
+
{ CLI_OPT_TYPE_SWITCH, "null", 'z', &null_separator, 1,
|
35
|
+
0, NULL, "use NUL as a separator" },
|
36
|
+
|
37
|
+
{ CLI_OPT_TYPE_SWITCH, "system", 0, &config_level, GIT_CONFIG_LEVEL_SYSTEM,
|
38
|
+
0, NULL, "read/write to system configuration" },
|
39
|
+
{ CLI_OPT_TYPE_SWITCH, "global", 0, &config_level, GIT_CONFIG_LEVEL_GLOBAL,
|
40
|
+
CLI_OPT_USAGE_CHOICE, NULL, "read/write to global configuration" },
|
41
|
+
{ CLI_OPT_TYPE_SWITCH, "local", 0, &config_level, GIT_CONFIG_LEVEL_LOCAL,
|
42
|
+
CLI_OPT_USAGE_CHOICE, NULL, "read/write to local configuration" },
|
43
|
+
{ CLI_OPT_TYPE_VALUE, "file", 0, &config_filename, 0,
|
44
|
+
CLI_OPT_USAGE_CHOICE, "filename", "read/write to specified configuration file" },
|
45
|
+
|
46
|
+
{ CLI_OPT_TYPE_SWITCH, "get", 0, &action, ACTION_GET,
|
47
|
+
CLI_OPT_USAGE_REQUIRED, NULL, "get a configuration value" },
|
48
|
+
{ CLI_OPT_TYPE_SWITCH, "add", 0, &action, ACTION_ADD,
|
49
|
+
CLI_OPT_USAGE_CHOICE, NULL, "add a configuration value" },
|
50
|
+
{ CLI_OPT_TYPE_SWITCH, "replace-all", 0, &action, ACTION_REPLACE_ALL,
|
51
|
+
CLI_OPT_USAGE_CHOICE, NULL, "add a configuration value, replacing any old values" },
|
52
|
+
{ CLI_OPT_TYPE_SWITCH, "list", 'l', &action, ACTION_LIST,
|
53
|
+
CLI_OPT_USAGE_CHOICE | CLI_OPT_USAGE_SHOW_LONG,
|
54
|
+
NULL, "list all configuration entries" },
|
55
|
+
{ CLI_OPT_TYPE_SWITCH, "show-origin", 0, &show_origin, 1,
|
56
|
+
0, NULL, "show origin of configuration" },
|
57
|
+
{ CLI_OPT_TYPE_SWITCH, "show-scope", 0, &show_scope, 1,
|
58
|
+
0, NULL, "show scope of configuration" },
|
59
|
+
{ CLI_OPT_TYPE_ARG, "name", 0, &name, 0,
|
60
|
+
0, "name", "name of configuration entry" },
|
61
|
+
{ CLI_OPT_TYPE_ARG, "value", 0, &value, 0,
|
62
|
+
0, "value", "value of configuration entry" },
|
63
|
+
{ CLI_OPT_TYPE_ARG, "regexp", 0, &value_pattern, 0,
|
64
|
+
0, "regexp", "regular expression of values to replace" },
|
65
|
+
{ 0 },
|
66
|
+
};
|
67
|
+
|
68
|
+
static void print_help(void)
|
69
|
+
{
|
70
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
71
|
+
printf("\n");
|
72
|
+
|
73
|
+
printf("Query and set configuration options.\n");
|
74
|
+
printf("\n");
|
75
|
+
|
76
|
+
printf("Options:\n");
|
77
|
+
|
78
|
+
cli_opt_help_fprint(stdout, opts);
|
79
|
+
}
|
80
|
+
|
81
|
+
static int get_config(git_config *config)
|
82
|
+
{
|
83
|
+
git_buf value = GIT_BUF_INIT;
|
84
|
+
char sep = null_separator ? '\0' : '\n';
|
85
|
+
int error;
|
86
|
+
|
87
|
+
error = git_config_get_string_buf(&value, config, name);
|
88
|
+
|
89
|
+
if (error && error != GIT_ENOTFOUND)
|
90
|
+
return cli_error_git();
|
91
|
+
|
92
|
+
else if (error == GIT_ENOTFOUND)
|
93
|
+
return 1;
|
94
|
+
|
95
|
+
printf("%s%c", value.ptr, sep);
|
96
|
+
return 0;
|
97
|
+
}
|
98
|
+
|
99
|
+
static int add_config(git_config *config)
|
100
|
+
{
|
101
|
+
if (git_config_set_multivar(config, name, "$^", value) < 0)
|
102
|
+
return cli_error_git();
|
103
|
+
|
104
|
+
return 0;
|
105
|
+
}
|
106
|
+
|
107
|
+
static int replace_all_config(git_config *config)
|
108
|
+
{
|
109
|
+
if (git_config_set_multivar(config, name, value_pattern ? value_pattern : ".*", value) < 0)
|
110
|
+
return cli_error_git();
|
111
|
+
|
112
|
+
return 0;
|
113
|
+
}
|
114
|
+
|
115
|
+
static const char *level_name(git_config_level_t level)
|
116
|
+
{
|
117
|
+
switch (level) {
|
118
|
+
case GIT_CONFIG_LEVEL_PROGRAMDATA:
|
119
|
+
return "programdata";
|
120
|
+
case GIT_CONFIG_LEVEL_SYSTEM:
|
121
|
+
return "system";
|
122
|
+
case GIT_CONFIG_LEVEL_XDG:
|
123
|
+
return "global";
|
124
|
+
case GIT_CONFIG_LEVEL_GLOBAL:
|
125
|
+
return "global";
|
126
|
+
case GIT_CONFIG_LEVEL_LOCAL:
|
127
|
+
return "local";
|
128
|
+
case GIT_CONFIG_LEVEL_APP:
|
129
|
+
return "command";
|
130
|
+
default:
|
131
|
+
return "unknown";
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
static int list_config(git_config *config)
|
136
|
+
{
|
137
|
+
git_config_iterator *iterator;
|
138
|
+
git_config_entry *entry;
|
139
|
+
char data_separator = null_separator ? '\0' : '\t';
|
140
|
+
char kv_separator = null_separator ? '\n' : '=';
|
141
|
+
char entry_separator = null_separator ? '\0' : '\n';
|
142
|
+
int error;
|
143
|
+
|
144
|
+
if (git_config_iterator_new(&iterator, config) < 0)
|
145
|
+
return cli_error_git();
|
146
|
+
|
147
|
+
while ((error = git_config_next(&entry, iterator)) == 0) {
|
148
|
+
if (show_scope)
|
149
|
+
printf("%s%c",
|
150
|
+
level_name(entry->level),
|
151
|
+
data_separator);
|
152
|
+
|
153
|
+
if (show_origin)
|
154
|
+
printf("%s%s%s%c",
|
155
|
+
entry->backend_type ? entry->backend_type : "",
|
156
|
+
entry->backend_type && entry->origin_path ? ":" : "",
|
157
|
+
entry->origin_path ? entry->origin_path : "",
|
158
|
+
data_separator);
|
159
|
+
|
160
|
+
printf("%s%c%s%c", entry->name, kv_separator, entry->value,
|
161
|
+
entry_separator);
|
162
|
+
}
|
163
|
+
|
164
|
+
if (error != GIT_ITEROVER)
|
165
|
+
return cli_error_git();
|
166
|
+
|
167
|
+
git_config_iterator_free(iterator);
|
168
|
+
return 0;
|
169
|
+
}
|
170
|
+
|
171
|
+
int cmd_config(int argc, char **argv)
|
172
|
+
{
|
173
|
+
git_repository *repo = NULL;
|
174
|
+
git_config *config = NULL;
|
175
|
+
cli_repository_open_options open_opts = { argv + 1, argc - 1};
|
176
|
+
cli_opt invalid_opt;
|
177
|
+
int ret = 0;
|
178
|
+
|
179
|
+
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
180
|
+
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
181
|
+
|
182
|
+
if (cli_opt__show_help) {
|
183
|
+
print_help();
|
184
|
+
return 0;
|
185
|
+
}
|
186
|
+
|
187
|
+
if (config_filename) {
|
188
|
+
if (git_config_new(&config) < 0 ||
|
189
|
+
git_config_add_file_ondisk(config, config_filename,
|
190
|
+
GIT_CONFIG_LEVEL_APP, NULL, 0) < 0) {
|
191
|
+
ret = cli_error_git();
|
192
|
+
goto done;
|
193
|
+
}
|
194
|
+
} else {
|
195
|
+
if (cli_repository_open(&repo, &open_opts) < 0 ||
|
196
|
+
git_repository_config(&config, repo) < 0) {
|
197
|
+
ret = cli_error_git();
|
198
|
+
goto done;
|
199
|
+
}
|
200
|
+
|
201
|
+
if (config_level &&
|
202
|
+
git_config_open_level(&config, config, config_level) < 0) {
|
203
|
+
ret = cli_error_git();
|
204
|
+
goto done;
|
205
|
+
}
|
206
|
+
}
|
207
|
+
|
208
|
+
switch (action) {
|
209
|
+
case ACTION_ADD:
|
210
|
+
if (!name || !value || value_pattern)
|
211
|
+
ret = cli_error_usage("%s --add requires two arguments", COMMAND_NAME);
|
212
|
+
else
|
213
|
+
ret = add_config(config);
|
214
|
+
break;
|
215
|
+
case ACTION_REPLACE_ALL:
|
216
|
+
if (!name || !value)
|
217
|
+
ret = cli_error_usage("%s --replace-all requires two or three arguments", COMMAND_NAME);
|
218
|
+
else
|
219
|
+
ret = replace_all_config(config);
|
220
|
+
break;
|
221
|
+
case ACTION_GET:
|
222
|
+
if (!name)
|
223
|
+
ret = cli_error_usage("%s --get requires an argument", COMMAND_NAME);
|
224
|
+
else
|
225
|
+
ret = get_config(config);
|
226
|
+
break;
|
227
|
+
case ACTION_LIST:
|
228
|
+
if (name)
|
229
|
+
ret = cli_error_usage("%s --list does not take an argument", COMMAND_NAME);
|
230
|
+
else
|
231
|
+
ret = list_config(config);
|
232
|
+
break;
|
233
|
+
default:
|
234
|
+
ret = cli_error_usage("unknown action");
|
235
|
+
}
|
236
|
+
|
237
|
+
done:
|
238
|
+
git_config_free(config);
|
239
|
+
git_repository_free(repo);
|
240
|
+
return ret;
|
241
|
+
}
|
@@ -6,22 +6,19 @@
|
|
6
6
|
*/
|
7
7
|
|
8
8
|
#include <git2.h>
|
9
|
-
#include "
|
9
|
+
#include "common.h"
|
10
10
|
#include "cmd.h"
|
11
11
|
|
12
12
|
#include "futils.h"
|
13
13
|
|
14
14
|
#define COMMAND_NAME "hash-object"
|
15
15
|
|
16
|
-
static int show_help;
|
17
16
|
static char *type_name;
|
18
17
|
static int write_object, read_stdin, literally;
|
19
18
|
static char **filenames;
|
20
19
|
|
21
20
|
static const cli_opt_spec opts[] = {
|
22
|
-
|
23
|
-
CLI_OPT_USAGE_HIDDEN | CLI_OPT_USAGE_STOP_PARSING, NULL,
|
24
|
-
"display help about the " COMMAND_NAME " command" },
|
21
|
+
CLI_COMMON_OPT,
|
25
22
|
|
26
23
|
{ CLI_OPT_TYPE_VALUE, NULL, 't', &type_name, 0,
|
27
24
|
CLI_OPT_USAGE_DEFAULT, "type", "the type of object to hash (default: \"blob\")" },
|
@@ -38,7 +35,7 @@ static const cli_opt_spec opts[] = {
|
|
38
35
|
|
39
36
|
static void print_help(void)
|
40
37
|
{
|
41
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts);
|
38
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
42
39
|
printf("\n");
|
43
40
|
|
44
41
|
printf("Compute the object ID for a given file and optionally write that file\nto the object database.\n");
|
@@ -92,6 +89,7 @@ static int hash_buf(
|
|
92
89
|
|
93
90
|
int cmd_hash_object(int argc, char **argv)
|
94
91
|
{
|
92
|
+
cli_repository_open_options open_opts = { argv + 1, argc - 1};
|
95
93
|
git_repository *repo = NULL;
|
96
94
|
git_odb *odb = NULL;
|
97
95
|
git_oid_t oid_type;
|
@@ -104,7 +102,7 @@ int cmd_hash_object(int argc, char **argv)
|
|
104
102
|
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
105
103
|
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
106
104
|
|
107
|
-
if (
|
105
|
+
if (cli_opt__show_help) {
|
108
106
|
print_help();
|
109
107
|
return 0;
|
110
108
|
}
|
@@ -113,7 +111,7 @@ int cmd_hash_object(int argc, char **argv)
|
|
113
111
|
return cli_error_usage("invalid object type '%s'", type_name);
|
114
112
|
|
115
113
|
if (write_object &&
|
116
|
-
(
|
114
|
+
(cli_repository_open(&repo, &open_opts) < 0 ||
|
117
115
|
git_repository_odb(&odb, repo) < 0)) {
|
118
116
|
ret = cli_error_git();
|
119
117
|
goto done;
|
@@ -7,17 +7,16 @@
|
|
7
7
|
|
8
8
|
#include <stdio.h>
|
9
9
|
#include <git2.h>
|
10
|
-
#include "
|
10
|
+
#include "common.h"
|
11
11
|
#include "cmd.h"
|
12
12
|
|
13
13
|
#define COMMAND_NAME "help"
|
14
14
|
|
15
15
|
static char *command;
|
16
|
-
static int show_help;
|
17
16
|
|
18
17
|
static const cli_opt_spec opts[] = {
|
19
|
-
|
20
|
-
|
18
|
+
CLI_COMMON_OPT,
|
19
|
+
|
21
20
|
{ CLI_OPT_TYPE_ARG, "command", 0, &command, 0,
|
22
21
|
CLI_OPT_USAGE_DEFAULT, "command", "the command to show help for" },
|
23
22
|
{ 0 },
|
@@ -25,7 +24,7 @@ static const cli_opt_spec opts[] = {
|
|
25
24
|
|
26
25
|
static int print_help(void)
|
27
26
|
{
|
28
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts);
|
27
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, CLI_OPT_USAGE_SHOW_HIDDEN);
|
29
28
|
printf("\n");
|
30
29
|
|
31
30
|
printf("Display help information about %s. If a command is specified, help\n", PROGRAM_NAME);
|
@@ -39,7 +38,7 @@ static int print_commands(void)
|
|
39
38
|
{
|
40
39
|
const cli_cmd_spec *cmd;
|
41
40
|
|
42
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, NULL, cli_common_opts);
|
41
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, NULL, cli_common_opts, CLI_OPT_USAGE_SHOW_HIDDEN);
|
43
42
|
printf("\n");
|
44
43
|
|
45
44
|
printf("These are the %s commands available:\n\n", PROGRAM_NAME);
|
@@ -62,7 +61,7 @@ int cmd_help(int argc, char **argv)
|
|
62
61
|
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
63
62
|
|
64
63
|
/* Show the meta-help */
|
65
|
-
if (
|
64
|
+
if (cli_opt__show_help)
|
66
65
|
return print_help();
|
67
66
|
|
68
67
|
/* We were not asked to show help for a specific command. */
|
@@ -0,0 +1,114 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#include <git2.h>
|
9
|
+
#include "common.h"
|
10
|
+
#include "cmd.h"
|
11
|
+
#include "progress.h"
|
12
|
+
|
13
|
+
#define COMMAND_NAME "index-pack"
|
14
|
+
|
15
|
+
#define BUFFER_SIZE (1024 * 1024)
|
16
|
+
|
17
|
+
static int verbose, read_stdin;
|
18
|
+
static char *filename;
|
19
|
+
static cli_progress progress = CLI_PROGRESS_INIT;
|
20
|
+
|
21
|
+
static const cli_opt_spec opts[] = {
|
22
|
+
CLI_COMMON_OPT,
|
23
|
+
|
24
|
+
{ CLI_OPT_TYPE_SWITCH, "verbose", 'v', &verbose, 1,
|
25
|
+
CLI_OPT_USAGE_DEFAULT, NULL, "display progress output" },
|
26
|
+
|
27
|
+
{ CLI_OPT_TYPE_LITERAL },
|
28
|
+
|
29
|
+
{ CLI_OPT_TYPE_SWITCH, "stdin", 0, &read_stdin, 1,
|
30
|
+
CLI_OPT_USAGE_REQUIRED, NULL, "read from stdin" },
|
31
|
+
{ CLI_OPT_TYPE_ARG, "pack-file", 0, &filename, 0,
|
32
|
+
CLI_OPT_USAGE_CHOICE, "pack-file", "packfile path" },
|
33
|
+
|
34
|
+
{ 0 },
|
35
|
+
};
|
36
|
+
|
37
|
+
static void print_help(void)
|
38
|
+
{
|
39
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
40
|
+
printf("\n");
|
41
|
+
|
42
|
+
printf("Indexes a packfile and writes the index to disk.\n");
|
43
|
+
printf("\n");
|
44
|
+
|
45
|
+
printf("Options:\n");
|
46
|
+
|
47
|
+
cli_opt_help_fprint(stdout, opts);
|
48
|
+
}
|
49
|
+
|
50
|
+
int cmd_index_pack(int argc, char **argv)
|
51
|
+
{
|
52
|
+
cli_opt invalid_opt;
|
53
|
+
git_indexer *idx = NULL;
|
54
|
+
git_indexer_options idx_opts = GIT_INDEXER_OPTIONS_INIT;
|
55
|
+
git_indexer_progress stats = {0};
|
56
|
+
char buf[BUFFER_SIZE];
|
57
|
+
ssize_t read_len;
|
58
|
+
int fd, ret;
|
59
|
+
|
60
|
+
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
61
|
+
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
62
|
+
|
63
|
+
if (cli_opt__show_help) {
|
64
|
+
print_help();
|
65
|
+
return 0;
|
66
|
+
}
|
67
|
+
|
68
|
+
if (verbose) {
|
69
|
+
idx_opts.progress_cb = cli_progress_indexer;
|
70
|
+
idx_opts.progress_cb_payload = &progress;
|
71
|
+
}
|
72
|
+
|
73
|
+
if (read_stdin) {
|
74
|
+
fd = fileno(stdin);
|
75
|
+
} else if ((fd = p_open(filename, O_RDONLY)) < 0) {
|
76
|
+
ret = cli_error_git();
|
77
|
+
goto done;
|
78
|
+
}
|
79
|
+
|
80
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
81
|
+
idx_opts.oid_type = GIT_OID_SHA1;
|
82
|
+
|
83
|
+
ret = git_indexer_new(&idx, ".", &idx_opts);
|
84
|
+
#else
|
85
|
+
ret = git_indexer_new(&idx, ".", 0, NULL, &idx_opts);
|
86
|
+
#endif
|
87
|
+
|
88
|
+
if (ret < 0) {
|
89
|
+
ret = cli_error_git();
|
90
|
+
goto done;
|
91
|
+
}
|
92
|
+
|
93
|
+
while ((read_len = p_read(fd, buf, sizeof(buf))) > 0) {
|
94
|
+
if (git_indexer_append(idx, buf, (size_t)read_len, &stats) < 0) {
|
95
|
+
ret = cli_error_git();
|
96
|
+
goto done;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
if (git_indexer_commit(idx, &stats) < 0) {
|
101
|
+
ret = cli_error_git();
|
102
|
+
goto done;
|
103
|
+
}
|
104
|
+
|
105
|
+
cli_progress_finish(&progress);
|
106
|
+
|
107
|
+
done:
|
108
|
+
if (!read_stdin && fd >= 0)
|
109
|
+
p_close(fd);
|
110
|
+
|
111
|
+
cli_progress_dispose(&progress);
|
112
|
+
git_indexer_free(idx);
|
113
|
+
return ret;
|
114
|
+
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#include <stdio.h>
|
9
|
+
#include <git2.h>
|
10
|
+
#include "common.h"
|
11
|
+
#include "cmd.h"
|
12
|
+
#include "error.h"
|
13
|
+
#include "sighandler.h"
|
14
|
+
#include "progress.h"
|
15
|
+
|
16
|
+
#include "fs_path.h"
|
17
|
+
#include "futils.h"
|
18
|
+
|
19
|
+
#define COMMAND_NAME "init"
|
20
|
+
|
21
|
+
static char *branch, *git_dir, *template_dir, *path;
|
22
|
+
static int quiet, bare;
|
23
|
+
|
24
|
+
static const cli_opt_spec opts[] = {
|
25
|
+
CLI_COMMON_OPT,
|
26
|
+
|
27
|
+
{ CLI_OPT_TYPE_SWITCH, "quiet", 'q', &quiet, 1,
|
28
|
+
CLI_OPT_USAGE_DEFAULT, NULL, "quiet mode; don't display informational messages" },
|
29
|
+
{ CLI_OPT_TYPE_SWITCH, "bare", 0, &bare, 1,
|
30
|
+
CLI_OPT_USAGE_DEFAULT, NULL, "don't create a working directory" },
|
31
|
+
{ CLI_OPT_TYPE_VALUE, "initial-branch", 'b', &branch, 0,
|
32
|
+
CLI_OPT_USAGE_DEFAULT, "name", "initial branch name" },
|
33
|
+
{ CLI_OPT_TYPE_VALUE, "separate-git-dir", 0, &git_dir, 0,
|
34
|
+
CLI_OPT_USAGE_DEFAULT, "git-dir", "path to separate git directory" },
|
35
|
+
{ CLI_OPT_TYPE_VALUE, "template", 0, &template_dir, 0,
|
36
|
+
CLI_OPT_USAGE_DEFAULT, "template-dir", "path to git directory templates" },
|
37
|
+
{ CLI_OPT_TYPE_LITERAL },
|
38
|
+
{ CLI_OPT_TYPE_ARG, "directory", 0, &path, 0,
|
39
|
+
CLI_OPT_USAGE_DEFAULT, "directory", "directory to create repository in" },
|
40
|
+
{ 0 }
|
41
|
+
};
|
42
|
+
|
43
|
+
static void print_help(void)
|
44
|
+
{
|
45
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
46
|
+
printf("\n");
|
47
|
+
|
48
|
+
printf("Create a new git repository.\n");
|
49
|
+
printf("\n");
|
50
|
+
|
51
|
+
printf("Options:\n");
|
52
|
+
|
53
|
+
cli_opt_help_fprint(stdout, opts);
|
54
|
+
}
|
55
|
+
|
56
|
+
int cmd_init(int argc, char **argv)
|
57
|
+
{
|
58
|
+
git_repository *repo = NULL;
|
59
|
+
git_repository_init_options init_opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
60
|
+
cli_opt invalid_opt;
|
61
|
+
const char *repo_path;
|
62
|
+
int ret = 0;
|
63
|
+
|
64
|
+
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
65
|
+
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
66
|
+
|
67
|
+
if (cli_opt__show_help) {
|
68
|
+
print_help();
|
69
|
+
return 0;
|
70
|
+
}
|
71
|
+
|
72
|
+
init_opts.flags |= GIT_REPOSITORY_INIT_MKPATH |
|
73
|
+
GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE;
|
74
|
+
|
75
|
+
if (bare && git_dir)
|
76
|
+
return cli_error_usage("the '--bare' and '--separate-git-dir' options cannot be used together");
|
77
|
+
|
78
|
+
if (bare)
|
79
|
+
init_opts.flags |= GIT_REPOSITORY_INIT_BARE;
|
80
|
+
|
81
|
+
init_opts.template_path = template_dir;
|
82
|
+
init_opts.initial_head = branch;
|
83
|
+
|
84
|
+
if (git_dir) {
|
85
|
+
init_opts.flags |= GIT_REPOSITORY_INIT_NO_DOTGIT_DIR;
|
86
|
+
init_opts.workdir_path = path;
|
87
|
+
|
88
|
+
repo_path = git_dir;
|
89
|
+
} else {
|
90
|
+
repo_path = path;
|
91
|
+
}
|
92
|
+
|
93
|
+
if (git_repository_init_ext(&repo, repo_path, &init_opts) < 0) {
|
94
|
+
ret = cli_error_git();
|
95
|
+
} else if (!quiet) {
|
96
|
+
printf("Initialized empty Git repository in %s\n",
|
97
|
+
git_repository_path(repo));
|
98
|
+
}
|
99
|
+
|
100
|
+
git_repository_free(repo);
|
101
|
+
return ret;
|
102
|
+
}
|