git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 08/11] git p4: handle files with wildcards when doing RCS scrubbing

From
PWPete Wyckoff <pw@padd.com>
Date
Jan 21, 2014, 23:16 UTC
Message-ID
<1390346208-9207-9-git-send-email-pw@padd.com>
In-Reply-To
<1390346208-9207-1-git-send-email-pw@padd.com>

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>
---
 git-p4.py                   |  4 ++--
 t/t9812-git-p4-wildcards.sh | 23 +++++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index a4414b5..26b874f 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -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']
 
 #
diff --git a/t/t9812-git-p4-wildcards.sh b/t/t9812-git-p4-wildcards.sh
index f2ddbc5..c7472cb 100755
--- a/t/t9812-git-p4-wildcards.sh
+++ b/t/t9812-git-p4-wildcards.sh
@@ -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
 '
-- 
1.8.5.2.320.g99957e5
Previous: Pete WyckoffNext: Pete Wyckoff
Message 11 of 27 in “git p4 tests and a few bug fixes”
  1. 00/11 git p4 tests and a few bug fixesPete Wyckoff, Jan 21, 2014
  2. 01/11 git p4 test: wildcards are supportedPete Wyckoff, Jan 21, 2014
  3. 02/11 git p4 test: ensure p4 symlink parsing worksPete Wyckoff, Jan 21, 2014
  4. 03/11 git p4: work around p4 bug that causes empty symlinksPete Wyckoff, Jan 21, 2014
  5. Eric SunshineJan 22, 2014
  6. 04/11 git p4 test: explicitly check p4 wildcard deletePete Wyckoff, Jan 21, 2014
  7. 05/11 git p4 test: is_cli_file_writeable succeedsPete Wyckoff, Jan 21, 2014
  8. 06/11 git p4 test: run as user "author"Pete Wyckoff, Jan 21, 2014
  9. Eric SunshineJan 22, 2014
  10. 07/11 git p4 test: do not pollute /tmpPete Wyckoff, Jan 21, 2014
  11. 08/11 git p4: handle files with wildcards when doing RCS scrubbingPete Wyckoff, Jan 21, 2014
  12. 09/11 git p4: fix an error message when "p4 where" failsPete Wyckoff, Jan 21, 2014
  13. 10/11 git p4 test: examine behavior with locked (+l) filesPete Wyckoff, Jan 21, 2014
  14. 11/11 git p4 doc: use two-line style for options with multiple spellingsPete Wyckoff, Jan 21, 2014
  15. Junio C HamanoJan 22, 2014
  16. Pete WyckoffJan 22, 2014
  17. 01/11 git p4 test: wildcards are supportedPete Wyckoff, Jan 22, 2014
  18. 02/11 git p4 test: ensure p4 symlink parsing worksPete Wyckoff, Jan 22, 2014
  19. 03/11 git p4: work around p4 bug that causes empty symlinksPete Wyckoff, Jan 22, 2014
  20. 04/11 git p4 test: explicitly check p4 wildcard deletePete Wyckoff, Jan 22, 2014
  21. 05/11 git p4 test: is_cli_file_writeable succeedsPete Wyckoff, Jan 22, 2014
  22. 06/11 git p4 test: run as user "author"Pete Wyckoff, Jan 22, 2014
  23. 07/11 git p4 test: do not pollute /tmpPete Wyckoff, Jan 22, 2014
  24. 08/11 git p4: handle files with wildcards when doing RCS scrubbingPete Wyckoff, Jan 22, 2014
  25. 09/11 git p4: fix an error message when "p4 where" failsPete Wyckoff, Jan 22, 2014
  26. 10/11 git p4 test: examine behavior with locked (+l) filesPete Wyckoff, Jan 22, 2014
  27. 11/11 git p4 doc: use two-line style for options with multiple spellingsPete Wyckoff, Jan 22, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.