rugged 1.7.2 → 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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +23 -10
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
- data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- 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/xdiff/xmerge.c +2 -2
- 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 +120 -63
- 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 +38 -8
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +46 -73
- 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 +99 -14
- 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 +23 -24
- 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 +94 -18
- data/vendor/libgit2/include/git2/repository.h +57 -21
- 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 -0
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
- 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 +43 -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 +11 -2
- data/vendor/libgit2/include/git2/sys/transport.h +24 -3
- 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 +16 -6
- data/vendor/libgit2/src/CMakeLists.txt +6 -4
- 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 +5 -7
- 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 +51 -2
- data/vendor/libgit2/src/cli/progress.h +12 -0
- 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 +26 -8
- data/vendor/libgit2/src/libgit2/apply.c +10 -13
- 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 +130 -44
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- 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 +1 -2
- data/vendor/libgit2/src/libgit2/clone.c +186 -166
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +92 -0
- data/vendor/libgit2/src/libgit2/commit_graph.c +67 -56
- data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
- data/vendor/libgit2/src/libgit2/config.c +389 -298
- 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 +99 -88
- 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 +24 -24
- data/vendor/libgit2/src/libgit2/diff.c +1 -1
- 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_generate.c +3 -3
- data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
- data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
- data/vendor/libgit2/src/libgit2/email.c +1 -0
- data/vendor/libgit2/src/libgit2/fetch.c +5 -3
- 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 +18 -20
- data/vendor/libgit2/src/libgit2/grafts.h +0 -1
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +68 -90
- data/vendor/libgit2/src/libgit2/index.h +2 -2
- 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 +34 -38
- data/vendor/libgit2/src/libgit2/iterator.c +14 -8
- data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +42 -37
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/midx.c +28 -15
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/object.c +6 -5
- data/vendor/libgit2/src/libgit2/odb.c +5 -4
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
- data/vendor/libgit2/src/libgit2/oid.c +32 -5
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/pack-objects.c +58 -31
- data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
- data/vendor/libgit2/src/libgit2/pack.c +30 -24
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
- 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 +79 -28
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
- 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 +26 -7
- 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 +121 -61
- data/vendor/libgit2/src/libgit2/repository.c +231 -51
- data/vendor/libgit2/src/libgit2/repository.h +10 -6
- data/vendor/libgit2/src/libgit2/revert.c +1 -2
- data/vendor/libgit2/src/libgit2/revparse.c +2 -2
- data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
- 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/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
- data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
- 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/stransport.c +39 -7
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +6 -7
- 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/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +112 -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 +8 -7
- data/vendor/libgit2/src/libgit2/transports/smart.c +20 -8
- data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +2 -2
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
- 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 +35 -7
- data/vendor/libgit2/src/libgit2/tree.c +34 -26
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +14 -17
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +4 -1
- 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/stdalloc.c +0 -10
- data/vendor/libgit2/src/util/array.h +18 -17
- data/vendor/libgit2/src/util/cc-compat.h +2 -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/fs_path.c +15 -4
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +6 -5
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +12 -1
- 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 +13 -7
- data/vendor/libgit2/src/util/net.h +2 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -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 +1 -7
- 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/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 +2 -2
- data/vendor/libgit2/src/util/util.h +4 -38
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- metadata +45 -28
- 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 -293
- 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/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 -97
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
- 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
|
@@ -7,23 +7,31 @@
|
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
|
8
8
|
#define INCLUDE_git_version_h__
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @file git2/version.h
|
|
12
|
+
* @brief The version of libgit2
|
|
13
|
+
* @ingroup Git
|
|
14
|
+
* @{
|
|
15
|
+
*/
|
|
16
|
+
GIT_BEGIN_DECL
|
|
17
|
+
|
|
10
18
|
/**
|
|
11
19
|
* The version string for libgit2. This string follows semantic
|
|
12
20
|
* versioning (v2) guidelines.
|
|
13
21
|
*/
|
|
14
|
-
#define LIBGIT2_VERSION
|
|
22
|
+
#define LIBGIT2_VERSION "1.9.0"
|
|
15
23
|
|
|
16
24
|
/** The major version number for this version of libgit2. */
|
|
17
|
-
#define
|
|
25
|
+
#define LIBGIT2_VERSION_MAJOR 1
|
|
18
26
|
|
|
19
27
|
/** The minor version number for this version of libgit2. */
|
|
20
|
-
#define
|
|
28
|
+
#define LIBGIT2_VERSION_MINOR 9
|
|
21
29
|
|
|
22
30
|
/** The revision ("teeny") version number for this version of libgit2. */
|
|
23
|
-
#define
|
|
31
|
+
#define LIBGIT2_VERSION_REVISION 0
|
|
24
32
|
|
|
25
33
|
/** The Windows DLL patch number for this version of libgit2. */
|
|
26
|
-
#define
|
|
34
|
+
#define LIBGIT2_VERSION_PATCH 0
|
|
27
35
|
|
|
28
36
|
/**
|
|
29
37
|
* The prerelease string for this version of libgit2. For development
|
|
@@ -31,9 +39,37 @@
|
|
|
31
39
|
* a prerelease name like "beta" or "rc1". For final releases, this will
|
|
32
40
|
* be `NULL`.
|
|
33
41
|
*/
|
|
34
|
-
#define
|
|
42
|
+
#define LIBGIT2_VERSION_PRERELEASE NULL
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The library ABI soversion for this version of libgit2. This should
|
|
46
|
+
* only be changed when the library has a breaking ABI change, and so
|
|
47
|
+
* may not reflect the library's API version number.
|
|
48
|
+
*/
|
|
49
|
+
#define LIBGIT2_SOVERSION "1.9"
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* An integer value representing the libgit2 version number. For example,
|
|
53
|
+
* libgit2 1.6.3 is 1060300.
|
|
54
|
+
*/
|
|
55
|
+
#define LIBGIT2_VERSION_NUMBER ( \
|
|
56
|
+
(LIBGIT2_VERSION_MAJOR * 1000000) + \
|
|
57
|
+
(LIBGIT2_VERSION_MINOR * 10000) + \
|
|
58
|
+
(LIBGIT2_VERSION_REVISION * 100))
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Compare the libgit2 version against a given version. Evaluates to true
|
|
62
|
+
* if the given major, minor, and revision values are greater than or equal
|
|
63
|
+
* to the currently running libgit2 version. For example:
|
|
64
|
+
*
|
|
65
|
+
* #if LIBGIT2_VERSION_CHECK(1, 6, 3)
|
|
66
|
+
* # error libgit2 version is >= 1.6.3
|
|
67
|
+
* #endif
|
|
68
|
+
*/
|
|
69
|
+
#define LIBGIT2_VERSION_CHECK(major, minor, revision) \
|
|
70
|
+
(LIBGIT2_VERSION_NUMBER >= ((major)*1000000)+((minor)*10000)+((revision)*100))
|
|
35
71
|
|
|
36
|
-
/**
|
|
37
|
-
|
|
72
|
+
/** @} */
|
|
73
|
+
GIT_END_DECL
|
|
38
74
|
|
|
39
75
|
#endif
|
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
#include "buffer.h"
|
|
12
12
|
#include "types.h"
|
|
13
13
|
#include "strarray.h"
|
|
14
|
+
#include "checkout.h"
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
|
-
* @file git2/
|
|
17
|
-
* @brief
|
|
18
|
-
* @defgroup git_commit
|
|
17
|
+
* @file git2/worktree.h
|
|
18
|
+
* @brief Additional working directories for a repository
|
|
19
|
+
* @defgroup git_commit Additional working directories for a repository
|
|
19
20
|
* @ingroup Git
|
|
20
21
|
* @{
|
|
21
22
|
*/
|
|
@@ -85,8 +86,9 @@ GIT_EXTERN(int) git_worktree_validate(const git_worktree *wt);
|
|
|
85
86
|
typedef struct git_worktree_add_options {
|
|
86
87
|
unsigned int version;
|
|
87
88
|
|
|
88
|
-
int lock;
|
|
89
|
-
|
|
89
|
+
int lock; /**< lock newly created worktree */
|
|
90
|
+
int checkout_existing; /**< allow checkout of existing branch matching worktree name */
|
|
91
|
+
git_reference *ref; /**< reference to use for the new worktree HEAD */
|
|
90
92
|
|
|
91
93
|
/**
|
|
92
94
|
* Options for the checkout.
|
|
@@ -94,8 +96,12 @@ typedef struct git_worktree_add_options {
|
|
|
94
96
|
git_checkout_options checkout_options;
|
|
95
97
|
} git_worktree_add_options;
|
|
96
98
|
|
|
99
|
+
/** Current version for the `git_worktree_add_options` structure */
|
|
97
100
|
#define GIT_WORKTREE_ADD_OPTIONS_VERSION 1
|
|
98
|
-
|
|
101
|
+
|
|
102
|
+
/** Static constructor for `git_worktree_add_options` */
|
|
103
|
+
#define GIT_WORKTREE_ADD_OPTIONS_INIT { GIT_WORKTREE_ADD_OPTIONS_VERSION, \
|
|
104
|
+
0, 0, NULL, GIT_CHECKOUT_OPTIONS_INIT }
|
|
99
105
|
|
|
100
106
|
/**
|
|
101
107
|
* Initialize git_worktree_add_options structure
|
|
@@ -208,7 +214,10 @@ typedef struct git_worktree_prune_options {
|
|
|
208
214
|
uint32_t flags;
|
|
209
215
|
} git_worktree_prune_options;
|
|
210
216
|
|
|
217
|
+
/** Current version for the `git_worktree_prune_options` structure */
|
|
211
218
|
#define GIT_WORKTREE_PRUNE_OPTIONS_VERSION 1
|
|
219
|
+
|
|
220
|
+
/** Static constructor for `git_worktree_prune_options` */
|
|
212
221
|
#define GIT_WORKTREE_PRUNE_OPTIONS_INIT {GIT_WORKTREE_PRUNE_OPTIONS_VERSION,0}
|
|
213
222
|
|
|
214
223
|
/**
|
|
@@ -265,4 +274,5 @@ GIT_EXTERN(int) git_worktree_prune(git_worktree *wt,
|
|
|
265
274
|
|
|
266
275
|
/** @} */
|
|
267
276
|
GIT_END_DECL
|
|
277
|
+
|
|
268
278
|
#endif
|
|
@@ -127,7 +127,8 @@ endif()
|
|
|
127
127
|
# realtime support
|
|
128
128
|
|
|
129
129
|
check_library_exists(rt clock_gettime "time.h" NEED_LIBRT)
|
|
130
|
-
|
|
130
|
+
|
|
131
|
+
if(NEED_LIBRT AND NOT CMAKE_SYSTEM_NAME MATCHES "iOS")
|
|
131
132
|
list(APPEND LIBGIT2_SYSTEM_LIBS rt)
|
|
132
133
|
list(APPEND LIBGIT2_PC_LIBS "-lrt")
|
|
133
134
|
endif()
|
|
@@ -135,7 +136,8 @@ endif()
|
|
|
135
136
|
# platform libraries
|
|
136
137
|
|
|
137
138
|
if(WIN32)
|
|
138
|
-
list(APPEND LIBGIT2_SYSTEM_LIBS ws2_32)
|
|
139
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS "ws2_32" "secur32")
|
|
140
|
+
list(APPEND LIBGIT2_PC_LIBS "-lws2_32" "-lsecur32")
|
|
139
141
|
endif()
|
|
140
142
|
|
|
141
143
|
if(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
|
@@ -183,7 +185,7 @@ add_feature_info(ntlmclient GIT_NTLM "NTLM authentication support for Unix")
|
|
|
183
185
|
|
|
184
186
|
# iconv
|
|
185
187
|
if(USE_ICONV)
|
|
186
|
-
find_package(
|
|
188
|
+
find_package(IntlIconv)
|
|
187
189
|
endif()
|
|
188
190
|
if(ICONV_FOUND)
|
|
189
191
|
set(GIT_USE_ICONV 1)
|
|
@@ -200,7 +202,7 @@ add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support")
|
|
|
200
202
|
add_subdirectory(libgit2)
|
|
201
203
|
add_subdirectory(util)
|
|
202
204
|
|
|
203
|
-
if(BUILD_CLI)
|
|
205
|
+
if(BUILD_CLI AND NOT CMAKE_SYSTEM_NAME MATCHES "iOS")
|
|
204
206
|
add_subdirectory(cli)
|
|
205
207
|
endif()
|
|
206
208
|
|
|
@@ -4,7 +4,8 @@ set(CLI_INCLUDES
|
|
|
4
4
|
"${libgit2_SOURCE_DIR}/src/util"
|
|
5
5
|
"${libgit2_SOURCE_DIR}/src/cli"
|
|
6
6
|
"${libgit2_SOURCE_DIR}/include"
|
|
7
|
-
"${LIBGIT2_DEPENDENCY_INCLUDES}"
|
|
7
|
+
"${LIBGIT2_DEPENDENCY_INCLUDES}"
|
|
8
|
+
"${LIBGIT2_SYSTEM_INCLUDES}")
|
|
8
9
|
|
|
9
10
|
if(WIN32 AND NOT CYGWIN)
|
|
10
11
|
file(GLOB CLI_SRC_OS win32/*.c)
|
|
@@ -39,7 +40,6 @@ add_executable(git2_cli ${CLI_SRC_C} ${CLI_SRC_OS} ${CLI_OBJECTS}
|
|
|
39
40
|
${LIBGIT2_DEPENDENCY_OBJECTS})
|
|
40
41
|
target_link_libraries(git2_cli ${CLI_LIBGIT2_LIBRARY} ${LIBGIT2_SYSTEM_LIBS})
|
|
41
42
|
|
|
42
|
-
set_target_properties(git2_cli PROPERTIES C_STANDARD 90)
|
|
43
43
|
set_target_properties(git2_cli PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
|
44
44
|
set_target_properties(git2_cli PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
|
|
45
45
|
|
|
@@ -25,9 +25,13 @@ extern const cli_cmd_spec cli_cmds[];
|
|
|
25
25
|
extern const cli_cmd_spec *cli_cmd_spec_byname(const char *name);
|
|
26
26
|
|
|
27
27
|
/* Commands */
|
|
28
|
+
extern int cmd_blame(int argc, char **argv);
|
|
28
29
|
extern int cmd_cat_file(int argc, char **argv);
|
|
29
30
|
extern int cmd_clone(int argc, char **argv);
|
|
31
|
+
extern int cmd_config(int argc, char **argv);
|
|
30
32
|
extern int cmd_hash_object(int argc, char **argv);
|
|
31
33
|
extern int cmd_help(int argc, char **argv);
|
|
34
|
+
extern int cmd_index_pack(int argc, char **argv);
|
|
35
|
+
extern int cmd_init(int argc, char **argv);
|
|
32
36
|
|
|
33
37
|
#endif /* CLI_cmd_h__ */
|
|
@@ -0,0 +1,287 @@
|
|
|
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
|
+
#include "date.h"
|
|
19
|
+
#include "hashmap.h"
|
|
20
|
+
|
|
21
|
+
#define COMMAND_NAME "blame"
|
|
22
|
+
|
|
23
|
+
static char *file;
|
|
24
|
+
static int porcelain, line_porcelain;
|
|
25
|
+
|
|
26
|
+
static const cli_opt_spec opts[] = {
|
|
27
|
+
CLI_COMMON_OPT,
|
|
28
|
+
|
|
29
|
+
{ CLI_OPT_TYPE_SWITCH, "porcelain", 'p', &porcelain, 1,
|
|
30
|
+
CLI_OPT_USAGE_DEFAULT, NULL, "show machine readable output" },
|
|
31
|
+
{ CLI_OPT_TYPE_SWITCH, "line-porcelain", 0, &line_porcelain, 1,
|
|
32
|
+
CLI_OPT_USAGE_DEFAULT, NULL, "show individual lines in machine readable output" },
|
|
33
|
+
{ CLI_OPT_TYPE_LITERAL },
|
|
34
|
+
{ CLI_OPT_TYPE_ARG, "file", 0, &file, 0,
|
|
35
|
+
CLI_OPT_USAGE_REQUIRED, "file", "file to blame" },
|
|
36
|
+
|
|
37
|
+
{ 0 }
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
static void print_help(void)
|
|
41
|
+
{
|
|
42
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
|
43
|
+
printf("\n");
|
|
44
|
+
|
|
45
|
+
printf("Show the origin of each line of a file.\n");
|
|
46
|
+
printf("\n");
|
|
47
|
+
|
|
48
|
+
printf("Options:\n");
|
|
49
|
+
|
|
50
|
+
cli_opt_help_fprint(stdout, opts);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static int strintlen(size_t n)
|
|
54
|
+
{
|
|
55
|
+
int len = 1;
|
|
56
|
+
|
|
57
|
+
while (n > 10) {
|
|
58
|
+
n /= 10;
|
|
59
|
+
len++;
|
|
60
|
+
|
|
61
|
+
if (len == INT_MAX)
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return len;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static int fmt_date(git_str *out, git_time_t time, int offset)
|
|
69
|
+
{
|
|
70
|
+
time_t t;
|
|
71
|
+
struct tm gmt;
|
|
72
|
+
|
|
73
|
+
GIT_ASSERT_ARG(out);
|
|
74
|
+
|
|
75
|
+
t = (time_t)(time + offset * 60);
|
|
76
|
+
|
|
77
|
+
if (p_gmtime_r(&t, &gmt) == NULL)
|
|
78
|
+
return -1;
|
|
79
|
+
|
|
80
|
+
return git_str_printf(out, "%.4u-%02u-%02u %02u:%02u:%02u %+03d%02d",
|
|
81
|
+
gmt.tm_year + 1900, gmt.tm_mon + 1, gmt.tm_mday,
|
|
82
|
+
gmt.tm_hour, gmt.tm_min, gmt.tm_sec,
|
|
83
|
+
offset / 60, offset % 60);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static int print_standard(git_blame *blame)
|
|
87
|
+
{
|
|
88
|
+
size_t max_line_number = 0;
|
|
89
|
+
int max_lineno_len, max_line_len, max_author_len = 0, max_path_len = 0;
|
|
90
|
+
const char *last_path = NULL;
|
|
91
|
+
const git_blame_line *line;
|
|
92
|
+
bool paths_differ = false;
|
|
93
|
+
git_str date_str = GIT_STR_INIT;
|
|
94
|
+
size_t i;
|
|
95
|
+
int ret = 0;
|
|
96
|
+
|
|
97
|
+
/* Compute the maximum size of things */
|
|
98
|
+
for (i = 0; i < git_blame_hunkcount(blame); i++) {
|
|
99
|
+
const git_blame_hunk *hunk = git_blame_hunk_byindex(blame, i);
|
|
100
|
+
size_t hunk_author_len = strlen(hunk->orig_signature->name);
|
|
101
|
+
size_t hunk_path_len = strlen(hunk->orig_path);
|
|
102
|
+
size_t hunk_max_line_number =
|
|
103
|
+
hunk->orig_start_line_number + hunk->lines_in_hunk;
|
|
104
|
+
|
|
105
|
+
if (hunk_max_line_number > max_line_number)
|
|
106
|
+
max_line_number = hunk_max_line_number;
|
|
107
|
+
|
|
108
|
+
if (hunk_author_len > INT_MAX)
|
|
109
|
+
max_author_len = INT_MAX;
|
|
110
|
+
else if ((int)hunk_author_len > max_author_len)
|
|
111
|
+
max_author_len = (int)hunk_author_len;
|
|
112
|
+
|
|
113
|
+
if (hunk_path_len > INT_MAX)
|
|
114
|
+
hunk_path_len = INT_MAX;
|
|
115
|
+
else if ((int)hunk_path_len > max_path_len)
|
|
116
|
+
max_path_len = (int)hunk_path_len;
|
|
117
|
+
|
|
118
|
+
if (!paths_differ && last_path != NULL &&
|
|
119
|
+
strcmp(last_path, hunk->orig_path) != 0) {
|
|
120
|
+
paths_differ = true;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
last_path = hunk->orig_path;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
max_lineno_len = strintlen(max_line_number);
|
|
127
|
+
|
|
128
|
+
max_author_len--;
|
|
129
|
+
|
|
130
|
+
for (i = 1; i < git_blame_linecount(blame); i++) {
|
|
131
|
+
const git_blame_hunk *hunk = git_blame_hunk_byline(blame, i);
|
|
132
|
+
int oid_abbrev;
|
|
133
|
+
|
|
134
|
+
if (!hunk)
|
|
135
|
+
break;
|
|
136
|
+
|
|
137
|
+
oid_abbrev = hunk->boundary ? 7 : 8;
|
|
138
|
+
printf("%s%.*s ", hunk->boundary ? "^" : "",
|
|
139
|
+
oid_abbrev, git_oid_tostr_s(&hunk->orig_commit_id));
|
|
140
|
+
|
|
141
|
+
if (paths_differ)
|
|
142
|
+
printf("%-*.*s ", max_path_len, max_path_len, hunk->orig_path);
|
|
143
|
+
|
|
144
|
+
git_str_clear(&date_str);
|
|
145
|
+
if (fmt_date(&date_str,
|
|
146
|
+
hunk->orig_signature->when.time,
|
|
147
|
+
hunk->orig_signature->when.offset) < 0) {
|
|
148
|
+
ret = cli_error_git();
|
|
149
|
+
goto done;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if ((line = git_blame_line_byindex(blame, i)) == NULL) {
|
|
153
|
+
ret = cli_error_git();
|
|
154
|
+
goto done;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
max_line_len = (int)min(line->len, INT_MAX);
|
|
158
|
+
|
|
159
|
+
printf("(%-*.*s %s %*" PRIuZ ") %.*s" ,
|
|
160
|
+
max_author_len, max_author_len, hunk->orig_signature->name,
|
|
161
|
+
date_str.ptr,
|
|
162
|
+
max_lineno_len, i,
|
|
163
|
+
max_line_len, line->ptr);
|
|
164
|
+
printf("\n");
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
done:
|
|
168
|
+
git_str_dispose(&date_str);
|
|
169
|
+
return ret;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
GIT_INLINE(uint32_t) oid_hashcode(const git_oid *oid)
|
|
173
|
+
{
|
|
174
|
+
uint32_t hash;
|
|
175
|
+
memcpy(&hash, oid->id, sizeof(uint32_t));
|
|
176
|
+
return hash;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
GIT_HASHSET_SETUP(git_blame_commitmap, const git_oid *, oid_hashcode, git_oid_equal);
|
|
180
|
+
|
|
181
|
+
static int print_porcelain(git_blame *blame)
|
|
182
|
+
{
|
|
183
|
+
git_blame_commitmap seen_ids = GIT_HASHSET_INIT;
|
|
184
|
+
size_t i, j;
|
|
185
|
+
|
|
186
|
+
for (i = 0; i < git_blame_hunkcount(blame); i++) {
|
|
187
|
+
const git_blame_line *line;
|
|
188
|
+
const git_blame_hunk *hunk = git_blame_hunk_byindex(blame, i);
|
|
189
|
+
|
|
190
|
+
for (j = 0; j < hunk->lines_in_hunk; j++) {
|
|
191
|
+
size_t line_number = hunk->final_start_line_number + j;
|
|
192
|
+
bool seen = git_blame_commitmap_contains(&seen_ids, &hunk->orig_commit_id);
|
|
193
|
+
|
|
194
|
+
printf("%s %" PRIuZ " %" PRIuZ,
|
|
195
|
+
git_oid_tostr_s(&hunk->orig_commit_id),
|
|
196
|
+
hunk->orig_start_line_number + j,
|
|
197
|
+
hunk->final_start_line_number + j);
|
|
198
|
+
|
|
199
|
+
if (!j)
|
|
200
|
+
printf(" %" PRIuZ, hunk->lines_in_hunk);
|
|
201
|
+
|
|
202
|
+
printf("\n");
|
|
203
|
+
|
|
204
|
+
if ((!j && !seen) || line_porcelain) {
|
|
205
|
+
printf("author %s\n", hunk->orig_signature->name);
|
|
206
|
+
printf("author-mail <%s>\n", hunk->orig_signature->email);
|
|
207
|
+
printf("author-time %" PRId64 "\n", hunk->orig_signature->when.time);
|
|
208
|
+
printf("author-tz %+03d%02d\n",
|
|
209
|
+
hunk->orig_signature->when.offset / 60,
|
|
210
|
+
hunk->orig_signature->when.offset % 60);
|
|
211
|
+
|
|
212
|
+
printf("committer %s\n", hunk->orig_committer->name);
|
|
213
|
+
printf("committer-mail <%s>\n", hunk->orig_committer->email);
|
|
214
|
+
printf("committer-time %" PRId64 "\n", hunk->orig_committer->when.time);
|
|
215
|
+
printf("committer-tz %+03d%02d\n",
|
|
216
|
+
hunk->orig_committer->when.offset / 60,
|
|
217
|
+
hunk->orig_committer->when.offset % 60);
|
|
218
|
+
|
|
219
|
+
printf("summary %s\n", hunk->summary);
|
|
220
|
+
|
|
221
|
+
/* TODO: previous */
|
|
222
|
+
|
|
223
|
+
printf("filename %s\n", hunk->orig_path);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
if ((line = git_blame_line_byindex(blame, line_number)) == NULL)
|
|
227
|
+
return cli_error_git();
|
|
228
|
+
|
|
229
|
+
printf("\t%.*s\n", (int)min(line->len, INT_MAX),
|
|
230
|
+
line->ptr);
|
|
231
|
+
|
|
232
|
+
if (!seen)
|
|
233
|
+
git_blame_commitmap_add(&seen_ids, &hunk->orig_commit_id);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
git_blame_commitmap_dispose(&seen_ids);
|
|
238
|
+
return 0;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
int cmd_blame(int argc, char **argv)
|
|
242
|
+
{
|
|
243
|
+
cli_repository_open_options open_opts = { argv + 1, argc - 1 };
|
|
244
|
+
git_blame_options blame_opts = GIT_BLAME_OPTIONS_INIT;
|
|
245
|
+
git_repository *repo = NULL;
|
|
246
|
+
git_str workdir_path = GIT_STR_INIT;
|
|
247
|
+
git_blame *blame = NULL;
|
|
248
|
+
cli_opt invalid_opt;
|
|
249
|
+
int ret = 0;
|
|
250
|
+
|
|
251
|
+
blame_opts.flags |= GIT_BLAME_USE_MAILMAP;
|
|
252
|
+
|
|
253
|
+
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
|
254
|
+
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
|
255
|
+
|
|
256
|
+
if (cli_opt__show_help) {
|
|
257
|
+
print_help();
|
|
258
|
+
return 0;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (!file) {
|
|
262
|
+
ret = cli_error_usage("you must specify a file to blame");
|
|
263
|
+
goto done;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (cli_repository_open(&repo, &open_opts) < 0)
|
|
267
|
+
return cli_error_git();
|
|
268
|
+
|
|
269
|
+
if ((ret = cli_resolve_path(&workdir_path, repo, file)) != 0)
|
|
270
|
+
goto done;
|
|
271
|
+
|
|
272
|
+
if (git_blame_file(&blame, repo, workdir_path.ptr, &blame_opts) < 0) {
|
|
273
|
+
ret = cli_error_git();
|
|
274
|
+
goto done;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (porcelain || line_porcelain)
|
|
278
|
+
ret = print_porcelain(blame);
|
|
279
|
+
else
|
|
280
|
+
ret = print_standard(blame);
|
|
281
|
+
|
|
282
|
+
done:
|
|
283
|
+
git_str_dispose(&workdir_path);
|
|
284
|
+
git_blame_free(blame);
|
|
285
|
+
git_repository_free(repo);
|
|
286
|
+
return ret;
|
|
287
|
+
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#include <git2.h>
|
|
9
|
-
#include "
|
|
9
|
+
#include "common.h"
|
|
10
10
|
#include "cmd.h"
|
|
11
11
|
|
|
12
12
|
#define COMMAND_NAME "cat-file"
|
|
@@ -19,14 +19,11 @@ typedef enum {
|
|
|
19
19
|
DISPLAY_TYPE
|
|
20
20
|
} display_t;
|
|
21
21
|
|
|
22
|
-
static int show_help;
|
|
23
22
|
static int display = DISPLAY_CONTENT;
|
|
24
23
|
static char *type_name, *object_spec;
|
|
25
24
|
|
|
26
25
|
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" },
|
|
26
|
+
CLI_COMMON_OPT,
|
|
30
27
|
|
|
31
28
|
{ CLI_OPT_TYPE_SWITCH, NULL, 't', &display, DISPLAY_TYPE,
|
|
32
29
|
CLI_OPT_USAGE_REQUIRED, NULL, "display the type of the object" },
|
|
@@ -45,7 +42,7 @@ static const cli_opt_spec opts[] = {
|
|
|
45
42
|
|
|
46
43
|
static void print_help(void)
|
|
47
44
|
{
|
|
48
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts);
|
|
45
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
|
49
46
|
printf("\n");
|
|
50
47
|
|
|
51
48
|
printf("Display the content for the given object in the repository.\n");
|
|
@@ -139,6 +136,7 @@ static int print_pretty(git_object *object)
|
|
|
139
136
|
|
|
140
137
|
int cmd_cat_file(int argc, char **argv)
|
|
141
138
|
{
|
|
139
|
+
cli_repository_open_options open_opts = { argv + 1, argc - 1};
|
|
142
140
|
git_repository *repo = NULL;
|
|
143
141
|
git_object *object = NULL;
|
|
144
142
|
git_object_t type;
|
|
@@ -148,12 +146,12 @@ int cmd_cat_file(int argc, char **argv)
|
|
|
148
146
|
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
|
149
147
|
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
|
150
148
|
|
|
151
|
-
if (
|
|
149
|
+
if (cli_opt__show_help) {
|
|
152
150
|
print_help();
|
|
153
151
|
return 0;
|
|
154
152
|
}
|
|
155
153
|
|
|
156
|
-
if (
|
|
154
|
+
if (cli_repository_open(&repo, &open_opts) < 0)
|
|
157
155
|
return cli_error_git();
|
|
158
156
|
|
|
159
157
|
if ((giterr = git_revparse_single(&object, repo, object_spec)) < 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"
|
|
@@ -19,14 +19,12 @@
|
|
|
19
19
|
#define COMMAND_NAME "clone"
|
|
20
20
|
|
|
21
21
|
static char *branch, *remote_path, *local_path, *depth;
|
|
22
|
-
static int
|
|
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" },
|
|
@@ -48,7 +46,7 @@ static const cli_opt_spec opts[] = {
|
|
|
48
46
|
|
|
49
47
|
static void print_help(void)
|
|
50
48
|
{
|
|
51
|
-
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts);
|
|
49
|
+
cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0);
|
|
52
50
|
printf("\n");
|
|
53
51
|
|
|
54
52
|
printf("Clone a repository into a new directory.\n");
|
|
@@ -135,7 +133,7 @@ int cmd_clone(int argc, char **argv)
|
|
|
135
133
|
if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU))
|
|
136
134
|
return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt);
|
|
137
135
|
|
|
138
|
-
if (
|
|
136
|
+
if (cli_opt__show_help) {
|
|
139
137
|
print_help();
|
|
140
138
|
return 0;
|
|
141
139
|
}
|