about summary refs log tree commit diff
path: root/third_party/git/t/t9810-git-p4-rcs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/t9810-git-p4-rcs.sh')
-rwxr-xr-xthird_party/git/t/t9810-git-p4-rcs.sh363
1 files changed, 0 insertions, 363 deletions
diff --git a/third_party/git/t/t9810-git-p4-rcs.sh b/third_party/git/t/t9810-git-p4-rcs.sh
deleted file mode 100755
index 57b533dc6f..0000000000
--- a/third_party/git/t/t9810-git-p4-rcs.sh
+++ /dev/null
@@ -1,363 +0,0 @@
-#!/bin/sh
-
-test_description='git p4 rcs keywords'
-
-. ./lib-git-p4.sh
-
-test_expect_success 'start p4d' '
-	start_p4d
-'
-
-#
-# Make one file with keyword lines at the top, and
-# enough plain text to be able to test modifications
-# far away from the keywords.
-#
-test_expect_success 'init depot' '
-	(
-		cd "$cli" &&
-		cat <<-\EOF >filek &&
-		$Id$
-		/* $Revision$ */
-		# $Change$
-		line4
-		line5
-		line6
-		line7
-		line8
-		EOF
-		sed "s/Revision/Revision: do not scrub me/" <filek >fileko &&
-		sed "s/Id/Id: do not scrub me/" <fileko >file_text &&
-		p4 add -t text+k filek &&
-		p4 submit -d "filek" &&
-		p4 add -t text+ko fileko &&
-		p4 submit -d "fileko" &&
-		p4 add -t text file_text &&
-		p4 submit -d "file_text"
-	)
-'
-
-#
-# Generate these in a function to make it easy to use single quote marks.
-#
-write_scrub_scripts () {
-	cat >"$TRASH_DIRECTORY/scrub_k.py" <<-\EOF &&
-	import re, sys
-	sys.stdout.write(re.sub(r'(?i)\$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*\$', r'$\1$', sys.stdin.read()))
-	EOF
-	cat >"$TRASH_DIRECTORY/scrub_ko.py" <<-\EOF
-	import re, sys
-	sys.stdout.write(re.sub(r'(?i)\$(Id|Header):[^$]*\$', r'$\1$', sys.stdin.read()))
-	EOF
-}
-
-test_expect_success 'scrub scripts' '
-	write_scrub_scripts
-'
-
-#
-# Compare $cli/file to its scrubbed version, should be different.
-# Compare scrubbed $cli/file to $git/file, should be same.
-#
-scrub_k_check () {
-	file="$1" &&
-	scrub="$TRASH_DIRECTORY/$file" &&
-	"$PYTHON_PATH" "$TRASH_DIRECTORY/scrub_k.py" <"$git/$file" >"$scrub" &&
-	! test_cmp "$cli/$file" "$scrub" &&
-	test_cmp "$git/$file" "$scrub" &&
-	rm "$scrub"
-}
-scrub_ko_check () {
-	file="$1" &&
-	scrub="$TRASH_DIRECTORY/$file" &&
-	"$PYTHON_PATH" "$TRASH_DIRECTORY/scrub_ko.py" <"$git/$file" >"$scrub" &&
-	! test_cmp "$cli/$file" "$scrub" &&
-	test_cmp "$git/$file" "$scrub" &&
-	rm "$scrub"
-}
-
-#
-# Modify far away from keywords.  If no RCS lines show up
-# in the diff, there is no conflict.
-#
-test_expect_success 'edit far away from RCS lines' '
-	test_when_finished cleanup_git &&
-	git p4 clone --dest="$git" //depot &&
-	(
-		cd "$git" &&
-		git config git-p4.skipSubmitEdit true &&
-		sed "s/^line7/line7 edit/" <filek >filek.tmp &&
-		mv -f filek.tmp filek &&
-		git commit -m "filek line7 edit" filek &&
-		git p4 submit &&
-		scrub_k_check filek
-	)
-'
-
-#
-# Modify near the keywords.  This will require RCS scrubbing.
-#
-test_expect_success 'edit near RCS lines' '
-	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/^line4/line4 edit/" <filek >filek.tmp &&
-		mv -f filek.tmp filek &&
-		git commit -m "filek line4 edit" filek &&
-		git p4 submit &&
-		scrub_k_check filek
-	)
-'
-
-#
-# Modify the keywords themselves.  This also will require RCS scrubbing.
-#
-test_expect_success 'edit keyword lines' '
-	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 "/Revision/d" <filek >filek.tmp &&
-		mv -f filek.tmp filek &&
-		git commit -m "filek remove Revision line" filek &&
-		git p4 submit &&
-		scrub_k_check filek
-	)
-'
-
-#
-# Scrubbing text+ko files should not alter all keywords, just Id, Header.
-#
-test_expect_success 'scrub ko files differently' '
-	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/^line4/line4 edit/" <fileko >fileko.tmp &&
-		mv -f fileko.tmp fileko &&
-		git commit -m "fileko line4 edit" fileko &&
-		git p4 submit &&
-		scrub_ko_check fileko &&
-		! scrub_k_check fileko
-	)
-'
-
-# hack; git p4 submit should do it on its own
-test_expect_success 'cleanup after failure' '
-	(
-		cd "$cli" &&
-		p4 revert ...
-	)
-'
-
-# perl $File:: bug check
-test_expect_success 'ktext expansion should not expand multi-line $File::' '
-	(
-		cd "$cli" &&
-		cat >lv.pm <<-\EOF &&
-		my $wanted = sub { my $f = $File::Find::name;
-				    if ( -f && $f =~ /foo/ ) {
-		EOF
-		p4 add -t ktext lv.pm &&
-		p4 submit -d "lv.pm"
-	) &&
-	test_when_finished cleanup_git &&
-	git p4 clone --dest="$git" //depot &&
-	(
-		cd "$git" &&
-		test_cmp "$cli/lv.pm" lv.pm
-	)
-'
-
-#
-# Do not scrub anything but +k or +ko files.  Sneak a change into
-# the cli file so that submit will get a conflict.  Make sure that
-# scrubbing doesn't make a mess of things.
-#
-# This might happen only if the git repo is behind the p4 repo at
-# submit time, and there is a conflict.
-#
-test_expect_success 'do not scrub plain text' '
-	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/^line4/line4 edit/" <file_text >file_text.tmp &&
-		mv -f file_text.tmp file_text &&
-		git commit -m "file_text line4 edit" file_text &&
-		(
-			cd "$cli" &&
-			p4 open file_text &&
-			sed "s/^line5/line5 p4 edit/" <file_text >file_text.tmp &&
-			mv -f file_text.tmp file_text &&
-			p4 submit -d "file5 p4 edit"
-		) &&
-		echo s | test_expect_code 1 git p4 submit &&
-		(
-			# make sure the file is not left open
-			cd "$cli" &&
-			! p4 fstat -T action file_text
-		)
-	)
-'
-
-# hack; git p4 submit should do it on its own
-test_expect_success 'cleanup after failure 2' '
-	(
-		cd "$cli" &&
-		p4 revert ...
-	)
-'
-
-create_kw_file () {
-	cat <<\EOF >"$1"
-/* A file
-	Id: $Id$
-	Revision: $Revision$
-	File: $File$
- */
-int main(int argc, const char **argv) {
-	return 0;
-}
-EOF
-}
-
-test_expect_success 'add kwfile' '
-	(
-		cd "$cli" &&
-		echo file1 >file1 &&
-		p4 add file1 &&
-		p4 submit -d "file 1" &&
-		create_kw_file kwfile1.c &&
-		p4 add kwfile1.c &&
-		p4 submit -d "Add rcw kw file" kwfile1.c
-	)
-'
-
-p4_append_to_file () {
-	f="$1" &&
-	p4 edit -t ktext "$f" &&
-	echo "/* $(date) */" >>"$f" &&
-	p4 submit -d "appending a line in p4"
-}
-
-# Create some files with RCS keywords. If they get modified
-# elsewhere then the version number gets bumped which then
-# results in a merge conflict if we touch the RCS kw lines,
-# even though the change itself would otherwise apply cleanly.
-test_expect_success 'cope with rcs keyword expansion damage' '
-	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 &&
-		(cd "$cli" && p4_append_to_file kwfile1.c) &&
-		old_lines=$(wc -l <kwfile1.c) &&
-		perl -n -i -e "print unless m/Revision:/" kwfile1.c &&
-		new_lines=$(wc -l <kwfile1.c) &&
-		test $new_lines = $(($old_lines - 1)) &&
-
-		git add kwfile1.c &&
-		git commit -m "Zap an RCS kw line" &&
-		git p4 submit &&
-		git p4 rebase &&
-		git diff p4/master &&
-		git p4 commit &&
-		echo "try modifying in both" &&
-		cd "$cli" &&
-		p4 edit kwfile1.c &&
-		echo "line from p4" >>kwfile1.c &&
-		p4 submit -d "add a line in p4" kwfile1.c &&
-		cd "$git" &&
-		echo "line from git at the top" | cat - kwfile1.c >kwfile1.c.new &&
-		mv kwfile1.c.new kwfile1.c &&
-		git commit -m "Add line in git at the top" kwfile1.c &&
-		git p4 rebase &&
-		git p4 submit
-	)
-'
-
-test_expect_success 'cope with rcs keyword file deletion' '
-	test_when_finished cleanup_git &&
-	(
-		cd "$cli" &&
-		echo "\$Revision\$" >kwdelfile.c &&
-		p4 add -t ktext kwdelfile.c &&
-		p4 submit -d "Add file to be deleted" &&
-		cat kwdelfile.c &&
-		grep 1 kwdelfile.c
-	) &&
-	git p4 clone --dest="$git" //depot &&
-	(
-		cd "$git" &&
-		grep Revision kwdelfile.c &&
-		git rm -f kwdelfile.c &&
-		git commit -m "Delete a file containing RCS keywords" &&
-		git config git-p4.skipSubmitEdit true &&
-		git config git-p4.attemptRCSCleanup true &&
-		git p4 submit
-	) &&
-	(
-		cd "$cli" &&
-		p4 sync &&
-		! test -f kwdelfile.c
-	)
-'
-
-# If you add keywords in git of the form $Header$ then everything should
-# work fine without any special handling.
-test_expect_success 'Add keywords in git which match the default p4 values' '
-	test_when_finished cleanup_git &&
-	git p4 clone --dest="$git" //depot &&
-	(
-		cd "$git" &&
-		echo "NewKW: \$Revision\$" >>kwfile1.c &&
-		git add kwfile1.c &&
-		git commit -m "Adding RCS keywords in git" &&
-		git config git-p4.skipSubmitEdit true &&
-		git config git-p4.attemptRCSCleanup true &&
-		git p4 submit
-	) &&
-	(
-		cd "$cli" &&
-		p4 sync &&
-		test -f kwfile1.c &&
-		grep "NewKW.*Revision.*[0-9]" kwfile1.c
-
-	)
-'
-
-# If you add keywords in git of the form $Header:#1$ then things will fail
-# unless git-p4 takes steps to scrub the *git* commit.
-#
-test_expect_failure 'Add keywords in git which do not match the default p4 values' '
-	test_when_finished cleanup_git &&
-	git p4 clone --dest="$git" //depot &&
-	(
-		cd "$git" &&
-		echo "NewKW2: \$Revision:1\$" >>kwfile1.c &&
-		git add kwfile1.c &&
-		git commit -m "Adding RCS keywords in git" &&
-		git config git-p4.skipSubmitEdit true &&
-		git config git-p4.attemptRCSCleanup true &&
-		git p4 submit
-	) &&
-	(
-		cd "$cli" &&
-		p4 sync &&
-		grep "NewKW2.*Revision.*[0-9]" kwfile1.c
-
-	)
-'
-
-test_done