github.com/git-lfs/git-lfs@v2.5.2+incompatible/t/t-fetch-paths.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  . "$(dirname "$0")/testlib.sh"
     4  
     5  reponame="$(basename "$0" ".sh")"
     6  contents="a"
     7  contents_oid=$(calc_oid "$contents")
     8  
     9  begin_test "init fetch unclean paths"
    10  (
    11    set -e
    12  
    13    setup_remote_repo $reponame
    14    clone_repo $reponame repo
    15  
    16    git lfs track "*.dat" 2>&1 | tee track.log
    17    grep "Tracking \"\*.dat\"" track.log
    18  
    19    mkdir dir
    20    printf "$contents" > dir/a.dat
    21  
    22    git add dir/a.dat
    23    git add .gitattributes
    24    git commit -m "add dir/a.dat" 2>&1 | tee commit.log
    25    grep "master (root-commit)" commit.log
    26    grep "2 files changed" commit.log
    27    grep "create mode 100644 dir/a.dat" commit.log
    28    grep "create mode 100644 .gitattributes" commit.log
    29  
    30    [ "a" = "$(cat dir/a.dat)" ]
    31  
    32    assert_local_object "$contents_oid" 1
    33    refute_server_object "$contents_oid"
    34  
    35    git push origin master 2>&1 | tee push.log
    36    grep "Uploading LFS objects: 100% (1/1), 1 B" push.log
    37    grep "master -> master" push.log
    38  
    39    assert_server_object "$reponame" "$contents_oid"
    40  
    41    # This clone is used for subsequent tests
    42    clone_repo "$reponame" clone
    43  )
    44  end_test
    45  
    46  begin_test "fetch unclean paths with include filter in gitconfig"
    47  (
    48    set -e
    49    cd clone
    50    rm -rf .git/lfs/objects
    51  
    52    git config "lfs.fetchinclude" "dir/"
    53    git lfs fetch
    54    assert_local_object "$contents_oid" 1
    55  )
    56  end_test
    57  
    58  begin_test "fetch unclean paths with exclude filter in gitconfig"
    59  (
    60    set -e
    61    cd clone
    62    rm -rf .git/lfs/objects
    63    git config --unset "lfs.fetchinclude"
    64  
    65    git config "lfs.fetchexclude" "dir/"
    66    git lfs fetch
    67    refute_local_object "$contents_oid"
    68  )
    69  end_test
    70  
    71  begin_test "fetch unclean paths with include filter in cli"
    72  (
    73    set -e
    74    cd clone
    75    rm -rf .git/lfs/objects
    76  
    77    git config --unset "lfs.fetchexclude"
    78  
    79    rm -rf .git/lfs/objects
    80    git lfs fetch -I="dir/"
    81    assert_local_object "$contents_oid" 1
    82  )
    83  end_test
    84  
    85  begin_test "fetch unclean paths with exclude filter in cli"
    86  (
    87    set -e
    88    cd clone
    89    rm -rf .git/lfs/objects
    90  
    91    git lfs fetch -X="dir/"
    92    refute_local_object "$contents_oid"
    93  )
    94  end_test