]> git.ipfire.org Git - thirdparty/git.git/blame - t/t9803-git-p4-shell-metachars.sh
path.c: don't call the match function without value in trie_find()
[thirdparty/git.git] / t / t9803-git-p4-shell-metachars.sh
CommitLineData
6de040df
LD
1#!/bin/sh
2
6ab1d76c 3test_description='git p4 transparency to shell metachars in filenames'
6de040df
LD
4
5. ./lib-git-p4.sh
6
7test_expect_success 'start p4d' '
8 start_p4d
9'
10
11test_expect_success 'init depot' '
12 (
13 cd "$cli" &&
14 echo file1 >file1 &&
15 p4 add file1 &&
16 p4 submit -d "file1"
17 )
18'
19
20test_expect_success 'shell metachars in filenames' '
6ab1d76c 21 git p4 clone --dest="$git" //depot &&
6de040df
LD
22 test_when_finished cleanup_git &&
23 (
24 cd "$git" &&
25 git config git-p4.skipSubmitEditCheck true &&
26 echo f1 >foo\$bar &&
27 git add foo\$bar &&
28 echo f2 >"file with spaces" &&
29 git add "file with spaces" &&
30 git commit -m "add files" &&
0e496492 31 P4EDITOR="test-tool chmtime +5" git p4 submit
6de040df
LD
32 ) &&
33 (
34 cd "$cli" &&
35 p4 sync ... &&
36 test -e "file with spaces" &&
37 test -e "foo\$bar"
38 )
39'
40
41test_expect_success 'deleting with shell metachars' '
6ab1d76c 42 git p4 clone --dest="$git" //depot &&
6de040df
LD
43 test_when_finished cleanup_git &&
44 (
45 cd "$git" &&
46 git config git-p4.skipSubmitEditCheck true &&
47 git rm foo\$bar &&
48 git rm file\ with\ spaces &&
49 git commit -m "remove files" &&
0e496492 50 P4EDITOR="test-tool chmtime +5" git p4 submit
6de040df
LD
51 ) &&
52 (
53 cd "$cli" &&
54 p4 sync ... &&
55 test ! -e "file with spaces" &&
56 test ! -e foo\$bar
57 )
58'
59
52a4880b
LD
60# Create a branch with a shell metachar in its name
61#
62# 1. //depot/main
63# 2. //depot/branch$3
64
65test_expect_success 'branch with shell char' '
66 test_when_finished cleanup_git &&
67 test_create_repo "$git" &&
68 (
69 cd "$cli" &&
70
71 mkdir -p main &&
72
73 echo f1 >main/f1 &&
74 p4 add main/f1 &&
75 p4 submit -d "main/f1" &&
76
77 p4 integrate //depot/main/... //depot/branch\$3/... &&
78 p4 submit -d "integrate main to branch\$3" &&
79
80 echo f1 >branch\$3/shell_char_branch_file &&
81 p4 add branch\$3/shell_char_branch_file &&
82 p4 submit -d "branch\$3/shell_char_branch_file" &&
83
84 p4 branch -i <<-EOF &&
85 Branch: branch\$3
86 View: //depot/main/... //depot/branch\$3/...
87 EOF
88
89 p4 edit main/f1 &&
90 echo "a change" >> main/f1 &&
91 p4 submit -d "a change" main/f1 &&
92
93 p4 integrate -b branch\$3 &&
94 p4 resolve -am branch\$3/... &&
95 p4 submit -d "integrate main to branch\$3" &&
96
97 cd "$git" &&
98
99 git config git-p4.branchList main:branch\$3 &&
6ab1d76c 100 git p4 clone --dest=. --detect-branches //depot@all &&
52a4880b
LD
101 git log --all --graph --decorate --stat &&
102 git reset --hard p4/depot/branch\$3 &&
103 test -f shell_char_branch_file &&
104 test -f f1
105 )
106'
107
6de040df 108test_done