summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
| | | |
| * | | attrcache: don't re-read attrs during checkoutEdward Thomson2015-02-0310-59/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During checkout, assume that the .gitattributes files aren't modified during the checkout. Instead, create an "attribute session" during checkout. Assume that attribute data read in the same checkout "session" hasn't been modified since the checkout started. (But allow subsequent checkouts to invalidate the cache.) Further, cache nonexistent git_attr_file data even when .gitattributes files are not found to prevent re-scanning for nonexistent files.
* | | | Merge pull request #2862 from ↵Carlos Martín Nieto2015-02-121-0/+9
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | jeffhostetler/jeffhostetler/bug/branch_create_after_namespace Remove stale reflog namespace directory before branch creation
| * | | | Fix branch creation when branch name matches namespace of previously deleted ↵Jeff Hostetler2015-02-031-0/+9
| |/ / / | | | | | | | | | | | | branch
* | | | Merge pull request #2880 from ethomson/mkdir_rootCarlos Martín Nieto2015-02-122-17/+20
|\ \ \ \ | | | | | | | | | | Ensure we can make a repo at the root of the filesystem
| * | | | mkdir: respect the root pathEdward Thomson2015-02-051-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Don't try to strip trailing paths from the root directory on Windows (trying to create `C:` will fail).
| * | | | stat: don't remove trailing '/' from root on win32Edward Thomson2015-02-051-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `p_stat` calls `git_win32_path_from_utf8`, which canonicalizes the path. Do not further try to modify the path, else we trim the trailing slash from a root directory and try to access `C:` instead of `C:/`.
* | | | | Credit utf8proc for utf8 iteratorEdward Thomson2015-02-101-0/+25
| |_|_|/ |/| | |
* | | | repository: parse init.templatedir as a pathcmn/template-pathCarlos Martín Nieto2015-02-061-1/+2
|/ / / | | | | | | | | | | | | This is a path so we must use the path getter so we get the tilde expansion done.
* | | Merge pull request #2867 from ethomson/8dot3Edward Thomson2015-02-051-1/+2
|\ \ \ | | | | | | | | Handle 8dot3 filenames being disabled on Win32
| * | | win32: cleanup 8.3 disabled testsEdward Thomson2015-02-031-1/+2
| | | |
| * | | Fix test failures when 8.3 is disabledLinquize2015-01-311-1/+1
| |/ /
* | | hash_generic: __extension__ keyword for pedantryEdward Thomson2015-02-041-1/+1
| | |
* | | bswap: remove unused bswapEdward Thomson2015-02-032-98/+0
|/ /
* | Merge pull request #2819 from libgit2/cmn/config-get-pathEdward Thomson2015-01-261-0/+41
|\ \ | | | | | | config: add parsing and getter for paths
| * | config: add parsing and getter for pathscmn/config-get-pathCarlos Martín Nieto2015-01-141-0/+41
| |/