Merge branch 'mg/status-in-progress-info' into pu
[git] / t / t9832-unshelve.sh
1 #!/bin/sh
2
3 test_description='git p4 unshelve'
4
5 . ./lib-git-p4.sh
6
7 test_expect_success 'start p4d' '
8         start_p4d
9 '
10
11 test_expect_success 'init depot' '
12         (
13                 cd "$cli" &&
14                 echo file1 >file1 &&
15                 p4 add file1 &&
16                 p4 submit -d "change 1"
17                 : > file_to_delete &&
18                 p4 add file_to_delete &&
19                 p4 submit -d "file to delete"
20         )
21 '
22
23 test_expect_success 'initial clone' '
24         git p4 clone --dest="$git" //depot/@all
25 '
26
27 test_expect_success 'create shelved changelist' '
28         test_when_finished cleanup_git &&
29         (
30                 cd "$cli" &&
31                 p4 edit file1 &&
32                 echo "a change" >>file1 &&
33                 echo "new file" > file2 &&
34                 p4 add file2 &&
35                 p4 delete file_to_delete &&
36                 p4 opened &&
37                 p4 shelve -i <<EOF
38 Change: new
39 Description:
40         Test commit
41
42         Further description
43 Files:
44         //depot/file1
45         //depot/file2
46         //depot/file_to_delete
47 EOF
48
49         ) &&
50         (
51                 cd "$git" &&
52                 change=$(p4 changes -s shelved -m1 | cut -d " " -f 2) &&
53                 git p4 unshelve $change &&
54                 git show refs/remotes/p4/unshelved/$change | grep -q "Further description" &&
55                 git cherry-pick refs/remotes/p4/unshelved/$change &&
56                 test_path_is_file file2 &&
57                 test_cmp file1 "$cli"/file1 &&
58                 test_cmp file2 "$cli"/file2 &&
59                 test_path_is_missing file_to_delete
60         )
61 '
62
63 test_expect_success 'kill p4d' '
64         kill_p4d
65 '
66
67 test_done