summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | reset: remove reflog message overrideCarlos Martín Nieto2015-03-032-9/+6
| | | | | | | | | | | | | | | | | | | | This function is meant to simulate what git does in the reset command, so we should include the reflog message in that.
* | | | Remove the signature from ref-modifying functionsCarlos Martín Nieto2015-03-0316-148/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The signature for the reflog is not something which changes dynamically. Almost all uses will be NULL, since we want for the repository's default identity to be used, making it noise. In order to allow for changing the identity, we instead provide git_repository_set_ident() and git_repository_ident() which allow a user to override the choice of signature.
* | | | Merge pull request #2908 from ethomson/safe_createCarlos Martín Nieto2015-03-034-8/+14
|\ \ \ \ | | | | | | | | | | Allow checkout to handle newly cloned repositories, remove `GIT_CHECKOUT_SAFE_CREATE`
| * | | | checkout: remove `GIT_CHECKOUT_SAFE_CREATE` as a strategyEdward Thomson2015-02-272-9/+8
| | | | |
| * | | | checkout: upgrade to `SAFE_CREATE` when no index fileEdward Thomson2015-02-271-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the repository does not contain an index, emulate git's behavior and upgrade to `SAFE_CREATE`. This allows us to check out repositories created with `git clone --no-checkout`.
| * | | | cherrypick, revert: drop unnecessary SAFE_CREATEEdward Thomson2015-02-272-2/+2
| | |_|/ | |/| |
* | | | branch: do capture the error codeCarlos Martín Nieto2015-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | We want to ignore GIT_ENOTFOUND, but for that we need to capture the error code from the reflog deletion.
* | | | Merge pull request #2937 from git-up/branch_delete_reflogCarlos Martín Nieto2015-03-031-1/+6
|\ \ \ \ | | | | | | | | | | git_branch_delete() should ignore errors from non-existing reflogs
| * | | | git_branch_delete() should ignore errors from non-existing reflogsPierre-Olivier Latour2015-03-021-1/+6
| | |_|/ | |/| |
* | | | win32: add the patch level to the .dll fileversionEdward Thomson2015-03-021-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Win32 DLLs have four fields for the version number (major, minor, teeny, patch). If a consumer wants to build a custom DLL, it may be useful to set the patchlevel version number in the DLL. This value only affects the DLL version number, it does not affect the resultant "version number", which remains major.minor.teeny.
* | | rebase: check alloc resultEdward Thomson2015-02-271-0/+1
|/ /
* | 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.