src


Log

Author Commit Date CI Message
Russell Belfer 3865f7f6 2012-12-27T23:23:12 Invalid ref name normalization leaked memory When normalizing a reference name, if there is an error because the name is invalid, then the memory allocated for storing the name could be leaked if the caller was not careful and assumed that the error return code meant that no allocation had occurred. This fixes that by explicitly deallocating the reference name buffer if there is an error in normalizing the name.
Russell Belfer f616a36b 2012-12-27T22:25:52 Make spoolandsort a pushable iterator behavior An earlier change to `git_diff_from_iterators` introduced a memory leak where the allocated spoolandsort iterator was not returned to the caller and thus not freed. One proposal changes all iterator APIs to use git_iterator** so we can reallocate the iterator at will, but that seems unexpected. This commit makes it so that an iterator can be changed in place. The callbacks are isolated in a separate structure and a pointer to that structure can be reassigned by the spoolandsort extension. This means that spoolandsort doesn't create a new iterator; it just allocates a new block of callbacks (along with space for its own extra data) and swaps that into the iterator. Additionally, since spoolandsort is only needed to switch the case sensitivity of an iterator, this simplifies the API to only take the ignore_case boolean and to be a no-op if the iterator already matches the requested case sensitivity.
nulltoken 50a762a5 2012-12-26T12:03:07 path: Teach UNC paths to git_path_dirname_r() Fix libgit2/libgit2sharp#256
Michael Schubert 7382551f 2012-12-22T16:29:59 Fix -Wmaybe-uninitialized warning
Vicent Martí 2052e3c0 2012-12-21T10:32:23 Merge pull request #1163 from barrbrain/check-exists-before-write odb: check if object exists before writing
David Michael Barr 4d185dd9 2012-12-19T14:30:06 odb: check if object exists before writing Update the procondition of git_odb_backend::write. It may now be assumed that the object has already been hashed.
Edward Thomson 7fcec834 2012-12-11T22:31:21 fetchhead reading/iterating
Vicent Martí 5c3c86b0 2012-12-19T13:43:50 Merge pull request #1150 from schu/fix-netops-ssl netops: on SSL teardown only send shutdown alert
Vicent Marti 08a325a3 2012-12-19T12:52:14 reflog: Actual error handling
Vicent Marti 8a810441 2012-12-19T12:48:12 reflog: Rename error handling
Rick Bradley 9ec50c25 2012-12-18T18:15:21 Make goto cleanup more consistent There may be some question about whether this is likely to be needed at all, but that's above my head at the moment.
Rick Bradley 3a6420f3 2012-12-18T17:46:18 don't deref before we've asserted just sayin'.
Rick Bradley ed4e887d 2012-12-18T16:09:57 Also, whitespace. I was totally flaunting @ben's 3-space tab advice.
Rick Bradley 33f169e2 2012-12-18T16:07:18 Improve comment text This looked wrong to me. I *think* this is more appropriate commentary.
Vicent Martí e62171e2 2012-12-17T11:10:25 Merge pull request #1151 from arrbee/fix-diff-constructor-names Fix diff constructor names
Russell Belfer 56c72b75 2012-12-17T11:00:53 Fix diff constructor name order confusion The diff constructor functions had some confusing names, where the "old" side of the diff was coming after the "new" side. This reverses the order in the function name to make it less confusing. Specifically... * git_diff_index_to_tree becomes git_diff_tree_to_index * git_diff_workdir_to_index becomes git_diff_index_to_workdir * git_diff_workdir_to_tree becomes git_diff_tree_to_workdir
Michael Schubert f2b00cbd 2012-12-17T19:35:40 netops: on SSL teardown only send shutdown alert According to man 3 SSL_shutdown / TLS, "If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to SSL_shutdown() is sufficient." Currently, an unidirectional shutdown is enough, since gitno_ssl_teardown is called by gitno_close only. Do so to avoid further errors (by misbehaving peers for example). Fixes #1129.
Michael Schubert 9c8dbc88 2012-12-17T19:18:34 netops: properly handle GITNO_CONNECT_SSL_NO_CHECK_CERT Don't return an error just because GITNO_CONNECT_SSL_NO_CHECK_CERT is set.
Vicent Martí 0d10e79d 2012-12-17T10:13:36 Merge pull request #1149 from nulltoken/topic/blob_isbinary Introduce git_blob_is_binary()
nulltoken a3337f10 2012-12-17T15:15:20 blob: introduce git_blob_is_binary()
nulltoken bdb94c21 2012-12-17T12:20:52 Fix MSVC compilation warnings
Michael Schubert 101659be 2012-12-17T15:50:12 Fix -Wmaybe-uninitialized warning
Ben Straub 2a2d1ab0 2012-12-15T14:30:20 Cloning empty repos: only allow missing target for HEAD
Ben Straub 28abb187 2012-12-14T14:16:10 Stop returning incorrect error message
Ben Straub b524fe1a 2012-12-14T08:35:59 Local Only ignore ENOTFOUNDs when adding corrupted refs
Ben Straub 850b1edf 2012-12-13T12:55:28 Allow clone to handle empty repos
Ben Straub b9e7e2b4 2012-12-14T13:46:45 Move non-options back out of options struct
Ben Straub 18b2d560 2012-12-14T13:03:59 Deploy git_clone_options; remove git_clone_bare
Vicent Marti b0b9fd32 2012-12-14T02:41:53 Merge remote-tracking branch 'origin/clone-auth' into development
Jameson Miller f0a2def5 2012-12-13T18:08:45 Fix comment so it doesn't go over 100 chars
Jameson Miller cb2ace69 2012-12-13T12:51:23 Transport resolution on Win32 should handle absolute local paths
Ben Straub 24393ea6 2012-12-13T09:14:56 Stop premature remote freeing when cloning
Ben Straub 7c353afd 2012-12-13T08:47:29 Define constant for default fetch spec
Ben Straub 44f36f6e 2012-12-12T19:48:44 Convert clone to use dangling remotes
Edward Thomson e759b072 2012-12-12T17:54:12 don't walk off the end of the index
Ben Straub b914e17d 2012-12-12T12:23:24 API to set a dangling remote's repository
Ben Straub a71c27cc 2012-12-12T12:15:25 Allow creation of dangling remotes
Nguyễn Thái Ngọc Duy 08f3d6ca 2012-12-12T19:23:05 tree cache: loosen negative entry count check While C Git has been writing entry count -1 (ie. never other negative numbers) as invalid since day 1, it accepts all negative entry counts as invalid. JGit follows the same rule. libgit2 should also follow, or the index that works with C Git or JGit may someday be rejected by libgit2. Other reimplementations like dulwich and grit have not bothered with parsing or writing tree cache.
Russell Belfer 91e7d263 2012-12-10T15:29:44 Fix iterator reset and add reset ranges The `git_iterator_reset` command has not been working in all cases particularly when there is a start and end range. This fixes it and adds tests for it, and also extends it with the ability to update the start/end range strings when an iterator is reset.
Russell Belfer 9950d27a 2012-12-06T13:26:58 Clean up iterator APIs This removes the need to explicitly pass the repo into iterators where the repo is implied by the other parameters. This moves the repo to be owned by the parent struct. Also, this has some iterator related updates to the internal diff API to lay the groundwork for checkout improvements.
Ben Straub 4cbe9a1b 2012-12-10T11:48:20 Add git_cred_acquire_cb payload to winhttp transport
Ben Straub 59bccf33 2012-12-10T11:11:01 Add a payload param to git_cred_acquire_cb Fixes #1128.
Vicent Martí 22bcf86c 2012-12-10T06:55:59 Merge pull request #1126 from carlosmn/indexer-buffer indexer: move the temporary buffers into the indexer object
Justin Spahr-Summers 1d009603 2012-12-09T02:40:16 orite C89
Justin Spahr-Summers 2bb1c7aa 2012-12-09T02:37:33 Treat git_mutex_lock as successful when threads are disabled
Justin Spahr-Summers a35b3864 2012-12-09T02:31:39 Always check the result of git_mutex_lock
Justin Spahr-Summers c3320aca 2012-12-09T02:22:50 git__mwindow_mutex needs to be initialized even with pthreads This could also use PTHREAD_MUTEX_INITIALIZER, but a dynamic initializer seems like a more portable concept, and we won't need another #define on top of git_mutex_init()
Carlos Martín Nieto 6481a68d 2012-12-07T19:23:16 indexer: move the temporary buffers into the indexer object Storing 4kB or 8kB in the stack is not very gentle. As this part has to be linear, put the buffer into the indexer object so we allocate it once in the heap.
Vicent Martí 0249a503 2012-12-07T09:40:21 Merge pull request #1091 from carlosmn/stream-object Indexer speedup with large objects
Carlos Martín Nieto f1c75b94 2012-12-07T15:16:41 tree: relax the filemode parser There are many different broken filemodes in the wild so we need to protect against them and give something useful up the chain. Don't fail when reading a tree from the ODB but normalize the mode as best we can. As 664 is no longer a mode that we consider to be valid and gets normalized to 644, we can stop accepting it in the treebuilder. The library won't expose it to the user, so any invalid modes are a bug.
Russell Belfer 32770c52 2012-12-05T13:56:32 Fix diff header comments and missing const Based on the recent work to wrap diff in objective-git, this includes a fix for a missing const and a number of clarifications of the documentation.
Vicent Marti bf192cdb 2012-12-05T20:56:27 versions: MSVC build fixes
Vicent Marti 43efaabd 2012-12-05T20:54:03 common: Silly vmg.
Vicent Marti 8ff66112 2012-12-05T20:50:19 common: Silly MSVC
Vicent Martí e05ca13f 2012-12-05T11:47:19 Merge pull request #1115 from ben/struct-versions Version info for public structs
Edward Thomson 05fc823f 2012-12-04T16:59:34 indentation fix
Edward Thomson aab8f5af 2012-12-04T16:40:09 hey don't stomp on my memory!
Edward Thomson b2414661 2012-11-28T22:43:55 status should ignore conflicts entries in the index
Ben Straub ee1c33b1 2012-12-03T12:45:15 Don't unconstify when casting
Ben Straub de70aea6 2012-12-03T12:41:50 Remove GIT_SIGNATURE_VERSION and friends
Vicent Martí 3368c520 2012-12-03T07:38:58 Merge pull request #1112 from barrbrain/odb-pack-read-header odb-pack: resurrect pack_backend__read_header
Vicent Marti 7ea3a79f 2012-12-03T16:04:39 Vade retro satana
David Michael Barr bfb8bcc1 2012-12-03T10:36:32 odb-pack: resurrect pack_backend__read_header
David Michael Barr 44f9f547 2012-11-30T13:33:30 pack: add git_packfile_resolve_header To paraphrase @peff: You can get both size and type from a packed object reasonably cheaply. If you have: * An object that is not a delta; both type and size are available in the packfile header. * An object that is a delta. The packfile type will be OBJ_*_DELTA, and you have to resolve back to the base to find the real type. That means potentially a lot of packfile index lookups, but each one is relatively cheap. For the size, you inflate the first few bytes of the delta, whose header will tell you the resulting size of applying the delta to the base. For simplicity, we just decompress the whole delta for now.
nulltoken cc146626 2012-11-19T19:00:46 revparse: Deploy EINVALIDSPEC usage
nulltoken bc05f30c 2012-11-19T18:49:25 object: refine git_object_peel() error report
nulltoken 18d6f120 2012-11-12T15:55:38 tag: Deploy EINVALIDSPEC usage
nulltoken 80212ecb 2012-11-12T16:49:29 reflog: Deploy EINVALIDSPEC usage
nulltoken 80d9d1df 2012-11-12T15:42:15 refs: Deploy EINVALIDSPEC usage
nulltoken 83458bb7 2012-11-12T14:06:13 refs: Fix error clearing
nulltoken 032ba9e4 2012-11-12T12:32:31 remote: deploy EINVALIDSPEC usage
Ben Straub 0ab3a2ab 2012-11-30T20:34:50 Deploy GIT_INIT_STRUCTURE
David Michael Barr d1b6ea8a 2012-12-01T14:50:20 delta-apply: add git__delta_read_header
Ben Straub c7231c45 2012-11-30T16:31:42 Deploy GITERR_CHECK_VERSION
Ben Straub 4ec197f3 2012-11-30T12:52:42 Deploy GIT_SIGNATURE_INIT
Ben Straub 10711769 2012-11-29T20:47:37 Deploy versioned git_transport structure
Ben Straub 79cfa20d 2012-11-29T20:12:59 Deploy GIT_STATUS_OPTIONS_INIT
Ben Straub b4d13652 2012-11-29T20:06:23 Deploy GIT_REPOSITORY_INIT_OPTIONS_INIT
Ben Straub 9267ff58 2012-11-29T20:01:24 Deploy GIT_REMOTE_CALLBACKS_INIT
Ben Straub 55f6f21b 2012-11-29T19:59:18 Deploy versioned git_odb_backend structure
Ben Straub ca901e7b 2012-11-29T15:16:19 Deploy GIT_DIFF_FIND_OPTIONS_INIT
Ben Straub 2f8d30be 2012-11-29T15:05:04 Deploy GIT_DIFF_OPTIONS_INIT
Ben Straub 69177621 2012-11-29T14:07:50 Deploy git_config_backend version
Ben Straub b81aa2f1 2012-11-29T14:06:40 Deploy GIT_CHECKOUT_OPTS_INIT
Carlos Martín Nieto 3908c254 2012-11-30T17:25:50 indexer: correctly deal with objects larger than the window size A mmap-window is not guaranteed to give you the whole object, but the indexer currently assumes so. Loop asking for more data until we've successfully CRC'd all of the packed data.
Carlos Martín Nieto 5a3ad89d 2012-11-20T07:03:56 indexer: make use of streaming also for deltas Up to now, deltas needed to be enterily in the packfile, and we tried to decompress then in their entirety over and over again. Adjust the logic so we read them as they come, just as we do for full objects. This also allows us to simplify the logic and have less nested code. The delta resolving phase still needs to decompress the whole object into memory, as there is not yet any streaming delta-apply support, but it helps in speeding up the downloading process and reduces the amount of memory allocations we need to do.
Carlos Martín Nieto f56f8585 2012-11-19T22:23:16 indexer: use the packfile streaming API The new API allows us to read the object bit by bit from the packfile, instead of needing it all at once in the packfile. This also allows us to hash the object as it comes in from the network instead of having to try to read it all and failing repeatedly for larger objects. This is only the first step, but it already shows huge improvements when dealing with objects over a few megabytes in size. It reduces the memory needs in some cases, but delta objects still need to be completely in memory and the old inefficent method is still used for that.
Carlos Martín Nieto 46635339 2012-11-19T22:22:33 pack: introduce a streaming API for raw objects This allows us to take objects from the packfile as a stream instead of having to keep it all in memory.
Carlos Martín Nieto da820437 2012-11-30T15:26:45 graph: plug leak
Carlos Martín Nieto 9ff07c24 2012-11-30T15:17:05 buf test: make sure we always set the bom variable
Russell Belfer f684970a 2012-11-29T22:53:34 Merge pull request #1108 from libgit2/ahead-behind-count Add API to calculate ahead/behind count
Scott J. Goldman bdf3e6df 2012-11-29T17:34:41 Fix error condition typo
Russell Belfer d5e44d84 2012-11-29T17:02:27 Fix function name and add real error check `revwalk.h:commit_lookup()` -> `git_revwalk__commit_lookup()` and make `git_commit_list_parse()` do real error checking that the item in the list is an actual commit object. Also fixed an apparent typo in a test name.
Vicent Martí f1e5c506 2012-11-29T12:18:05 Merge pull request #1110 from libgit2/features/push_rebased Push! By schu, phkelley, and congyiwu
Philip Kelley 4a6621fd 2012-11-29T08:35:21 Leverage the min macro from util.h
Philip Kelley 6762fe08 2012-11-29T08:29:26 Remove casts of return values of type void *
Philip Kelley ac22d08f 2012-11-29T08:22:15 Remove git_object_oid2type
Vicent Martí e2934db2 2012-11-29T02:05:46 Merge pull request #1090 from arrbee/ignore-invalid-by-default Ignore invalid entries by default
Vicent Martí ee06fec5 2012-11-29T01:29:50 Merge pull request #1083 from nulltoken/fix/tracking Fix git_branch_tracking() for branches with empty merge and/or remote config entries
Scott J. Goldman b994bfe3 2012-11-28T18:48:22 graph.c: prune includes