summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix MAX 32 bit build problem described in libgit2/libgit2#2917ntk/macosx_build_cherrypickedJeff Hostetler2015-02-201-1/+1
|
* Merge pull request #2907 from jasonhaslam/git_packfile_unpack_raceCarlos Martín Nieto2015-02-201-2/+9
|\ | | | | Fix race in git_packfile_unpack.
| * Fix race in git_packfile_unpack.Jason Haslam2015-02-141-2/+9
| | | | | | | | | | | | Increment refcount of newly added cache entries just like existing entries looked up from the cache. Otherwise the new entry can be evicted from the cache and destroyed while it's still in use.
* | filter: take `temp_buf` in `git_filter_options`Edward Thomson2015-02-193-13/+9
| |
* | filter: add `git_filter_list__load_ext`Edward Thomson2015-02-193-16/+32
| | | | | | | | | | Refactor `git_filter_list__load_with_attr_reader` into `git_filter_list__load_ext`, which takes a `git_filter_options`.
* | git_filter_opt_t -> git_filter_flag_tEdward Thomson2015-02-198-19/+19
| | | | | | | | | | For consistency with the rest of the library, where an opt is an options *structure*.
* | buffer: introduce git_buf_attach_notownedEdward Thomson2015-02-196-37/+35
| | | | | | | | | | | | Provide a convenience function that creates a buffer that can be provided to callers but will not be freed via `git_buf_free`, so the buffer creator maintains the allocation lifecycle of the buffer's contents.
* | checkout: let the stream writer close the fdEdward Thomson2015-02-181-2/+1
| |
* | filter streams: base -> parentEdward Thomson2015-02-181-8/+8
| |
* | git_writestream: from git_filter_streamEdward Thomson2015-02-182-30/+30
| |
* | checkout: maintain temporary buffer for filtersEdward Thomson2015-02-173-12/+27
| | | | | | | | | | Let the filters use the checkout data's temporary buffer, instead of having to allocate new buffers each time.
* | checkout: stream the blob into the filtersEdward Thomson2015-02-172-39/+84
| | | | | | | | Use the new streaming filter API during checkout.
* | filters: stream internallyEdward Thomson2015-02-171-73/+81
| | | | | | | | | | Migrate the `git_filter_list_apply_*` functions over to using the new filter streams.
* | filters: introduce streaming filtersEdward Thomson2015-02-171-7/+231
| | | | | | | | | | | | | | Add structures and preliminary functions to take a buffer, file or blob and write the contents in chunks through an arbitrary number of chained filters, finally writing into a user-provided function accept the contents.
* | Remove extra semicolon outside of a functionStefan Widgren2015-02-1520-22/+22
| | | | | | | | | | Without this change, compiling with gcc and pedantic generates warning: ISO C does not allow extra ‘;’ outside of a function.
* | Merge pull request #2831 from ethomson/merge_lockCarlos Martín Nieto2015-02-157-59/+172
|\ \ | | | | | | merge: lock index during the merge (not just checkout)
| * | indexwriter: an indexwriter for repo operationsEdward Thomson2015-02-146-92/+79
| | | | | | | | | | | | | | | Provide git_indexwriter_init_for_operation for the common locking pattern in merge, rebase, revert and cherry-pick.
| * | merge-like operations: lock index while workingEdward Thomson2015-02-143-11/+67
| | |
| * | merge: lock the index at the start of the mergeEdward Thomson2015-02-141-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always lock the index when we begin the merge, before we write any of the metdata files. This prevents a race where another client may run a commit after we have written the MERGE_HEAD but before we have updated the index, which will produce a merge commit that is treesame to one parent. The merge will finish and update the index and the resultant commit would not be a merge at all.
| * | checkout: introduce GIT_CHECKOUT_DONT_WRITE_INDEXEdward Thomson2015-02-141-1/+4
| | |
| * | git_indexwriter: lock then write the indexEdward Thomson2015-02-142-29/+79
| |/ | | | | | | | | | | Introduce `git_indexwriter`, to allow us to lock the index while performing additional operations, then complete the write (or abort, unlocking the index).
* | Merge pull request #2895 from ethomson/alloc_overflowCarlos Martín Nieto2015-02-1554-296/+791
|\ \ | | | | | | allocations: test for overflow of requested size
| * | pack-objects: unlock the cache on integer overflowEdward Thomson2015-02-131-4/+5
| | |
| * | integer overflow: use compiler intrinsics if supportedEdward Thomson2015-02-132-0/+20
| | | | | | | | | | | | | | | gcc and clang support __builtin_add_overflow, use it whenever possible, falling back to our naive routines.
| * | filebuf: use an int for return checkEdward Thomson2015-02-131-2/+2
| | |
| * | Make our overflow check look more like gcc/clang'sEdward Thomson2015-02-1335-341/+342
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make our overflow checking look more like gcc and clang's, so that we can substitute it out with the compiler instrinsics on platforms that support it. This means dropping the ability to pass `NULL` as an out parameter. As a result, the macros also get updated to reflect this as well.
| * | Update `khash.h` to pull request 42Edward Thomson2015-02-124-5/+11
| | | | | | | | | | | | | | | https://github.com/attractivechaos/klib/pull/42/files introduces `kreallocarray`. Hook that up as our `git__reallocarray`.
| * | khash: update to klib f28c067Edward Thomson2015-02-121-24/+33
| | |
| * | Introduce git__add_sizet_overflow and friendsEdward Thomson2015-02-124-32/+83
| | | | | | | | | | | | | | | Add some helper functions to check for overflow in a type-specific manner.
| * | p_read: ensure requested len is ssize_tEdward Thomson2015-02-123-1/+23
| | | | | | | | | | | | | | | Ensure that the given length to `p_read` is of ssize_t and ensure that callers test the return as if it were an `ssize_t`.
| * | Use `size_t` to hold size of arraysEdward Thomson2015-02-124-14/+30
| | | | | | | | | | | | | | | | | | Use `size_t` to hold the size of arrays to ease overflow checking, lest we check for overflow of a `size_t` then promptly truncate by packing the length into a smaller type.
| * | overflow checking: don't make callers set oomEdward Thomson2015-02-1211-43/+15
| | | | | | | | | | | | | | | | | | Have the ALLOC_OVERFLOW testing macros also simply set_oom in the case where a computation would overflow, so that callers don't need to.
| * | git_buf_grow_by: increase buf asize incrementallyEdward Thomson2015-02-125-15/+32
| | | | | | | | | | | | | | | Introduce `git_buf_grow_by` to incrementally increase the size of a `git_buf`, performing an overflow calculation on the growth.
| * | git__*allocarray: safer realloc and mallocEdward Thomson2015-02-127-23/+32
| | | | | | | | | | | | | | | | | | | | | | | | Introduce git__reallocarray that checks the product of the number of elements and element size for overflow before allocation. Also introduce git__mallocarray that behaves like calloc, but without the `c`. (It does not zero memory, for those truly worried about every cycle.)
| * | odb__hashlink: check st.st_size before castingEdward Thomson2015-02-121-9/+9
| | |
| * | allocations: test for overflow of requested sizeEdward Thomson2015-02-1247-117/+488
| | | | | | | | | | | | | | | Introduce some helper macros to test integer overflow from arithmetic and set error message appropriately.
* | | rebase: `CHECKOUT_SAFE` instead of `FORCE`Edward Thomson2015-02-131-8/+12
| | | | | | | | | | | | | | | Switch to a standard branch-switching pattern of a `SAFE` checkout, then updating `HEAD`.
* | | rebase: allow `NULL` branch to indicate `HEAD`Edward Thomson2015-02-131-2/+16
| | | | | | | | | | | | | | | Don't require the branch to rebase, if given `NULL`, simply look up `HEAD`.
* | | rebase: provide NULL `exec` on non-EXEC operationsEdward Thomson2015-02-131-9/+28
| |/ |/| | | | | | | Users may want to try to pay attention to the `exec` field on all rebase operations.
* | win32: limit the mode to `_wopen`/`_waccess`Edward Thomson2015-02-131-3/+11
| | | | | | | | | | | | | | | | Win32 generally ignores Unix-like mode bits that don't make any sense on the platform (eg `0644` makes no sense to Windows). But WINE complains loudly when presented with POSIXy bits. Remove them. (Thanks @phkelley)
* | Merge pull request #2883 from urkud/reget-reader-pointerCarlos Martín Nieto2015-02-131-0/+1
|\ \ | | | | | | Reinit `reader` pointer after reading included config file
| * | Reinit `reader` pointer after reading included config fileYury G. Kudryashov2015-02-131-0/+1
| | | | | | | | | | | | | | | | | | Fixes #2869. If included file includes more files, it may reallocate cfg_file->readers, hence invalidate not only `r` pointer, but `result` pointer as well.
* | | Merge pull request #2897 from leoyanggit/fix_fileop_warningCarlos Martín Nieto2015-02-131-1/+1
|\ \ \ | | | | | | | | Fix build warning on Android
| * | | Fix build warning on AndroidLeo Yang2015-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Always do a time_t cast on st_mtime. st_mtime on Android is not the type of time_t but has the same meaning which is the number of seconds past epoch.
* | | | Check rebase options version on public entry pointsjamill/rebase_opt_ver_checkJameson Miller2015-02-121-1/+3
| |_|/ |/| |
* | | Merge pull request #2866 from ethomson/checkout_perf2Carlos Martín Nieto2015-02-1212-125/+318
|\ \ \ | | | | | | | | Checkout performance
| * | | remove some unused warningsEdward Thomson2015-02-041-3/+2
| | | |
| * | | checkout: hold seen dir paths in a mapEdward Thomson2015-02-043-49/+76
| | | |
| * | | attr_session: keep a temp bufferEdward Thomson2015-02-043-3/+9
| | | |
| * | | checkout: cache system attributes file locationEdward Thomson2015-02-043-17/+65
| | | |