- 09 Feb, 2022 7 commits
-
-
We have our own temporary file creation function now in `git_futils_mktmp`, remove the others since they may be terrible on some platforms.
Edward Thomson committed -
Edward Thomson committed
-
`mktemp` on mingw is exceedingly deficient, using a single monotonically increasing alphabetic character and the pid. We need to use our own random number generator for temporary filenames.
Edward Thomson committed -
Edward Thomson committed
-
Introduce `git_rand`, a PRNG based on xoroshiro256**, a fast, all-purpose pseudo-random number generator: https://prng.di.unimi.it The PRNG will be seeded by the system's entropy store when possible, falling back to current time and system data (pid, uptime, etc). Inspiration for this was taken from libressl, but since our PRNG is not used for cryptographic purposes (and indeed currently only generates a unique temp file name that is written in a protected directory), this should be more than sufficient. Our implementation of xoroshiro256** was taken almost strictly from the original author's sources, but was tested against PractRand to ensure that there were no foolish mistranslations: ``` RNG_test using PractRand version 0.94 RNG = RNG_stdin64, seed = unknown test set = core, folding = standard (64 bit) rng=RNG_stdin64, seed=unknown length= 256 megabytes (2^28 bytes), time= 2.9 seconds no anomalies in 210 test result(s) rng=RNG_stdin64, seed=unknown length= 512 megabytes (2^29 bytes), time= 6.2 seconds no anomalies in 226 test result(s) rng=RNG_stdin64, seed=unknown length= 1 gigabyte (2^30 bytes), time= 12.7 seconds no anomalies in 243 test result(s) rng=RNG_stdin64, seed=unknown length= 2 gigabytes (2^31 bytes), time= 25.4 seconds no anomalies in 261 test result(s) rng=RNG_stdin64, seed=unknown length= 4 gigabytes (2^32 bytes), time= 50.6 seconds no anomalies in 277 test result(s) rng=RNG_stdin64, seed=unknown length= 8 gigabytes (2^33 bytes), time= 104 seconds no anomalies in 294 test result(s) ```
Edward Thomson committed -
push: Prepare pack before sending pack header.
Edward Thomson committed -
odb: check for write failures
Edward Thomson committed
-
- 08 Feb, 2022 2 commits
-
-
Colin Stolley committed
-
Co-authored-by: Edward Thomson <ethomson@github.com>
Colin Stolley committed
-
- 07 Feb, 2022 2 commits
-
-
Edward Thomson committed
-
For large pushes, preparing the pack can take a while. Currently we send the pack header first, followed by preparing the pack and then finally sending the pack. Unfortunately github.com will terminate a git-receive-pack command over http if it is idle for more than 10 seconds. This is easily exceeded for a large push, and so the push is rejected with a Broken Pipe error. This patch moves the pack preparation ahead of sending the pack header, so that the timeout is avoided. prepare_pack() can be called multiple times but will only do the work once, so the original PREPARE_PACK call inside git_packbuilder_foreach() remains.
Colin Stolley committed
-
- 06 Feb, 2022 1 commit
-
-
SHA256: early preparation
Edward Thomson committed
-
- 03 Feb, 2022 5 commits
-
-
revparse: support bare '@'
Edward Thomson committed -
C90: add inline macro to xdiff and mbedtls
Edward Thomson committed -
Peter Pettersson committed
-
merge: comment conflicts lines in MERGE_MSG
Edward Thomson committed -
merge: support zdiff3 conflict styles
Edward Thomson committed
-
- 31 Jan, 2022 7 commits
-
-
ci: improve the name in CI runs
Edward Thomson committed -
Edward Thomson committed
-
git has started adding comment markers to its conflict lines in MERGE_MSG. Match that behavior.
Edward Thomson committed -
A bare '@' revision syntax represents HEAD. Support it as such.
Edward Thomson committed -
Disabling setting `CMAKE_FIND_LIBRARY_SUFFIXES` on Apple platforms.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
- 30 Jan, 2022 6 commits
-
-
Edward Thomson committed
-
Peter Pettersson committed
-
Peter Pettersson committed
-
refs: Speed up packed lookups.
Edward Thomson committed -
Edward Thomson committed
-
Update to the xdiff used in git v2.35.0, with updates to our build configuration to ignore the sort of warnings that we normally care about (signed/unsigned mismatch, unused, etc.) Any git-specific abstraction bits are now redefined for our use in `git-xdiff.h`. It is a (wildly optimistic) hope that we can use that indirection layer to standardize on a shared xdiff implementation.
Edward Thomson committed
-
- 28 Jan, 2022 9 commits
-
-
Deprecate the `git_packfile_hash` function. Callers should use the new `git_packfile_name` function which provides a unique packfile name.
Edward Thomson committed -
The index's checksum is not an object ID, so we should not use the `git_oid` type. Use a byte array for checksum calculation and storage. Deprecate the `git_indexer_hash` function. Callers should use the new `git_indexer_name` function which provides a unique packfile name.
Edward Thomson committed -
The index's checksum is not an object ID, so we should not use the `git_oid` type. Use a byte array for checksum calculation and storage. Deprecate the `git_index_checksum` function without a replacement. This is an abstraction that callers should not care about (and indeed do not seem to be using). Remove the unused `git_index__changed_relative_to` function.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
Edward Thomson committed
-
A simple hash-to-hexadigit formatter.
Edward Thomson committed -
The `git_oid_tostr_s` helper is indeed helpful, unless you are using printf debugging (by inserting more `git_oid_tostr_s` calls) shortly after using it. Avoid it before invoking complex functions.
Edward Thomson committed -
Underscores in filenames in tests indicate a logical separation - so `commit_graph` becomes `commit::graph`. Rename it to `commitgraph` to avoid this.
Edward Thomson committed
-
- 27 Jan, 2022 1 commit
-
-
COPYING: remove regex copyright, add PCRE copyright
Edward Thomson committed
-