- 02 Feb, 2018 10 commits
-
-
Support `read_header` for "packlike loose objects", which were a temporarily and uncommonly used format loose object format that encodes the header before the zlib deflate data. This will never actually be seen in the wild, but add support for it for completeness and (more importantly) because our corpus of test data has objects in this format, so it's easier to support it than to try to special case it.
Edward Thomson committed -
Make `read_header` use the common zstream implementation. Remove the now unnecessary zlib wrapper in odb_loose.
Edward Thomson committed -
Introduce `get_output_chunk` that will inflate/deflate all the available input buffer into the output buffer. `get_output` will call `get_output_chunk` in a loop, while other consumers can use it to inflate only a piece of the data.
Edward Thomson committed -
Edward Thomson committed
-
Refactor packlike loose object reads to use `git_zstream` for simplification.
Edward Thomson committed -
A "packlike" loose object was a briefly lived loose object format where the type and size were encoded in uncompressed space at the beginning of the file, followed by the compressed object contents. Handle these in a streaming manner as well.
Edward Thomson committed -
Since some test situations may have generous disk space, but limited RAM (eg hosted build agents), test that we can stream a large file into a loose object, and then stream it out of the loose object storage.
Edward Thomson committed -
Provide a streaming loose object reader.
Edward Thomson committed -
The streaming read functionality should provide the length and the type of the object, like the normal read functionality does.
Edward Thomson committed -
There are two streaming functions; one for reading, one for writing. Disambiguate function names between `stream` and `writestream` to make allowances for a read stream.
Edward Thomson committed
-
- 01 Feb, 2018 1 commit
-
-
Merge example
Patrick Steinhardt committed
-
- 31 Jan, 2018 5 commits
-
-
Honor 'GIT_USE_NSEC' option in `filesystem_iterator_set_current`
Edward Thomson committed -
Use longer conflict markers in recursive merge base
Edward Thomson committed -
Tomás Pollak committed
-
status::renames: test update for APFS (write NFD instead of NFC filename)
Edward Thomson committed -
This should have been part of PR #3638. Without this we still get nsec-related errors, even when using -DGIT_USE_NSEC: error: ‘struct stat’ has no member named ‘st_mtime_nsec’
Tomás Pollak committed
-
- 29 Jan, 2018 3 commits
-
-
Special-casing null OIDs
Edward Thomson committed -
README.md: add notes on how to report security issues
Edward Thomson committed -
Patrick Steinhardt committed
-
- 26 Jan, 2018 2 commits
-
-
The null OID (hash with all zeroes) indicates a missing object in upstream git and is thus not a valid object ID. Add defensive measurements to avoid writing such a hash to the object database in the very unlikely case where some data results in the null OID. Furthermore, add shortcuts when reading the null OID from the ODB to avoid ever returning an object when a faulty repository may contain the null OID.
Patrick Steinhardt committed -
In commit a96d3cc3f (cache-tree: reject entries with null sha1, 2017-04-21), the git.git project has changed its stance on null OIDs in tree objects. Previously, null OIDs were accepted in tree entries to help tools repair broken history. This resulted in some problems though in that many code paths mistakenly passed null OIDs to be added to a tree, which was not properly detected. Align our own code base according to the upstream change and reject writing tree entries early when the OID is all-zero.
Patrick Steinhardt committed
-
- 25 Jan, 2018 11 commits
-
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
Etienne Samson committed
-
odb: export mempack backend
Patrick Steinhardt committed
-
- 22 Jan, 2018 1 commit
-
-
Fixes #4492, #4496.
Adrián Medraño Calvo committed
-
- 21 Jan, 2018 4 commits
-
-
Update the status::renames test to create an NFD format filename in the core.precomposedunicode tests. Previously, we would create an NFC format filename. This was to take advantage of HFS+ filesystems, which always use canonically decomposed formats, and would actually write the filename to disk as an NFD filename. So previously, we could create an NFC filename, but read it normally as an NFD filename. But APFS formats do not force canonically decomposed formats for filenames, so creating an NFC filename does not get converted to NFD. Instead, the filename will be written in NFC format. Our test, therefore, does not work - when we write an NFC filename, it will _remain_ NFC. Update the test to write NFD always. This will ensure that the file will actually be canonically decomposed on all platforms: HFS+, which forces NFD, and APFS, which does not. Thus, our test will continue to ensure that an NFD filename is canonically precomposed on all filesystems.
Edward Thomson committed -
Edward Thomson committed
-
Git uses longer conflict markers in the recursive merge base - two more than the default (thus, 9 character long conflict markers). This allows users to tell the difference between the recursive merge conflicts and conflicts between the ours and theirs branches. This was introduced in git d694a17986a28bbc19e2a6c32404ca24572e400f. Update our tests to expect this as well.
Edward Thomson committed -
Allow for a custom conflict marker size, allowing callers to override the default size of the "<<<<<<<" and ">>>>>>>" markers in the conflicted output file.
Edward Thomson committed
-
- 20 Jan, 2018 3 commits
-
-
branch: refuse creating branches named 'HEAD'
Edward Thomson committed -
refs: include " sorted " in our packed-refs header
Edward Thomson committed -
message: update docs for git_message_prettify
Edward Thomson committed
-