• Show log

    Commit

  • Hash : ccfa6805
    Author : Russell Belfer
    Date : 2013-03-25T23:58:40

    Fix some diff ignores and submodule dirty workdir
    
    This started out trying to look at the problems from issue #1425
    and gradually grew to a broader set of fixes.  There are two core
    things fixed here:
    
    1. When you had an ignore like "/bin" which is rooted at the top
       of your tree, instead of immediately adding the "bin/" entry
       as an ignored item in the diff, we were returning all of the
       direct descendants of the directory as ignored items.  This
       changes things to immediately ignore the directory.  Note that
       this effects the behavior in test_status_ignore__subdirectories
       so that we no longer exactly match core gits ignore behavior,
       but the new behavior probably makes more sense (i.e. we now
       will include an ignored directory inside an untracked directory
       that we previously would have left off).
    2. When a submodule only contained working directory changes, the
       diff code was always considering it unmodified which was just
       an outright bug. The HEAD SHA of the submodule matches the SHA
       in the parent repo index, and since the SHAs matches, the diff
       code was overwriting the actual status with UNMODIFIED.
    
    These fixes broke existing tests test_diff_workdir__submodules and
    test_status_ignore__subdirectories but looking it over, I actually
    think the new results are correct and the old results were wrong.
    @nulltoken had actually commented on the subdirectory ignore issue
    previously.
    
    I also included in the tests some debugging versions of the
    shared iteration callback routines that print status or diff
    information.  These aren't used actively in the tests, but can be
    quickly swapped in to test code to give a better picture of what
    is being scanned in some of the complex test scenarios.
    

  • README.md

  • Writing Clar tests for libgit2

    For information on the Clar testing framework and a detailed introduction please visit:

    https://github.com/vmg/clar

    • Write your modules and tests. Use good, meaningful names.

    • Make sure you actually build the tests by setting:

        cmake -DBUILD_CLAR=ON build/
    • Test:

        ./build/libgit2_clar
    • Make sure everything is fine.

    • Send your pull request. That’s it.