• Show log

    Commit

  • Hash : 9bea03ce
    Author : Russell Belfer
    Date : 2013-03-06T15:16:34

    Add INCLUDE_TREES, DONT_AUTOEXPAND iterator flags
    
    This standardizes iterator behavior across all three iterators
    (index, tree, and working directory).  Previously the working
    directory iterator behaved differently from the other two.
    
    Each iterator can now operate in one of three modes:
    
    1. *No tree results, auto expand trees* means that only non-
       tree items will be returned and when a tree/directory is
       encountered, we will automatically descend into it.
    2. *Tree results, auto expand trees* means that results will
       be given for every item found, including trees, but you
       only need to call normal git_iterator_advance to yield
       every item (i.e. trees returned with pre-order iteration).
    3. *Tree results, no auto expand* means that calling the
       normal git_iterator_advance when looking at a tree will
       not descend into the tree, but will skip over it to the
       next entry in the parent.
    
    Previously, behavior 1 was the only option for index and tree
    iterators, and behavior 3 was the only option for workdir.
    
    The main public API implications of this are that the
    `git_iterator_advance_into()` call is now valid for all
    iterators, not just working directory iterators, and all the
    existing uses of working directory iterators explicitly use
    the GIT_ITERATOR_DONT_AUTOEXPAND (for now).
    
    Interestingly, the majority of the implementation was in the
    index iterator, since there are no tree entries there and now
    have to fake them.  The tree and working directory iterators
    only required small modifications.
    

  • 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.