71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/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
 |