1. 14 Mar, 2017 4 commits
    • patch_parse: fix parsing minimal trailing diff line · ad5a909c
      In a diff, the shortest possible hunk with a modification (that is, no
      deletion) results from a file with only one line with a single character
      which is removed. Thus the following hunk
      
          @@ -1 +1 @@
          -a
          +
      
      is the shortest valid hunk modifying a line. The function parsing the
      hunk body though assumes that there must always be at least 4 bytes
      present to make up a valid hunk, which is obviously wrong in this case.
      The absolute minimum number of bytes required for a modification is
      actually 2 bytes, that is the "+" and the following newline. Note: if
      there is no trailing newline, the assumption will not be offended as the
      diff will have a line "\ No trailing newline" at its end.
      
      This patch fixes the issue by lowering the amount of bytes required.
      Patrick Steinhardt committed
    • patch_generate: move `git_diff_foreach` to diff.c · 62a2fc06
      Now that the `git_diff_foreach` function does not depend on internals of
      the `git_patch_generated` structure anymore, we can easily move it to
      the actual diff code.
      Patrick Steinhardt committed
    • patch_generate: fix `git_diff_foreach` only working with generated diffs · ace3508f
      The current logic of `git_diff_foreach` makes the assumption that all
      diffs passed in are actually derived from generated diffs. With these
      assumptions we try to derive the actual diff by inspecting either the
      working directory files or blobs of a repository. This obviously cannot
      work for diffs parsed from a file, where we do not necessarily have a
      repository at hand.
      
      Since the introduced split of parsed and generated patches, there are
      multiple functions which help us to handle patches generically, being
      indifferent from where they stem from. Use these functions and remove
      the old logic specific to generated patches. This allows re-using the
      same code for invoking the callbacks on the deltas.
      Patrick Steinhardt committed
    • patch_generate: remove duplicated logic · 41019152
      Under the existing logic, we try to load patch contents differently,
      depending on whether the patch files stem from the working directory or
      not. But actually, the executed code paths are completely equal to each
      other -- so we were always the code despite the condition.
      
      Remove the condition altogether and conflate both code paths.
      Patrick Steinhardt committed
  2. 11 Mar, 2017 2 commits
  3. 09 Mar, 2017 3 commits
  4. 06 Mar, 2017 3 commits
  5. 03 Mar, 2017 8 commits
  6. 01 Mar, 2017 5 commits
  7. 28 Feb, 2017 1 commit
  8. 27 Feb, 2017 1 commit
  9. 26 Feb, 2017 4 commits
  10. 25 Feb, 2017 4 commits
  11. 24 Feb, 2017 3 commits
  12. 22 Feb, 2017 2 commits