Patrick Steinhardt
613381fc14
patch_parse: fix memory leak
2016-11-15 13:33:05 +01:00
Patrick Steinhardt
c77a55a917
common: use PRIuZ for size_t in giterr_set
calls
2016-11-14 10:05:59 +01:00
Edward Thomson
adedac5aba
diff: treat binary patches with no data special
...
When creating and printing diffs, deal with binary deltas that have
binary data specially, versus diffs that have a binary file but lack the
actual binary data.
2016-09-05 12:26:47 -05:00
Edward Thomson
b859faa61c
Teach git_patch_from_diff
about parsed diffs
...
Ensure that `git_patch_from_diff` can return the patch for parsed diffs,
not just generate a patch for a generated diff.
2016-08-24 09:08:57 -05:00
Edward Thomson
002c8e29a1
git_diff_file: move id_abbrev
...
Move `id_abbrev` to a more reasonable place where it packs more nicely
(before anybody starts using it).
2016-08-03 17:57:37 -04:00
Edward Thomson
c065f6a1d2
apply: check allocation properly
2016-07-24 15:49:19 -04:00
Edward Thomson
1a79cd959b
patch: show copy information for identical copies
...
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.
2016-06-25 23:08:30 -04:00
Edward Thomson
38a347ea5d
patch::parse: handle patches with no hunks
...
Patches may have no hunks when there's no modifications (for example,
in a rename). Handle them.
2016-06-25 23:08:06 -04:00
Edward Thomson
853e585fb1
patch: zero id and abbrev length for empty files
2016-05-26 13:01:09 -05:00
Edward Thomson
33ae876239
patch: identify non-binary patches as NOT_BINARY
2016-05-26 13:01:09 -05:00
Edward Thomson
7166bb1665
introduce git_diff_from_buffer
to parse diffs
...
Parse diff files into a `git_diff` structure.
2016-05-26 13:01:09 -05:00
Edward Thomson
94e488a056
patch: differentiate not found and invalid patches
2016-05-26 13:01:08 -05:00
Edward Thomson
17572f67ed
git_patch_parse_ctx: refcount the context
2016-05-26 13:01:08 -05:00
Edward Thomson
aa4bfb32b9
parse: introduce parse_ctx_contains_s
2016-05-26 13:01:08 -05:00
Edward Thomson
440e3bae10
patch: git_patch_from_patchfile
-> git_patch_from_buffer
2016-05-26 13:01:08 -05:00
Edward Thomson
00e63b3620
patch: provide static string advance_expected
2016-05-26 13:01:07 -05:00
Edward Thomson
4117a2350f
patch parse: dup the patch from the callers
2016-05-26 13:01:07 -05:00
Edward Thomson
6278fbc5dd
patch parsing: squash some memory leaks
2016-05-26 13:01:07 -05:00
Edward Thomson
f941f035ae
patch: drop some warnings
2016-05-26 13:01:06 -05:00
Edward Thomson
82175084e1
Introduce git_patch_options, handle prefixes
...
Handle prefixes (in terms of number of path components) for patch
parsing.
2016-05-26 13:01:06 -05:00
Edward Thomson
19e46645af
patch printing: include rename information
2016-05-26 13:01:06 -05:00
Edward Thomson
d536ceacf5
patch_parse: don't set new mode when deleted
2016-05-26 13:01:05 -05:00
Edward Thomson
28f704433b
patch_parse: use names from diff --git
header
...
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.
2016-05-26 13:01:05 -05:00
Edward Thomson
1462c95a5d
patch_parse: set binary flag
...
We may have parsed binary data, set the `SHOW_BINARY` flag which
indicates that we have actually computed a binary diff.
2016-05-26 13:01:05 -05:00
Edward Thomson
bc6a31c9fb
patch: when parsing, set nfiles correctly in delta
2016-05-26 13:01:05 -05:00
Edward Thomson
d68cb73677
diff: include oid length in deltas
...
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.
2016-05-26 13:01:05 -05:00
Edward Thomson
e7ec327d4b
patch parse: unset path prefix
2016-05-26 13:01:04 -05:00
Edward Thomson
b85bd8ce66
patch: use delta's old_file/new_file members
...
No need to replicate the old_file/new_file members, or plumb them
strangely up.
2016-05-26 13:01:04 -05:00
Edward Thomson
804d5fe9f5
patch: abstract patches into diff'ed and parsed
...
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.
2016-05-26 13:01:04 -05:00