Merge branch 'en/dirty-merge-fixes'
[git] / t / t9817-git-p4-exclude.sh
1 #!/bin/sh
2
3 test_description='git p4 tests for excluded paths during clone and sync'
4
5 . ./lib-git-p4.sh
6
7 test_expect_success 'start p4d' '
8         start_p4d
9 '
10
11 # Create a repo with the structure:
12 #
13 #    //depot/wanted/foo
14 #    //depot/discard/foo
15 #
16 # Check that we can exclude a subdirectory with both
17 # clone and sync operations.
18
19 test_expect_success 'create exclude repo' '
20         (
21                 cd "$cli" &&
22                 mkdir -p wanted discard &&
23                 echo wanted >wanted/foo &&
24                 echo discard >discard/foo &&
25                 p4 add wanted/foo discard/foo &&
26                 p4 submit -d "initial revision"
27         )
28 '
29
30 test_expect_success 'check the repo was created correctly' '
31         test_when_finished cleanup_git &&
32         git p4 clone --dest="$git" //depot/...@all &&
33         (
34                 cd "$git" &&
35                 test_path_is_file wanted/foo &&
36                 test_path_is_file discard/foo
37         )
38 '
39
40 test_expect_success 'clone, excluding part of repo' '
41         test_when_finished cleanup_git &&
42         git p4 clone -//depot/discard/... --dest="$git" //depot/...@all &&
43         (
44                 cd "$git" &&
45                 test_path_is_file wanted/foo &&
46                 test_path_is_missing discard/foo
47         )
48 '
49
50 test_expect_success 'clone, then sync with exclude' '
51         test_when_finished cleanup_git &&
52         git p4 clone -//depot/discard/... --dest="$git" //depot/...@all &&
53         (
54                 cd "$cli" &&
55                 p4 edit wanted/foo discard/foo &&
56                 date >>wanted/foo &&
57                 date >>discard/foo &&
58                 p4 submit -d "updating" &&
59
60                 cd "$git" &&
61                 git p4 sync -//depot/discard/... &&
62                 test_path_is_file wanted/foo &&
63                 test_path_is_missing discard/foo
64         )
65 '
66
67 test_expect_success 'kill p4d' '
68         kill_p4d
69 '
70
71 test_done