summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | index: refactor common `read_index` functionalityEdward Thomson2016-06-291-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-fetchEdward Thomson2016-06-292-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 Haslam2016-06-282-7/+27
| | |/ / | |/| | | | | | | | | | submodule.
* | | | Merge pull request #3842 from pks-t/pks/double-freeEdward Thomson2016-06-291-8/+18
|\ \ \ \ | |/ / / |/| | | blame: increment reference count for origin's commit
| * | | blame: do not decrement commit refcount in make_originPatrick Steinhardt2016-06-291-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/applyEdward Thomson2016-06-2564-2683/+7255
|\ \ \ | | | | | | | | Reading patch files
| * | | patch: show copy information for identical copiesEdward Thomson2016-06-256-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 copyEdward Thomson2016-06-251-0/+5
| | | |
| * | | patch::parse: test diff with simple renameEdward Thomson2016-06-251-12/+27
| | | |
| * | | patch::parse: handle patches with no hunksEdward Thomson2016-06-251-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 diffEdward Thomson2016-06-253-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 filesEdward Thomson2016-05-261-8/+20
| | | |
| * | | patch: identify non-binary patches as `NOT_BINARY`Edward Thomson2016-05-261-4/+3
| | | |
| * | | Introduce `git_diff_to_buf`Edward Thomson2016-05-262-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 diffsEdward Thomson2016-05-268-52/+250
| | | | | | | | | | | | | | | | Parse diff files into a `git_diff` structure.
| * | | patch: differentiate not found and invalid patchesEdward Thomson2016-05-262-7/+77
| | | |
| * | | git_patch_parse_ctx: refcount the contextEdward Thomson2016-05-266-102/+172
| | | |
| * | | git_diff_generated: abstract generated diffsEdward Thomson2016-05-2615-1672/+1822
| | | |
| * | | parse: introduce parse_ctx_contains_sEdward Thomson2016-05-261-18/+25
| | | |
| * | | patch: `patch_diff` -> `patch_generated`Edward Thomson2016-05-266-112/+119
| | | |
| * | | vector: more sensible names for `grow_at`/`shrink_at`Edward Thomson2016-05-264-26/+26
| | | |
| * | | patch: `git_patch_from_patchfile` -> `git_patch_from_buffer`Edward Thomson2016-05-266-41/+44
| | | |
| * | | patch: provide static string `advance_expected`Edward Thomson2016-05-261-10/+13
| | | |
| * | | patch: formatting cleanupsEdward Thomson2016-05-262-2/+2
| | | |
| * | | git_vector_grow/shrink: correct shrink, and testsEdward Thomson2016-05-262-14/+117
| | | |
| * | | apply: test postimages that grow/shrink originalEdward Thomson2016-05-262-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 > \177Edward Thomson2016-05-262-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 Thomson2016-05-261-10/+2
| | | |
| * | | patch parse: dup the patch from the callersEdward Thomson2016-05-263-11/+28
| | | |
| * | | patch parsing: squash some memory leaksEdward Thomson2016-05-262-0/+9
| | | |
| * | | patch: drop some warningsEdward Thomson2016-05-262-6/+5
| | | |
| * | | patch: use strlen to mean string lengthEdward Thomson2016-05-261-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 changedEdward Thomson2016-05-261-13/+21
| | | |
| * | | patch: quote filenames when necessaryEdward Thomson2016-05-261-33/+96
| | | |
| * | | git_buf_quote: quote ugly charactersEdward Thomson2016-05-263-27/+120
| | | |
| * | | patch: don't print some headers on pure renamesEdward Thomson2016-05-261-4/+13
| | | |
| * | | Introduce git_patch_options, handle prefixesEdward Thomson2016-05-265-154/+220
| | | | | | | | | | | | | | | | | | | | Handle prefixes (in terms of number of path components) for patch parsing.
| * | | patch printing: include rename informationEdward Thomson2016-05-262-2/+25
| | | |
| * | | patch_parse: don't set new mode when deletedEdward Thomson2016-05-261-4/+4
| | | |
| * | | patch_parse: use names from `diff --git` headerEdward Thomson2016-05-262-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 flagEdward Thomson2016-05-261-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 -> printEdward Thomson2016-05-261-0/+166
| | | |
| * | | patch_parse: ensure we can parse a patchEdward Thomson2016-05-261-0/+31
| | | |
| * | | patch: when parsing, set nfiles correctly in deltaEdward Thomson2016-05-261-0/+3
| | | |
| * | | diff: include oid length in deltasEdward Thomson2016-05-265-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 prefixEdward Thomson2016-05-261-0/+4
| | | |
| * | | apply: move patch data to patch_common.hEdward Thomson2016-05-263-2/+2
| | | |
| * | | patch: use delta's old_file/new_file membersEdward Thomson2016-05-264-56/+27
| | | | | | | | | | | | | | | | | | | | No need to replicate the old_file/new_file members, or plumb them strangely up.
| * | | patch: abstract patches into diff'ed and parsedEdward Thomson2016-05-2613-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 illegalEdward Thomson2016-05-261-0/+8
| | | |