rugged 0.17.0b2 → 0.17.0.b6
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +10 -11
- data/ext/rugged/extconf.rb +5 -13
- data/ext/rugged/rugged_commit.c +2 -5
- data/ext/rugged/rugged_reference.c +29 -28
- data/ext/rugged/rugged_remote.c +1 -1
- data/ext/rugged/rugged_repo.c +4 -1
- data/ext/rugged/rugged_tree.c +20 -19
- data/lib/rugged/commit.rb +5 -1
- data/lib/rugged/repository.rb +6 -4
- data/lib/rugged/version.rb +1 -1
- data/test/config_test.rb +1 -1
- data/test/index_test.rb +4 -2
- data/test/object_test.rb +3 -3
- data/test/reference_test.rb +66 -1
- data/test/repo_test.rb +4 -4
- data/test/tree_test.rb +1 -1
- data/test/walker_test.rb +1 -1
- data/vendor/libgit2/Makefile.embed +42 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/http-parser/http_parser.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/http-parser/http_parser.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/config.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regcomp.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex_internal.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex_internal.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regexec.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/adler32.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/crc32.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/crc32.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/deflate.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/deflate.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffast.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffast.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffixed.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inflate.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inflate.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inftrees.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inftrees.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/trees.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/trees.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zconf.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zlib.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zutil.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zutil.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2.h +6 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/attr.h +35 -20
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/blob.h +1 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/branch.h +62 -24
- data/vendor/libgit2/include/git2/checkout.h +66 -0
- data/vendor/libgit2/include/git2/clone.h +59 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/commit.h +22 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/common.h +27 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/config.h +22 -4
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/diff.h +20 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/errors.h +2 -37
- data/vendor/libgit2/include/git2/ignore.h +74 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/index.h +37 -5
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/indexer.h +2 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/inttypes.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/merge.h +10 -0
- data/vendor/libgit2/include/git2/message.h +43 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/net.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/notes.h +24 -20
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/object.h +18 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/odb.h +16 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/odb_backend.h +8 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/oid.h +26 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/reflog.h +39 -9
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/refs.h +55 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/refspec.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/remote.h +68 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/repository.h +39 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/reset.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/revparse.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/revwalk.h +2 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/signature.h +3 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/status.h +5 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/stdint.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/submodule.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/tag.h +3 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/threads.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/tree.h +77 -20
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/types.h +14 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/version.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/windows.h +0 -0
- data/vendor/libgit2/src/amiga/map.c +51 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr.c +39 -6
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr.h +1 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr_file.c +2 -16
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr_file.h +4 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/blob.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/blob.h +0 -0
- data/vendor/libgit2/src/branch.c +294 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/bswap.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/buffer.c +40 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/buffer.h +22 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cache.c +1 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cache.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cc-compat.h +0 -0
- data/vendor/libgit2/src/checkout.c +230 -0
- data/vendor/libgit2/src/clone.c +254 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/commit.c +42 -16
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/commit.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/common.h +3 -9
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/compat/fnmatch.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/compat/fnmatch.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config.c +15 -5
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_cache.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_file.c +86 -19
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_file.h +16 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/crlf.c +92 -4
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/date.c +20 -20
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/delta-apply.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/delta-apply.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff.c +45 -18
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff_output.c +63 -46
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/errors.c +0 -0
- data/vendor/libgit2/src/fetch.c +380 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fetch.h +1 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filebuf.c +7 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filebuf.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fileops.c +16 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fileops.h +10 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filter.c +38 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filter.h +15 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/global.c +5 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/global.h +2 -6
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/hash.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/hash.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ignore.c +50 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ignore.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/index.c +95 -28
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/index.h +5 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/indexer.c +27 -25
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/iterator.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/iterator.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/khash.h +6 -4
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/map.h +4 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/message.c +27 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/message.h +2 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/mwindow.c +54 -10
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/mwindow.h +1 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/netops.c +48 -38
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/netops.h +7 -4
- data/vendor/libgit2/src/notes.c +610 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/notes.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/object.c +73 -2
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb.c +20 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb_loose.c +89 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb_pack.c +61 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/oid.c +1 -6
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/oidmap.h +1 -6
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pack.c +49 -4
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pack.h +5 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/path.c +144 -21
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/path.h +46 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pkt.c +30 -8
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pkt.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pool.c +7 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pool.h +7 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/posix.c +92 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/posix.h +36 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ppc/sha1.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ppc/sha1.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pqueue.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pqueue.h +0 -0
- data/vendor/libgit2/src/protocol.c +88 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/protocol.h +3 -9
- data/vendor/libgit2/src/reflog.c +489 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/reflog.h +3 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refs.c +95 -52
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refs.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refspec.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refspec.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/remote.c +130 -8
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/remote.h +6 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/repository.c +167 -42
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/repository.h +7 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/reset.c +1 -1
- data/vendor/libgit2/src/revparse.c +830 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/revwalk.c +83 -15
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1.h +5 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1_lookup.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1_lookup.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/signature.c +19 -5
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/signature.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/status.c +24 -18
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/strmap.h +1 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/submodule.c +3 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tag.c +2 -9
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tag.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/thread-utils.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/thread-utils.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transport.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transport.h +13 -9
- data/vendor/libgit2/src/transports/git.c +245 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transports/http.c +93 -336
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transports/local.c +35 -32
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree-cache.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree-cache.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree.c +214 -124
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree.h +7 -3
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tsort.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/unix/map.c +2 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/unix/posix.h +2 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/util.c +30 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/util.h +13 -6
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/vector.c +1 -1
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/vector.h +5 -5
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/dir.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/dir.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/map.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/mingw-compat.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/msvc-compat.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/posix.h +1 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/posix_w32.c +17 -1
- data/vendor/libgit2/src/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/win32/precompiled.h +19 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/pthread.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/pthread.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/utf-conv.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/utf-conv.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiff.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiffi.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiffi.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xemit.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xemit.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xhistogram.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xinclude.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xmacros.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xmerge.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xpatience.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xprepare.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xprepare.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xtypes.h +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xutils.c +0 -0
- data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xutils.h +0 -0
- metadata +265 -348
- data/ext/rugged/vendor/libgit2-dist.tar.gz +0 -0
- data/ext/rugged/vendor/libgit2-dist/examples/diff.c +0 -238
- data/ext/rugged/vendor/libgit2-dist/examples/general.c +0 -451
- data/ext/rugged/vendor/libgit2-dist/examples/network/common.h +0 -14
- data/ext/rugged/vendor/libgit2-dist/examples/network/fetch.c +0 -113
- data/ext/rugged/vendor/libgit2-dist/examples/network/git2.c +0 -62
- data/ext/rugged/vendor/libgit2-dist/examples/network/index-pack.c +0 -102
- data/ext/rugged/vendor/libgit2-dist/examples/network/ls-remote.c +0 -76
- data/ext/rugged/vendor/libgit2-dist/examples/showindex.c +0 -43
- data/ext/rugged/vendor/libgit2-dist/src/branch.c +0 -208
- data/ext/rugged/vendor/libgit2-dist/src/branch.h +0 -17
- data/ext/rugged/vendor/libgit2-dist/src/fetch.c +0 -200
- data/ext/rugged/vendor/libgit2-dist/src/notes.c +0 -548
- data/ext/rugged/vendor/libgit2-dist/src/protocol.c +0 -58
- data/ext/rugged/vendor/libgit2-dist/src/reflog.c +0 -340
- data/ext/rugged/vendor/libgit2-dist/src/revparse.c +0 -748
- data/ext/rugged/vendor/libgit2-dist/src/transports/git.c +0 -477
- data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/attr_expect.h +0 -43
- data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/file.c +0 -226
- data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/flags.c +0 -108
- data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/lookup.c +0 -262
- data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/repo.c +0 -273
- data/ext/rugged/vendor/libgit2-dist/tests-clar/buf/basic.c +0 -29
- data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_helpers.c +0 -181
- data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_libgit2.h +0 -55
- data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/commit.c +0 -44
- data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/parse.c +0 -350
- data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/signature.c +0 -65
- data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/write.c +0 -140
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/add.c +0 -37
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/multivar.c +0 -151
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/new.c +0 -36
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/read.c +0 -221
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/stress.c +0 -61
- data/ext/rugged/vendor/libgit2-dist/tests-clar/config/write.c +0 -92
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/buffer.c +0 -613
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/dirent.c +0 -235
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/env.c +0 -115
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/errors.c +0 -60
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/filebuf.c +0 -92
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/hex.c +0 -22
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/oid.c +0 -18
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/path.c +0 -420
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/pool.c +0 -85
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/rmdir.c +0 -68
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/string.c +0 -28
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/strmap.c +0 -102
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/strtol.c +0 -37
- data/ext/rugged/vendor/libgit2-dist/tests-clar/core/vector.c +0 -191
- data/ext/rugged/vendor/libgit2-dist/tests-clar/date/date.c +0 -15
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/blob.c +0 -254
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.c +0 -104
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.h +0 -47
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/index.c +0 -92
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/iterator.c +0 -572
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/patch.c +0 -99
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/tree.c +0 -210
- data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/workdir.c +0 -543
- data/ext/rugged/vendor/libgit2-dist/tests-clar/index/read_tree.c +0 -46
- data/ext/rugged/vendor/libgit2-dist/tests-clar/index/rename.c +0 -50
- data/ext/rugged/vendor/libgit2-dist/tests-clar/index/tests.c +0 -246
- data/ext/rugged/vendor/libgit2-dist/tests-clar/network/createremotethenload.c +0 -33
- data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotelocal.c +0 -137
- data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotes.c +0 -183
- data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notes.c +0 -133
- data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notesref.c +0 -57
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/filter.c +0 -125
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/fromchunks.c +0 -87
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/write.c +0 -69
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/commit/commitstagedfile.c +0 -126
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/lookup.c +0 -63
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/message.c +0 -171
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/chars.c +0 -41
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/compare.c +0 -124
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/convert.c +0 -75
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/data.h +0 -323
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/fromstr.c +0 -30
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/hash.c +0 -166
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/short.c +0 -94
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/size.c +0 -13
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/type2string.c +0 -54
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/write.c +0 -455
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/peel.c +0 -56
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/read.c +0 -130
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/write.c +0 -192
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/frompath.c +0 -81
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/read.c +0 -75
- data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/write.c +0 -84
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/loose.c +0 -84
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/loose_data.h +0 -522
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/mixed.c +0 -24
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/pack_data.h +0 -151
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/packed.c +0 -78
- data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/sorting.c +0 -71
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/create.c +0 -113
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/delete.c +0 -91
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/listall.c +0 -78
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/move.c +0 -72
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/crashes.c +0 -17
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/create.c +0 -149
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/delete.c +0 -85
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/list.c +0 -53
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/listall.c +0 -36
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/lookup.c +0 -42
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/normalize.c +0 -200
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/overwrite.c +0 -136
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/pack.c +0 -67
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/read.c +0 -194
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/reflog.c +0 -123
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/rename.c +0 -339
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/revparse.c +0 -174
- data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/unicode.c +0 -42
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/discover.c +0 -142
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/getters.c +0 -86
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/init.c +0 -249
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/open.c +0 -282
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/setters.c +0 -80
- data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/mixed.c +0 -47
- data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.c +0 -10
- data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.h +0 -6
- data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/soft.c +0 -102
- data/ext/rugged/vendor/libgit2-dist/tests-clar/revwalk/basic.c +0 -181
- data/ext/rugged/vendor/libgit2-dist/tests-clar/revwalk/mergebase.c +0 -148
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/ignore.c +0 -147
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/single.c +0 -29
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_data.h +0 -202
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.c +0 -49
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.h +0 -33
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/submodules.c +0 -112
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/worktree.c +0 -649
- data/ext/rugged/vendor/libgit2-dist/tests-clar/threads/basic.c +0 -20
@@ -17,6 +17,8 @@
|
|
17
17
|
|
18
18
|
#define GIT_REFLOG_SIZE_MIN (2*GIT_OID_HEXSZ+2+17)
|
19
19
|
|
20
|
+
#define GIT_OID_HEX_ZERO "0000000000000000000000000000000000000000"
|
21
|
+
|
20
22
|
struct git_reflog_entry {
|
21
23
|
git_oid oid_old;
|
22
24
|
git_oid oid_cur;
|
@@ -28,6 +30,7 @@ struct git_reflog_entry {
|
|
28
30
|
|
29
31
|
struct git_reflog {
|
30
32
|
char *ref_name;
|
33
|
+
git_repository *owner;
|
31
34
|
git_vector entries;
|
32
35
|
};
|
33
36
|
|
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
#include <git2/tag.h>
|
16
16
|
#include <git2/object.h>
|
17
|
+
#include <git2/oid.h>
|
17
18
|
|
18
19
|
GIT__USE_STRMAP;
|
19
20
|
|
@@ -128,6 +129,7 @@ static int reference_read(
|
|
128
129
|
|
129
130
|
result = git_futils_readbuffer_updated(file_content, path.ptr, mtime, updated);
|
130
131
|
git_buf_free(&path);
|
132
|
+
|
131
133
|
return result;
|
132
134
|
}
|
133
135
|
|
@@ -135,12 +137,13 @@ static int loose_parse_symbolic(git_reference *ref, git_buf *file_content)
|
|
135
137
|
{
|
136
138
|
const unsigned int header_len = (unsigned int)strlen(GIT_SYMREF);
|
137
139
|
const char *refname_start;
|
138
|
-
char *eol;
|
139
140
|
|
140
141
|
refname_start = (const char *)file_content->ptr;
|
141
142
|
|
142
|
-
if (git_buf_len(file_content) < header_len + 1)
|
143
|
-
|
143
|
+
if (git_buf_len(file_content) < header_len + 1) {
|
144
|
+
giterr_set(GITERR_REFERENCE, "Corrupted loose reference file");
|
145
|
+
return -1;
|
146
|
+
}
|
144
147
|
|
145
148
|
/*
|
146
149
|
* Assume we have already checked for the header
|
@@ -151,45 +154,16 @@ static int loose_parse_symbolic(git_reference *ref, git_buf *file_content)
|
|
151
154
|
ref->target.symbolic = git__strdup(refname_start);
|
152
155
|
GITERR_CHECK_ALLOC(ref->target.symbolic);
|
153
156
|
|
154
|
-
/* remove newline at the end of file */
|
155
|
-
eol = strchr(ref->target.symbolic, '\n');
|
156
|
-
if (eol == NULL)
|
157
|
-
goto corrupt;
|
158
|
-
|
159
|
-
*eol = '\0';
|
160
|
-
if (eol[-1] == '\r')
|
161
|
-
eol[-1] = '\0';
|
162
|
-
|
163
157
|
return 0;
|
164
|
-
|
165
|
-
corrupt:
|
166
|
-
giterr_set(GITERR_REFERENCE, "Corrupted loose reference file");
|
167
|
-
return -1;
|
168
158
|
}
|
169
159
|
|
170
160
|
static int loose_parse_oid(git_oid *oid, git_buf *file_content)
|
171
161
|
{
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
/* File format: 40 chars (OID) + newline */
|
177
|
-
if (git_buf_len(file_content) < GIT_OID_HEXSZ + 1)
|
178
|
-
goto corrupt;
|
179
|
-
|
180
|
-
if (git_oid_fromstr(oid, buffer) < 0)
|
181
|
-
goto corrupt;
|
182
|
-
|
183
|
-
buffer = buffer + GIT_OID_HEXSZ;
|
184
|
-
if (*buffer == '\r')
|
185
|
-
buffer++;
|
186
|
-
|
187
|
-
if (*buffer != '\n')
|
188
|
-
goto corrupt;
|
189
|
-
|
190
|
-
return 0;
|
162
|
+
/* File format: 40 chars (OID) */
|
163
|
+
if (git_buf_len(file_content) == GIT_OID_HEXSZ &&
|
164
|
+
git_oid_fromstr(oid, git_buf_cstr(file_content)) == 0)
|
165
|
+
return 0;
|
191
166
|
|
192
|
-
corrupt:
|
193
167
|
giterr_set(GITERR_REFERENCE, "Corrupted loose reference file");
|
194
168
|
return -1;
|
195
169
|
}
|
@@ -226,6 +200,8 @@ static int loose_lookup(git_reference *ref)
|
|
226
200
|
if (!updated)
|
227
201
|
return 0;
|
228
202
|
|
203
|
+
git_buf_rtrim(&ref_file);
|
204
|
+
|
229
205
|
if (ref->flags & GIT_REF_SYMBOLIC) {
|
230
206
|
git__free(ref->target.symbolic);
|
231
207
|
ref->target.symbolic = NULL;
|
@@ -259,6 +235,8 @@ static int loose_lookup_to_packfile(
|
|
259
235
|
if (reference_read(&ref_file, NULL, repo->path_repository, name, NULL) < 0)
|
260
236
|
return -1;
|
261
237
|
|
238
|
+
git_buf_rtrim(&ref_file);
|
239
|
+
|
262
240
|
name_len = strlen(name);
|
263
241
|
ref = git__malloc(sizeof(struct packref) + name_len + 1);
|
264
242
|
GITERR_CHECK_ALLOC(ref);
|
@@ -500,6 +478,7 @@ struct dirent_list_data {
|
|
500
478
|
|
501
479
|
int (*callback)(const char *, void *);
|
502
480
|
void *callback_payload;
|
481
|
+
int callback_error;
|
503
482
|
};
|
504
483
|
|
505
484
|
static int _dirent_loose_listall(void *_data, git_buf *full_path)
|
@@ -520,7 +499,10 @@ static int _dirent_loose_listall(void *_data, git_buf *full_path)
|
|
520
499
|
return 0; /* we are filtering out this reference */
|
521
500
|
}
|
522
501
|
|
523
|
-
|
502
|
+
if (data->callback(file_path, data->callback_payload))
|
503
|
+
data->callback_error = GIT_EUSER;
|
504
|
+
|
505
|
+
return data->callback_error;
|
524
506
|
}
|
525
507
|
|
526
508
|
static int _dirent_loose_load(void *data, git_buf *full_path)
|
@@ -843,15 +825,17 @@ static int reference_path_available(
|
|
843
825
|
const char *ref,
|
844
826
|
const char* old_ref)
|
845
827
|
{
|
828
|
+
int error;
|
846
829
|
struct reference_available_t data;
|
847
830
|
|
848
831
|
data.new_ref = ref;
|
849
832
|
data.old_ref = old_ref;
|
850
833
|
data.available = 1;
|
851
834
|
|
852
|
-
|
853
|
-
_reference_available_cb, (void *)&data)
|
854
|
-
|
835
|
+
error = git_reference_foreach(
|
836
|
+
repo, GIT_REF_LISTALL, _reference_available_cb, (void *)&data);
|
837
|
+
if (error < 0)
|
838
|
+
return error;
|
855
839
|
|
856
840
|
if (!data.available) {
|
857
841
|
giterr_set(GITERR_REFERENCE,
|
@@ -1396,6 +1380,9 @@ int git_reference_rename(git_reference *ref, const char *new_name, int force)
|
|
1396
1380
|
head_target = git_reference_target(head);
|
1397
1381
|
|
1398
1382
|
if (head_target && !strcmp(head_target, ref->name)) {
|
1383
|
+
git_reference_free(head);
|
1384
|
+
head = NULL;
|
1385
|
+
|
1399
1386
|
if (git_reference_create_symbolic(&head, ref->owner, "HEAD", new_name, 1) < 0) {
|
1400
1387
|
giterr_set(GITERR_REFERENCE,
|
1401
1388
|
"Failed to update HEAD after renaming reference");
|
@@ -1404,18 +1391,11 @@ int git_reference_rename(git_reference *ref, const char *new_name, int force)
|
|
1404
1391
|
}
|
1405
1392
|
|
1406
1393
|
/*
|
1407
|
-
* Rename the reflog file.
|
1394
|
+
* Rename the reflog file, if it exists.
|
1408
1395
|
*/
|
1409
|
-
if (
|
1396
|
+
if ((git_reference_has_log(ref)) && (git_reflog_rename(ref, new_name) < 0))
|
1410
1397
|
goto cleanup;
|
1411
1398
|
|
1412
|
-
if (git_path_exists(aux_path.ptr) == true) {
|
1413
|
-
if (git_reflog_rename(ref, new_name) < 0)
|
1414
|
-
goto cleanup;
|
1415
|
-
} else {
|
1416
|
-
giterr_clear();
|
1417
|
-
}
|
1418
|
-
|
1419
1399
|
/*
|
1420
1400
|
* Change the name of the reference given by the user.
|
1421
1401
|
*/
|
@@ -1490,8 +1470,8 @@ int git_reference_foreach(
|
|
1490
1470
|
return -1;
|
1491
1471
|
|
1492
1472
|
git_strmap_foreach(repo->references.packfile, ref_name, ref, {
|
1493
|
-
if (callback(ref_name, payload)
|
1494
|
-
return
|
1473
|
+
if (callback(ref_name, payload))
|
1474
|
+
return GIT_EUSER;
|
1495
1475
|
});
|
1496
1476
|
}
|
1497
1477
|
|
@@ -1503,14 +1483,16 @@ int git_reference_foreach(
|
|
1503
1483
|
data.repo = repo;
|
1504
1484
|
data.callback = callback;
|
1505
1485
|
data.callback_payload = payload;
|
1486
|
+
data.callback_error = 0;
|
1506
1487
|
|
1507
1488
|
if (git_buf_joinpath(&refs_path, repo->path_repository, GIT_REFS_DIR) < 0)
|
1508
1489
|
return -1;
|
1509
1490
|
|
1510
1491
|
result = git_path_direach(&refs_path, _dirent_loose_listall, &data);
|
1492
|
+
|
1511
1493
|
git_buf_free(&refs_path);
|
1512
1494
|
|
1513
|
-
return result;
|
1495
|
+
return data.callback_error ? GIT_EUSER : result;
|
1514
1496
|
}
|
1515
1497
|
|
1516
1498
|
static int cb__reflist_add(const char *ref, void *data)
|
@@ -1764,3 +1746,64 @@ int git_reference__update(git_repository *repo, const git_oid *oid, const char *
|
|
1764
1746
|
git_reference_free(ref);
|
1765
1747
|
return res;
|
1766
1748
|
}
|
1749
|
+
|
1750
|
+
struct glob_cb_data {
|
1751
|
+
const char *glob;
|
1752
|
+
int (*callback)(const char *, void *);
|
1753
|
+
void *payload;
|
1754
|
+
};
|
1755
|
+
|
1756
|
+
static int fromglob_cb(const char *reference_name, void *payload)
|
1757
|
+
{
|
1758
|
+
struct glob_cb_data *data = (struct glob_cb_data *)payload;
|
1759
|
+
|
1760
|
+
if (!p_fnmatch(data->glob, reference_name, 0))
|
1761
|
+
return data->callback(reference_name, data->payload);
|
1762
|
+
|
1763
|
+
return 0;
|
1764
|
+
}
|
1765
|
+
|
1766
|
+
int git_reference_foreach_glob(
|
1767
|
+
git_repository *repo,
|
1768
|
+
const char *glob,
|
1769
|
+
unsigned int list_flags,
|
1770
|
+
int (*callback)(
|
1771
|
+
const char *reference_name,
|
1772
|
+
void *payload),
|
1773
|
+
void *payload)
|
1774
|
+
{
|
1775
|
+
struct glob_cb_data data;
|
1776
|
+
|
1777
|
+
assert(repo && glob && callback);
|
1778
|
+
|
1779
|
+
data.glob = glob;
|
1780
|
+
data.callback = callback;
|
1781
|
+
data.payload = payload;
|
1782
|
+
|
1783
|
+
return git_reference_foreach(
|
1784
|
+
repo, list_flags, fromglob_cb, &data);
|
1785
|
+
}
|
1786
|
+
|
1787
|
+
int git_reference_has_log(
|
1788
|
+
git_reference *ref)
|
1789
|
+
{
|
1790
|
+
git_buf path = GIT_BUF_INIT;
|
1791
|
+
int result;
|
1792
|
+
|
1793
|
+
assert(ref);
|
1794
|
+
|
1795
|
+
if (git_buf_join_n(&path, '/', 3, ref->owner->path_repository, GIT_REFLOG_DIR, ref->name) < 0)
|
1796
|
+
return -1;
|
1797
|
+
|
1798
|
+
result = git_path_isfile(git_buf_cstr(&path));
|
1799
|
+
git_buf_free(&path);
|
1800
|
+
|
1801
|
+
return result;
|
1802
|
+
}
|
1803
|
+
|
1804
|
+
int git_reference_is_branch(git_reference *ref)
|
1805
|
+
{
|
1806
|
+
assert(ref);
|
1807
|
+
|
1808
|
+
return git__prefixcmp(ref->name, GIT_REFS_HEADS_DIR) == 0;
|
1809
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,15 +5,16 @@
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
6
6
|
*/
|
7
7
|
|
8
|
-
#include "git2/remote.h"
|
9
8
|
#include "git2/config.h"
|
10
9
|
#include "git2/types.h"
|
10
|
+
#include "git2/oid.h"
|
11
11
|
|
12
12
|
#include "config.h"
|
13
13
|
#include "repository.h"
|
14
14
|
#include "remote.h"
|
15
15
|
#include "fetch.h"
|
16
16
|
#include "refs.h"
|
17
|
+
#include "pkt.h"
|
17
18
|
|
18
19
|
#include <regex.h>
|
19
20
|
|
@@ -130,6 +131,26 @@ int git_remote_load(git_remote **out, git_repository *repo, const char *name)
|
|
130
131
|
remote->url = git__strdup(val);
|
131
132
|
GITERR_CHECK_ALLOC(remote->url);
|
132
133
|
|
134
|
+
git_buf_clear(&buf);
|
135
|
+
if (git_buf_printf(&buf, "remote.%s.pushurl", name) < 0) {
|
136
|
+
error = -1;
|
137
|
+
goto cleanup;
|
138
|
+
}
|
139
|
+
|
140
|
+
error = git_config_get_string(&val, config, git_buf_cstr(&buf));
|
141
|
+
if (error == GIT_ENOTFOUND)
|
142
|
+
error = 0;
|
143
|
+
|
144
|
+
if (error < 0) {
|
145
|
+
error = -1;
|
146
|
+
goto cleanup;
|
147
|
+
}
|
148
|
+
|
149
|
+
if (val) {
|
150
|
+
remote->pushurl = git__strdup(val);
|
151
|
+
GITERR_CHECK_ALLOC(remote->pushurl);
|
152
|
+
}
|
153
|
+
|
133
154
|
git_buf_clear(&buf);
|
134
155
|
if (git_buf_printf(&buf, "remote.%s.fetch", name) < 0) {
|
135
156
|
error = -1;
|
@@ -179,7 +200,7 @@ int git_remote_save(const git_remote *remote)
|
|
179
200
|
if (git_repository_config__weakptr(&config, remote->repo) < 0)
|
180
201
|
return -1;
|
181
202
|
|
182
|
-
if (git_buf_printf(&buf, "remote.%s
|
203
|
+
if (git_buf_printf(&buf, "remote.%s.url", remote->name) < 0)
|
183
204
|
return -1;
|
184
205
|
|
185
206
|
if (git_config_set_string(config, git_buf_cstr(&buf), remote->url) < 0) {
|
@@ -187,6 +208,26 @@ int git_remote_save(const git_remote *remote)
|
|
187
208
|
return -1;
|
188
209
|
}
|
189
210
|
|
211
|
+
git_buf_clear(&buf);
|
212
|
+
if (git_buf_printf(&buf, "remote.%s.pushurl", remote->name) < 0)
|
213
|
+
return -1;
|
214
|
+
|
215
|
+
if (remote->pushurl) {
|
216
|
+
if (git_config_set_string(config, git_buf_cstr(&buf), remote->pushurl) < 0) {
|
217
|
+
git_buf_free(&buf);
|
218
|
+
return -1;
|
219
|
+
}
|
220
|
+
} else {
|
221
|
+
int error = git_config_delete(config, git_buf_cstr(&buf));
|
222
|
+
if (error == GIT_ENOTFOUND) {
|
223
|
+
error = 0;
|
224
|
+
}
|
225
|
+
if (error < 0) {
|
226
|
+
git_buf_free(&buf);
|
227
|
+
return -1;
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
190
231
|
if (remote->fetch.src != NULL && remote->fetch.dst != NULL) {
|
191
232
|
git_buf_clear(&buf);
|
192
233
|
git_buf_clear(&value);
|
@@ -238,6 +279,38 @@ const char *git_remote_url(git_remote *remote)
|
|
238
279
|
return remote->url;
|
239
280
|
}
|
240
281
|
|
282
|
+
int git_remote_set_url(git_remote *remote, const char* url)
|
283
|
+
{
|
284
|
+
assert(remote);
|
285
|
+
assert(url);
|
286
|
+
|
287
|
+
git__free(remote->url);
|
288
|
+
remote->url = git__strdup(url);
|
289
|
+
GITERR_CHECK_ALLOC(remote->url);
|
290
|
+
|
291
|
+
return 0;
|
292
|
+
}
|
293
|
+
|
294
|
+
const char *git_remote_pushurl(git_remote *remote)
|
295
|
+
{
|
296
|
+
assert(remote);
|
297
|
+
return remote->pushurl;
|
298
|
+
}
|
299
|
+
|
300
|
+
int git_remote_set_pushurl(git_remote *remote, const char* url)
|
301
|
+
{
|
302
|
+
assert(remote);
|
303
|
+
|
304
|
+
git__free(remote->pushurl);
|
305
|
+
if (url) {
|
306
|
+
remote->pushurl = git__strdup(url);
|
307
|
+
GITERR_CHECK_ALLOC(remote->pushurl);
|
308
|
+
} else {
|
309
|
+
remote->pushurl = NULL;
|
310
|
+
}
|
311
|
+
return 0;
|
312
|
+
}
|
313
|
+
|
241
314
|
int git_remote_set_fetchspec(git_remote *remote, const char *spec)
|
242
315
|
{
|
243
316
|
git_refspec refspec;
|
@@ -284,13 +357,33 @@ const git_refspec *git_remote_pushspec(git_remote *remote)
|
|
284
357
|
return &remote->push;
|
285
358
|
}
|
286
359
|
|
360
|
+
const char* git_remote__urlfordirection(git_remote *remote, int direction)
|
361
|
+
{
|
362
|
+
assert(remote);
|
363
|
+
|
364
|
+
if (direction == GIT_DIR_FETCH) {
|
365
|
+
return remote->url;
|
366
|
+
}
|
367
|
+
|
368
|
+
if (direction == GIT_DIR_PUSH) {
|
369
|
+
return remote->pushurl ? remote->pushurl : remote->url;
|
370
|
+
}
|
371
|
+
|
372
|
+
return NULL;
|
373
|
+
}
|
374
|
+
|
287
375
|
int git_remote_connect(git_remote *remote, int direction)
|
288
376
|
{
|
289
377
|
git_transport *t;
|
378
|
+
const char *url;
|
290
379
|
|
291
380
|
assert(remote);
|
292
381
|
|
293
|
-
|
382
|
+
url = git_remote__urlfordirection(remote, direction);
|
383
|
+
if (url == NULL )
|
384
|
+
return -1;
|
385
|
+
|
386
|
+
if (git_transport_new(&t, url) < 0)
|
294
387
|
return -1;
|
295
388
|
|
296
389
|
t->check_cert = remote->check_cert;
|
@@ -309,6 +402,10 @@ on_error:
|
|
309
402
|
|
310
403
|
int git_remote_ls(git_remote *remote, git_headlist_cb list_cb, void *payload)
|
311
404
|
{
|
405
|
+
git_vector *refs = &remote->transport->refs;
|
406
|
+
unsigned int i;
|
407
|
+
git_pkt *p = NULL;
|
408
|
+
|
312
409
|
assert(remote);
|
313
410
|
|
314
411
|
if (!remote->transport || !remote->transport->connected) {
|
@@ -316,7 +413,19 @@ int git_remote_ls(git_remote *remote, git_headlist_cb list_cb, void *payload)
|
|
316
413
|
return -1;
|
317
414
|
}
|
318
415
|
|
319
|
-
|
416
|
+
git_vector_foreach(refs, i, p) {
|
417
|
+
git_pkt_ref *pkt = NULL;
|
418
|
+
|
419
|
+
if (p->type != GIT_PKT_REF)
|
420
|
+
continue;
|
421
|
+
|
422
|
+
pkt = (git_pkt_ref *)p;
|
423
|
+
|
424
|
+
if (list_cb(&pkt->head, payload))
|
425
|
+
return GIT_EUSER;
|
426
|
+
}
|
427
|
+
|
428
|
+
return 0;
|
320
429
|
}
|
321
430
|
|
322
431
|
int git_remote_download(git_remote *remote, git_off_t *bytes, git_indexer_stats *stats)
|
@@ -331,7 +440,7 @@ int git_remote_download(git_remote *remote, git_off_t *bytes, git_indexer_stats
|
|
331
440
|
return git_fetch_download_pack(remote, bytes, stats);
|
332
441
|
}
|
333
442
|
|
334
|
-
int git_remote_update_tips(git_remote *remote
|
443
|
+
int git_remote_update_tips(git_remote *remote)
|
335
444
|
{
|
336
445
|
int error = 0;
|
337
446
|
unsigned int i = 0;
|
@@ -377,12 +486,12 @@ int git_remote_update_tips(git_remote *remote, int (*cb)(const char *refname, co
|
|
377
486
|
continue;
|
378
487
|
|
379
488
|
if (git_reference_create_oid(&ref, remote->repo, refname.ptr, &head->oid, 1) < 0)
|
380
|
-
|
489
|
+
goto on_error;
|
381
490
|
|
382
491
|
git_reference_free(ref);
|
383
492
|
|
384
|
-
if (
|
385
|
-
if (
|
493
|
+
if (remote->callbacks.update_tips != NULL) {
|
494
|
+
if (remote->callbacks.update_tips(refname.ptr, &old, &head->oid, remote->callbacks.data) < 0)
|
386
495
|
goto on_error;
|
387
496
|
}
|
388
497
|
}
|
@@ -429,6 +538,7 @@ void git_remote_free(git_remote *remote)
|
|
429
538
|
git__free(remote->push.src);
|
430
539
|
git__free(remote->push.dst);
|
431
540
|
git__free(remote->url);
|
541
|
+
git__free(remote->pushurl);
|
432
542
|
git__free(remote->name);
|
433
543
|
git__free(remote);
|
434
544
|
}
|
@@ -487,6 +597,11 @@ int git_remote_list(git_strarray *remotes_list, git_repository *repo)
|
|
487
597
|
}
|
488
598
|
|
489
599
|
git_vector_free(&list);
|
600
|
+
|
601
|
+
/* cb error is converted to GIT_EUSER by git_config_foreach */
|
602
|
+
if (error == GIT_EUSER)
|
603
|
+
error = -1;
|
604
|
+
|
490
605
|
return error;
|
491
606
|
}
|
492
607
|
|
@@ -525,3 +640,10 @@ void git_remote_check_cert(git_remote *remote, int check)
|
|
525
640
|
|
526
641
|
remote->check_cert = check;
|
527
642
|
}
|
643
|
+
|
644
|
+
void git_remote_set_callbacks(git_remote *remote, git_remote_callbacks *callbacks)
|
645
|
+
{
|
646
|
+
assert(remote && callbacks);
|
647
|
+
|
648
|
+
memcpy(&remote->callbacks, callbacks, sizeof(git_remote_callbacks));
|
649
|
+
}
|