• Show log

    Commit

  • Hash : 145e696b
    Author : Russell Belfer
    Date : 2012-06-08T11:56:24

    Minor fixes, cleanups, and clarifications
    
    There are three actual changes in this commit:
    
    1. When the trailing newline of a file is removed in a diff, the
       change will now be reported with `GIT_DIFF_LINE_DEL_EOFNL` passed
       to the callback.  Previously, the `ADD_EOFNL` constant was given
       which was just an error in my understanding of when the various
       circumstances arose.  `GIT_DIFF_LINE_ADD_EOFNL` is deprecated and
       should never be generated.  A new newline is simply an `ADD`.
    2. Rewrote the `diff_delta__merge_like_cgit` function that contains
       the core logic of the `git_diff_merge` implementation.  The new
       version doesn't actually have significantly different behavior,
       but the logic should be much more obvious, I think.
    3. Fixed a bug in `git_diff_merge` where it freed a string pool
       while some of the string data was still in use.  This led to
       `git_diff_print_patch` accessing memory that had been freed.
    
    The rest of this commit contains improved documentation in `diff.h`
    to make the behavior and the equivalencies with core git clearer,
    and a bunch of new tests to cover the various cases, oh and a minor
    simplification of `examples/diff.c`.