2017-06-09 23:53:13 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
. "test/test-migrate-fixtures.sh"
|
|
|
|
. "test/testlib.sh"
|
|
|
|
|
|
|
|
begin_test "migrate info (default branch)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 140 B 1/1 files(s) 100%
|
|
|
|
*.txt 120 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "HEAD" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (given branch)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info my-feature 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 170 B 2/2 files(s) 100%
|
|
|
|
*.txt 120 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (default branch with filter)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info --include "*.md" 2>&1 | tail -n 1) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 140 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (given branch with filter)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info --include "*.md" my-feature 2>&1 | tail -n 1) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 170 B 2/2 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (default branch, exclude remote refs)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_single_remote_branch
|
|
|
|
|
|
|
|
git show-ref
|
|
|
|
|
|
|
|
original_remote="$(git rev-parse refs/remotes/origin/master)"
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 50 B 1/1 files(s) 100%
|
|
|
|
*.txt 30 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_remote="$(git rev-parse refs/remotes/origin/master)"
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/remotes/origin/master" "$original_remote" "$migrated_remote"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (given branch, exclude remote refs)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_remote_branches
|
|
|
|
|
|
|
|
original_remote="$(git rev-parse refs/remotes/origin/master)"
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info my-feature 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 52 B 2/2 files(s) 100%
|
|
|
|
*.txt 50 B 2/2 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_remote="$(git rev-parse refs/remotes/origin/master)"
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/remotes/origin/master" "$original_remote" "$migrated_remote"
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
2017-11-17 16:46:33 +00:00
|
|
|
begin_test "migrate info (given ref, --assume-current-remote-refs)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_single_remote_branch
|
|
|
|
|
|
|
|
original_remote="$(git rev-parse refs/remotes/origin/master)"
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
|
|
|
git tag pseudo-remote "$original_remote"
|
|
|
|
# Remove the refs/remotes/origin/master ref, and instruct 'git lfs migrate' to
|
|
|
|
# not fetch it.
|
|
|
|
git update-ref -d refs/remotes/origin/master
|
|
|
|
|
|
|
|
diff -u <(git lfs migrate info --assume-current-remote-refs 2>&1 | tail -n 2) <(cat <<-EOF
|
|
|
|
*.md 190 B 2/2 files(s) 100%
|
|
|
|
*.txt 150 B 2/2 files(s) 100%
|
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_remote="$(git rev-parse pseudo-remote)"
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/remotes/origin/master" "$original_remote" "$migrated_remote"
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
2017-06-09 23:53:13 +00:00
|
|
|
begin_test "migrate info (include/exclude ref)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_remote_branches
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
diff -u <(git lfs migrate info \
|
|
|
|
--include-ref=refs/heads/my-feature \
|
2017-06-14 22:10:42 +00:00
|
|
|
--exclude-ref=refs/heads/master 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 31 B 1/1 files(s) 100%
|
|
|
|
*.txt 30 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (include/exclude ref with filter)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_remote_branches
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
diff -u <(git lfs migrate info \
|
|
|
|
--include="*.txt" \
|
|
|
|
--include-ref=refs/heads/my-feature \
|
2017-06-14 22:10:42 +00:00
|
|
|
--exclude-ref=refs/heads/master 2>&1 | tail -n 1) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.txt 30 B 1/1 files(s) 100%
|
2017-06-09 23:53:13 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
2017-06-13 21:59:36 +00:00
|
|
|
|
2017-09-13 21:11:40 +00:00
|
|
|
begin_test "migrate info (nested sub-trees, no filter)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_single_local_branch_deep_trees
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
|
|
|
diff -u <(git lfs migrate info 2>/dev/null) <(cat <<-EOF
|
|
|
|
*.txt 120 B 1/1 files(s) 100%
|
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
2017-06-13 21:59:36 +00:00
|
|
|
begin_test "migrate info (above threshold)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
2017-06-26 15:24:09 +00:00
|
|
|
diff -u <(git lfs migrate info --above=130B 2>&1 | tail -n 1) <(cat <<-EOF
|
|
|
|
*.md 140 B 1/1 files(s) 100%
|
2017-06-13 21:59:36 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "HEAD" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (above threshold, top)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
2017-06-14 22:10:42 +00:00
|
|
|
diff -u <(git lfs migrate info --above=130B --top=1 2>&1 | tail -n 1) <(cat <<-EOF
|
2017-06-13 23:35:23 +00:00
|
|
|
*.md 140 B 1/1 files(s) 100%
|
2017-06-13 21:59:36 +00:00
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "HEAD" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
2017-06-15 21:08:15 +00:00
|
|
|
begin_test "migrate info (given unit)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
2017-07-31 17:47:36 +00:00
|
|
|
diff -u <(git lfs migrate info --unit=kb 2>&1 | tail -n 2) <(cat <<-EOF
|
2017-06-15 21:08:15 +00:00
|
|
|
*.md 0.1 1/1 files(s) 100%
|
|
|
|
*.txt 0.1 1/1 files(s) 100%
|
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "HEAD" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
2017-06-26 15:24:09 +00:00
|
|
|
|
|
|
|
begin_test "migrate info (doesn't show empty info entries)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
original_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
[ "0" -eq "$(git lfs migrate info --above=1mb 2>/dev/null | wc -l)" ]
|
|
|
|
|
|
|
|
migrated_head="$(git rev-parse HEAD)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "HEAD" "$original_head" "$migrated_head"
|
|
|
|
)
|
|
|
|
end_test
|
2017-07-04 22:31:44 +00:00
|
|
|
|
|
|
|
begin_test "migrate info (empty set)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
migrate="$(git lfs migrate info \
|
|
|
|
--include-ref=refs/heads/master \
|
|
|
|
--exclude-ref=refs/heads/master 2>/dev/null
|
|
|
|
)"
|
|
|
|
|
|
|
|
[ "0" -eq "$(echo -n "$migrate" | wc -l | awk '{ print $1 }')" ]
|
|
|
|
)
|
|
|
|
end_test
|
2017-09-07 17:47:17 +00:00
|
|
|
|
|
|
|
begin_test "migrate info (--everything)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
git checkout master
|
|
|
|
|
|
|
|
original_master="$(git rev-parse refs/heads/master)"
|
|
|
|
original_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
diff -u <(git lfs migrate info --everything 2>&1 | tail -n 2) <(cat <<-EOF
|
|
|
|
*.md 170 B 2/2 files(s) 100%
|
|
|
|
*.txt 120 B 1/1 files(s) 100%
|
|
|
|
EOF)
|
|
|
|
|
|
|
|
migrated_master="$(git rev-parse refs/heads/master)"
|
|
|
|
migrated_feature="$(git rev-parse refs/heads/my-feature)"
|
|
|
|
|
|
|
|
assert_ref_unmoved "refs/heads/master" "$original_master" "$migrated_master"
|
|
|
|
assert_ref_unmoved "refs/heads/my-feature" "$original_feature" "$migrated_feature"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (--everything with args)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
[ "$(git lfs migrate info --everything master 2>&1)" = \
|
|
|
|
"fatal: cannot use --everything with explicit reference arguments" ]
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "migrate info (--everything with --include-ref)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
[ "$(git lfs migrate info --everything --include-ref=refs/heads/master 2>&1)" = \
|
|
|
|
"fatal: cannot use --everything with --include-ref or --exclude-ref" ]
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
begin_test "migrate info (--everything with --exclude-ref)"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
setup_multiple_local_branches
|
|
|
|
|
|
|
|
[ "$(git lfs migrate info --everything --exclude-ref=refs/heads/master 2>&1)" = \
|
|
|
|
"fatal: cannot use --everything with --include-ref or --exclude-ref" ]
|
|
|
|
)
|
|
|
|
end_test
|