You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.3 KiB
70 lines
2.3 KiB
#!/bin/sh |
|
|
|
test_description='git p4 directory/file bug handling |
|
|
|
This test creates files and directories with the same name in perforce and |
|
checks that git-p4 recovers from the error at the same time as the perforce |
|
repository.' |
|
|
|
. ./lib-git-p4.sh |
|
|
|
test_expect_success 'start p4d' ' |
|
start_p4d && |
|
{ p4 configure set submit.collision.check=0 || :; } |
|
' |
|
|
|
test_expect_success 'init depot' ' |
|
( |
|
cd "$cli" && |
|
|
|
touch add_file_add_dir_del_file add_file_add_dir_del_dir && |
|
p4 add add_file_add_dir_del_file add_file_add_dir_del_dir && |
|
mkdir add_dir_add_file_del_file add_dir_add_file_del_dir && |
|
touch add_dir_add_file_del_file/file add_dir_add_file_del_dir/file && |
|
p4 add add_dir_add_file_del_file/file add_dir_add_file_del_dir/file && |
|
p4 submit -d "add initial" && |
|
|
|
rm -f add_file_add_dir_del_file add_file_add_dir_del_dir && |
|
mkdir add_file_add_dir_del_file add_file_add_dir_del_dir && |
|
touch add_file_add_dir_del_file/file add_file_add_dir_del_dir/file && |
|
p4 add add_file_add_dir_del_file/file add_file_add_dir_del_dir/file && |
|
rm -rf add_dir_add_file_del_file add_dir_add_file_del_dir && |
|
touch add_dir_add_file_del_file add_dir_add_file_del_dir && |
|
p4 add add_dir_add_file_del_file add_dir_add_file_del_dir && |
|
p4 submit -d "add conflicting" && |
|
|
|
p4 delete -k add_file_add_dir_del_file && |
|
p4 delete -k add_file_add_dir_del_dir/file && |
|
p4 delete -k add_dir_add_file_del_file && |
|
p4 delete -k add_dir_add_file_del_dir/file && |
|
p4 submit -d "delete conflicting" && |
|
|
|
p4 delete -k "add_file_add_dir_del_file/file" && |
|
p4 delete -k "add_file_add_dir_del_dir" && |
|
p4 delete -k "add_dir_add_file_del_file/file" && |
|
p4 delete -k "add_dir_add_file_del_dir" && |
|
p4 submit -d "delete remaining" |
|
) |
|
' |
|
|
|
test_expect_success 'clone with git-p4' ' |
|
git p4 clone --dest="$git" //depot/@1,3 |
|
' |
|
|
|
test_expect_success 'check contents' ' |
|
test_path_is_dir "$git/add_file_add_dir_del_file" && |
|
test_path_is_file "$git/add_file_add_dir_del_dir" && |
|
test_path_is_dir "$git/add_dir_add_file_del_file" && |
|
test_path_is_file "$git/add_dir_add_file_del_dir" |
|
' |
|
|
|
test_expect_success 'rebase and check empty' ' |
|
git -C "$git" p4 rebase && |
|
|
|
test_path_is_missing "$git/add_file_add_dir_del_file" && |
|
test_path_is_missing "$git/add_file_add_dir_del_dir" && |
|
test_path_is_missing "$git/add_dir_add_file_del_file" && |
|
test_path_is_missing "$git/add_dir_add_file_del_dir" |
|
' |
|
|
|
test_done
|
|
|