github.com/saracen/git-lfs@v2.5.2+incompatible/t/t-migrate-fixup.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  . "$(dirname "$0")/fixtures/migrate.sh"
     4  . "$(dirname "$0")/testlib.sh"
     5  
     6  begin_test "migrate import (--fixup)"
     7  (
     8    set -e
     9  
    10    setup_single_local_branch_tracked_corrupt
    11  
    12    txt_oid="$(calc_oid "$(git cat-file -p :a.txt)")"
    13  
    14    git lfs migrate import --everything --fixup --yes
    15  
    16    assert_pointer "refs/heads/master" "a.txt" "$txt_oid" "120"
    17    assert_local_object "$txt_oid" "120"
    18  
    19    master="$(git rev-parse refs/heads/master)"
    20    master_attrs="$(git cat-file -p "$master:.gitattributes")"
    21    echo "$master_attrs" | grep -q "*.txt filter=lfs diff=lfs merge=lfs"
    22  )
    23  end_test
    24  
    25  begin_test "migrate import (--fixup, complex nested)"
    26  (
    27    set -e
    28  
    29    setup_single_local_branch_complex_tracked
    30  
    31    a_oid="$(calc_oid "$(git cat-file -p :a.txt)")"
    32    b_oid="$(calc_oid "$(git cat-file -p :dir/b.txt)")"
    33  
    34    git lfs migrate import --everything --fixup --yes
    35  
    36    assert_pointer "refs/heads/master" "a.txt" "$a_oid" "1"
    37    refute_pointer "refs/heads/master" "b.txt"
    38  
    39    assert_local_object "$a_oid" "1"
    40    refute_local_object "$b_oid" "1"
    41  
    42    master="$(git rev-parse refs/heads/master)"
    43    master_attrs="$(git cat-file -p "$master:.gitattributes")"
    44    master_dir_attrs="$(git cat-file -p "$master:dir/.gitattributes")"
    45    echo "$master_attrs" | grep -q "*.txt filter=lfs diff=lfs merge=lfs"
    46    echo "$master_dir_attrs" | grep -q "*.txt !filter !diff !merge"
    47  )
    48  end_test
    49  
    50  begin_test "migrate import (--fixup, --include)"
    51  (
    52    set -e
    53  
    54    setup_single_local_branch_tracked_corrupt
    55  
    56    git lfs migrate import --everything --fixup --yes --include="*.txt" 2>&1 \
    57      | tee migrate.log
    58  
    59    if [ "${PIPESTATUS[0]}" -eq 0 ]; then
    60      echo >&2 "fatal: expected 'git lfs migrate ...' to fail, didn't ..."
    61      exit 1
    62    fi
    63  
    64    grep -q "fatal: cannot use --fixup with --include, --exclude" migrate.log
    65  )
    66  end_test
    67  
    68  begin_test "migrate import (--fixup, --exclude)"
    69  (
    70    set -e
    71  
    72    setup_single_local_branch_tracked_corrupt
    73  
    74    git lfs migrate import --everything --fixup --yes --exclude="*.txt" 2>&1 \
    75      | tee migrate.log
    76  
    77    if [ "${PIPESTATUS[0]}" -eq 0 ]; then
    78      echo >&2 "fatal: expected 'git lfs migrate ...' to fail, didn't ..."
    79      exit 1
    80    fi
    81  
    82    grep -q "fatal: cannot use --fixup with --include, --exclude" migrate.log
    83  )
    84  end_test
    85  
    86  begin_test "migrate import (--fixup, --no-rewrite)"
    87  (
    88    set -e
    89  
    90    setup_single_local_branch_tracked_corrupt
    91  
    92    git lfs migrate import --everything --fixup --yes --no-rewrite 2>&1 \
    93      | tee migrate.log
    94  
    95    if [ "${PIPESTATUS[0]}" -eq 0 ]; then
    96      echo >&2 "fatal: expected 'git lfs migrate ...' to fail, didn't ..."
    97      exit 1
    98    fi
    99  
   100    grep -q "fatal: --no-rewrite and --fixup cannot be combined" migrate.log
   101  )
   102  end_test