• Show log

    Commit

  • Hash : c15ed350
    Author : Edward Thomson
    Date : 2021-04-26T12:23:25

    repo: validate repository paths
    
    Ensure that a repository's path (at initialization or open time) is
    valid.  On Windows systems, this means that the longest known path
    beneath the repository will fit within MAX_PATH: this is a lock file for
    a loose object within the repository itself.
    
    Other paths, like a very long loose reference, may fail to be opened
    after the repository is opened.  These variable length paths will be
    checked when they are accessed themselves.  This new functionality is
    done at open to prevent needlessly checking every file in the gitdir
    (eg, `MERGE_HEAD`) for its length when we could instead check once at
    repository open time.
    

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

    Memory leak checks

    These are automatically run as part of CI, but if you want to check locally:

    Linux

    Uses valgrind:

    $ cmake -DBUILD_CLAR=ON -DVALGRIND=ON ..
    $ cmake --build .
    $ valgrind --leak-check=full --show-reachable=yes --num-callers=50 --suppressions=../libgit2_clar.supp \
      ./libgit2_clar

    macOS

    Uses leaks, which requires XCode installed:

    $ MallocStackLogging=1 MallocScribble=1 MallocLogFile=/dev/null CLAR_AT_EXIT="leaks -quiet \$PPID" \
      ./libgit2_clar