1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/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
|