Skip to content

Commit

Permalink
git p4: handle files with wildcards when doing RCS scrubbing
Browse files Browse the repository at this point in the history
Commit 9d7d446 (git p4: submit files with wildcards, 2012-04-29)
fixed problems with handling files that had p4 wildcard
characters, like "@" and "*".  But it missed one case, that of
RCS keyword scrubbing, which uses "p4 fstat" to extract type
information.  Fix it by calling wildcard_encode() on the raw
filename.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Pete Wyckoff authored and Junio C Hamano committed Jan 22, 2014
1 parent 0cf1b72 commit 79467e6
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
4 changes: 2 additions & 2 deletions git-p4.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,8 @@ def split_p4_type(p4type):
#
# return the raw p4 type of a file (text, text+ko, etc)
#
def p4_type(file):
results = p4CmdList(["fstat", "-T", "headType", file])
def p4_type(f):
results = p4CmdList(["fstat", "-T", "headType", wildcard_encode(f)])
return results[0]['headType']

#
Expand Down
23 changes: 23 additions & 0 deletions t/t9812-git-p4-wildcards.sh
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,29 @@ test_expect_success 'p4 deleted a wildcard file' '
)
'

test_expect_success 'wildcard files requiring keyword scrub' '
(
cd "$cli" &&
cat <<-\EOF >scrub@wild &&
$Id$
line2
EOF
p4 add -t text+k -f scrub@wild &&
p4 submit -d "scrub at wild"
) &&
test_when_finished cleanup_git &&
git p4 clone --dest="$git" //depot &&
(
cd "$git" &&
git config git-p4.skipSubmitEdit true &&
git config git-p4.attemptRCSCleanup true &&
sed "s/^line2/line2 edit/" <scrub@wild >scrub@wild.tmp &&
mv -f scrub@wild.tmp scrub@wild &&
git commit -m "scrub at wild line2 edit" scrub@wild &&
git p4 submit
)
'

test_expect_success 'kill p4d' '
kill_p4d
'
Expand Down

0 comments on commit 79467e6

Please sign in to comment.