Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | | | | index: refactor common `read_index` functionality | Edward Thomson | 2016-06-29 | 1 | -13/+36 | |
|/ / / / | | | | | | | | | | | | | | | | | | | | | Most of `git_index_read_index` is common to reading any iterator. Refactor it out in case we want to implement `read_tree` in terms of it in the future. | |||||
* | | | | Merge pull request #3813 from stinb/submodule-update-fetch | Edward Thomson | 2016-06-29 | 2 | -7/+27 | |
|\ \ \ \ | | | | | | | | | | | submodule: Try to fetch when update fails to find the target commit. | |||||
| * | | | | submodule: Try to fetch when update fails to find the target commit in the ↵ | Jason Haslam | 2016-06-28 | 2 | -7/+27 | |
| | |/ / | |/| | | | | | | | | | | submodule. | |||||
* | | | | Merge pull request #3842 from pks-t/pks/double-free | Edward Thomson | 2016-06-29 | 1 | -8/+18 | |
|\ \ \ \ | |/ / / |/| | | | blame: increment reference count for origin's commit | |||||
| * | | | blame: do not decrement commit refcount in make_origin | Patrick Steinhardt | 2016-06-29 | 1 | -8/+18 | |
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we create a blame origin, we try to look up the blob that is to be blamed at a certain revision. When this lookup fails, e.g. because the file did not exist at that certain revision, we fail to create the blame origin and return `NULL`. The blame origin that we have just allocated is thereby free'd with `origin_decref`. The `origin_decref` function does not only decrement reference counts for the blame origin, though, but also for its commit and blob. When this is done in the error case, we will cause an uneven reference count for these objects. This may result in hard-to-debug failures at seemingly unrelated code paths, where we try to access these objects when they in fact have already been free'd. Fix the issue by refactoring `make_origin` such that we only allocate the object after the only function that may fail so that we do not have to call `origin_decref` at all. Also fix the `pass_blame` function, which indirectly calls `make_origin`, to free the commit when `make_origin` failed. | |||||
* | | | Merge pull request #3223 from ethomson/apply | Edward Thomson | 2016-06-25 | 64 | -2683/+7255 | |
|\ \ \ | | | | | | | | | Reading patch files | |||||
| * | | | patch: show copy information for identical copies | Edward Thomson | 2016-06-25 | 6 | -24/+147 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When showing copy information because we are duplicating contents, for example, when performing a `diff --find-copies-harder -M100 -B100`, then show copy from/to lines in a patch, and do not show context. Ensure that we can also parse such patches. | |||||
| * | | | patch::parse: test diff with exact rename and copy | Edward Thomson | 2016-06-25 | 1 | -0/+5 | |
| | | | | ||||||
| * | | | patch::parse: test diff with simple rename | Edward Thomson | 2016-06-25 | 1 | -12/+27 | |
| | | | | ||||||
| * | | | patch::parse: handle patches with no hunks | Edward Thomson | 2016-06-25 | 1 | -1/+3 | |
| | | | | | | | | | | | | | | | | | | | | Patches may have no hunks when there's no modifications (for example, in a rename). Handle them. | |||||
| * | | | diff::parse tests: test parsing a diff | Edward Thomson | 2016-06-25 | 3 | -0/+107 | |
| | | | | | | | | | | | | | | | | | | | | Test that we can create a diff file, then parse the results and that the two are identical in-memory. | |||||
| * | | | patch: zero id and abbrev length for empty files | Edward Thomson | 2016-05-26 | 1 | -8/+20 | |
| | | | | ||||||
| * | | | patch: identify non-binary patches as `NOT_BINARY` | Edward Thomson | 2016-05-26 | 1 | -4/+3 | |
| | | | | ||||||
| * | | | Introduce `git_diff_to_buf` | Edward Thomson | 2016-05-26 | 2 | -0/+24 | |
| | | | | | | | | | | | | | | | | | | | | Like `git_patch_to_buf`, provide a simple helper method that can print an entire diff directory to a `git_buf`. | |||||
| * | | | introduce `git_diff_from_buffer` to parse diffs | Edward Thomson | 2016-05-26 | 8 | -52/+250 | |
| | | | | | | | | | | | | | | | | Parse diff files into a `git_diff` structure. | |||||
| * | | | patch: differentiate not found and invalid patches | Edward Thomson | 2016-05-26 | 2 | -7/+77 | |
| | | | | ||||||
| * | | | git_patch_parse_ctx: refcount the context | Edward Thomson | 2016-05-26 | 6 | -102/+172 | |
| | | | | ||||||
| * | | | git_diff_generated: abstract generated diffs | Edward Thomson | 2016-05-26 | 15 | -1672/+1822 | |
| | | | | ||||||
| * | | | parse: introduce parse_ctx_contains_s | Edward Thomson | 2016-05-26 | 1 | -18/+25 | |
| | | | | ||||||
| * | | | patch: `patch_diff` -> `patch_generated` | Edward Thomson | 2016-05-26 | 6 | -112/+119 | |
| | | | | ||||||
| * | | | vector: more sensible names for `grow_at`/`shrink_at` | Edward Thomson | 2016-05-26 | 4 | -26/+26 | |
| | | | | ||||||
| * | | | patch: `git_patch_from_patchfile` -> `git_patch_from_buffer` | Edward Thomson | 2016-05-26 | 6 | -41/+44 | |
| | | | | ||||||
| * | | | patch: provide static string `advance_expected` | Edward Thomson | 2016-05-26 | 1 | -10/+13 | |
| | | | | ||||||
| * | | | patch: formatting cleanups | Edward Thomson | 2016-05-26 | 2 | -2/+2 | |
| | | | | ||||||
| * | | | git_vector_grow/shrink: correct shrink, and tests | Edward Thomson | 2016-05-26 | 2 | -14/+117 | |
| | | | | ||||||
| * | | | apply: test postimages that grow/shrink original | Edward Thomson | 2016-05-26 | 2 | -0/+131 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test with some postimages that actually grow/shrink from the original, adding new lines or removing them. (Also do so without context to ensure that we can add/remove from a non-zero part of the line vector.) | |||||
| * | | | git_buf_quote/unquote: handle > \177 | Edward Thomson | 2016-05-26 | 2 | -2/+7 | |
| | | | | | | | | | | | | | | | | | | | | | | | | Parse values up to and including `\377` (`0xff`) when unquoting. Print octal values as an unsigned char when quoting, lest `printf` think we're talking about negatives. | |||||
| * | | | patch application: drop unnecessary `patch_image_init` | Edward Thomson | 2016-05-26 | 1 | -10/+2 | |
| | | | | ||||||
| * | | | patch parse: dup the patch from the callers | Edward Thomson | 2016-05-26 | 3 | -11/+28 | |
| | | | | ||||||
| * | | | patch parsing: squash some memory leaks | Edward Thomson | 2016-05-26 | 2 | -0/+9 | |
| | | | | ||||||
| * | | | patch: drop some warnings | Edward Thomson | 2016-05-26 | 2 | -6/+5 | |
| | | | | ||||||
| * | | | patch: use strlen to mean string length | Edward Thomson | 2016-05-26 | 1 | -29/+27 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `oid_strlen` has meant one more than the length of the string. This is mighty confusing. Make it mean only the string length! Whomsoever needs to allocate a buffer to hold a string can null terminate it like normal. | |||||
| * | | | patch: show modes when only the mode has changed | Edward Thomson | 2016-05-26 | 1 | -13/+21 | |
| | | | | ||||||
| * | | | patch: quote filenames when necessary | Edward Thomson | 2016-05-26 | 1 | -33/+96 | |
| | | | | ||||||
| * | | | git_buf_quote: quote ugly characters | Edward Thomson | 2016-05-26 | 3 | -27/+120 | |
| | | | | ||||||
| * | | | patch: don't print some headers on pure renames | Edward Thomson | 2016-05-26 | 1 | -4/+13 | |
| | | | | ||||||
| * | | | Introduce git_patch_options, handle prefixes | Edward Thomson | 2016-05-26 | 5 | -154/+220 | |
| | | | | | | | | | | | | | | | | | | | | Handle prefixes (in terms of number of path components) for patch parsing. | |||||
| * | | | patch printing: include rename information | Edward Thomson | 2016-05-26 | 2 | -2/+25 | |
| | | | | ||||||
| * | | | patch_parse: don't set new mode when deleted | Edward Thomson | 2016-05-26 | 1 | -4/+4 | |
| | | | | ||||||
| * | | | patch_parse: use names from `diff --git` header | Edward Thomson | 2016-05-26 | 2 | -18/+44 | |
| | | | | | | | | | | | | | | | | | | | | | | | | When a text file is added or deleted, use the file names from the `diff --git` header instead of the `---` or `+++` lines. This is for compatibility with git. | |||||
| * | | | patch_parse: set binary flag | Edward Thomson | 2016-05-26 | 1 | -0/+1 | |
| | | | | | | | | | | | | | | | | | | | | We may have parsed binary data, set the `SHOW_BINARY` flag which indicates that we have actually computed a binary diff. | |||||
| * | | | patch_parse: test roundtrip patch parsing -> print | Edward Thomson | 2016-05-26 | 1 | -0/+166 | |
| | | | | ||||||
| * | | | patch_parse: ensure we can parse a patch | Edward Thomson | 2016-05-26 | 1 | -0/+31 | |
| | | | | ||||||
| * | | | patch: when parsing, set nfiles correctly in delta | Edward Thomson | 2016-05-26 | 1 | -0/+3 | |
| | | | | ||||||
| * | | | diff: include oid length in deltas | Edward Thomson | 2016-05-26 | 5 | -9/+44 | |
| | | | | | | | | | | | | | | | | | | | | | | | | Now that `git_diff_delta` data can be produced by reading patch file data, which may have an abbreviated oid, allow consumers to know that the id is abbreviated. | |||||
| * | | | patch parse: unset path prefix | Edward Thomson | 2016-05-26 | 1 | -0/+4 | |
| | | | | ||||||
| * | | | apply: move patch data to patch_common.h | Edward Thomson | 2016-05-26 | 3 | -2/+2 | |
| | | | | ||||||
| * | | | patch: use delta's old_file/new_file members | Edward Thomson | 2016-05-26 | 4 | -56/+27 | |
| | | | | | | | | | | | | | | | | | | | | No need to replicate the old_file/new_file members, or plumb them strangely up. | |||||
| * | | | patch: abstract patches into diff'ed and parsed | Edward Thomson | 2016-05-26 | 13 | -1361/+1408 | |
| | | | | | | | | | | | | | | | | | | | | | | | | Patches can now come from a variety of sources - either internally generated (from diffing two commits) or as the results of parsing some external data. | |||||
| * | | | patch parsing: ensure empty patches are illegal | Edward Thomson | 2016-05-26 | 1 | -0/+8 | |
| | | | |