Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
git/t/t4023-diff-rename-typechange.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
87 lines (66 sloc)
1.69 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
test_description='typechange rename detection' | |
. ./test-lib.sh | |
test_expect_success setup ' | |
rm -f foo bar && | |
cat "$TEST_DIRECTORY"/../COPYING >foo && | |
test_ln_s_add linklink bar && | |
git add foo && | |
git commit -a -m Initial && | |
git tag one && | |
git rm -f foo bar && | |
cat "$TEST_DIRECTORY"/../COPYING >bar && | |
test_ln_s_add linklink foo && | |
git add bar && | |
git commit -a -m Second && | |
git tag two && | |
git rm -f foo bar && | |
cat "$TEST_DIRECTORY"/../COPYING >foo && | |
git add foo && | |
git commit -a -m Third && | |
git tag three && | |
mv foo bar && | |
test_ln_s_add linklink foo && | |
git add bar && | |
git commit -a -m Fourth && | |
git tag four && | |
# This is purely for sanity check | |
git rm -f foo bar && | |
cat "$TEST_DIRECTORY"/../COPYING >foo && | |
cat "$TEST_DIRECTORY"/../Makefile >bar && | |
git add foo bar && | |
git commit -a -m Fifth && | |
git tag five && | |
git rm -f foo bar && | |
cat "$TEST_DIRECTORY"/../Makefile >foo && | |
cat "$TEST_DIRECTORY"/../COPYING >bar && | |
git add foo bar && | |
git commit -a -m Sixth && | |
git tag six | |
' | |
test_expect_success 'cross renames to be detected for regular files' ' | |
git diff-tree five six -r --name-status -B -M | sort >actual && | |
{ | |
echo "R100 foo bar" | |
echo "R100 bar foo" | |
} | sort >expect && | |
test_cmp expect actual | |
' | |
test_expect_success 'cross renames to be detected for typechange' ' | |
git diff-tree one two -r --name-status -B -M | sort >actual && | |
{ | |
echo "R100 foo bar" | |
echo "R100 bar foo" | |
} | sort >expect && | |
test_cmp expect actual | |
' | |
test_expect_success 'moves and renames' ' | |
git diff-tree three four -r --name-status -B -M | sort >actual && | |
{ | |
# see -B -M (#6) in t4008 | |
echo "C100 foo bar" | |
echo "T100 foo" | |
} | sort >expect && | |
test_cmp expect actual | |
' | |
test_done |