about summary refs log tree commit diff
path: root/third_party/git/t/perf/p7519-fsmonitor.sh
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-09-21T10·03+0300
committerVincent Ambo <mail@tazj.in>2021-09-21T11·29+0300
commit43b1791ec601732ac31195df96781a848360a9ac (patch)
treedaae8d638343295d2f1f7da955e556ef4c958864 /third_party/git/t/perf/p7519-fsmonitor.sh
parent2d8e7dc9d9c38127ec4ebd13aee8e8f586a43318 (diff)
chore(3p/git): Unvendor git and track patches instead r/2903
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
Diffstat (limited to 'third_party/git/t/perf/p7519-fsmonitor.sh')
-rwxr-xr-xthird_party/git/t/perf/p7519-fsmonitor.sh183
1 files changed, 0 insertions, 183 deletions
diff --git a/third_party/git/t/perf/p7519-fsmonitor.sh b/third_party/git/t/perf/p7519-fsmonitor.sh
deleted file mode 100755
index def7ecdbc786..000000000000
--- a/third_party/git/t/perf/p7519-fsmonitor.sh
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/bin/sh
-
-test_description="Test core.fsmonitor"
-
-. ./perf-lib.sh
-
-#
-# Performance test for the fsmonitor feature which enables git to talk to a
-# file system change monitor and avoid having to scan the working directory
-# for new or modified files.
-#
-# By default, the performance test will utilize the Watchman file system
-# monitor if it is installed.  If Watchman is not installed, it will use a
-# dummy integration script that does not report any new or modified files.
-# The dummy script has very little overhead which provides optimistic results.
-#
-# The performance test will also use the untracked cache feature if it is
-# available as fsmonitor uses it to speed up scanning for untracked files.
-#
-# There are 3 environment variables that can be used to alter the default
-# behavior of the performance test:
-#
-# GIT_PERF_7519_UNTRACKED_CACHE: used to configure core.untrackedCache
-# GIT_PERF_7519_SPLIT_INDEX: used to configure core.splitIndex
-# GIT_PERF_7519_FSMONITOR: used to configure core.fsMonitor
-#
-# The big win for using fsmonitor is the elimination of the need to scan the
-# working directory looking for changed and untracked files. If the file
-# information is all cached in RAM, the benefits are reduced.
-#
-# GIT_PERF_7519_DROP_CACHE: if set, the OS caches are dropped between tests
-#
-
-test_perf_large_repo
-test_checkout_worktree
-
-test_lazy_prereq UNTRACKED_CACHE '
-	{ git update-index --test-untracked-cache; ret=$?; } &&
-	test $ret -ne 1
-'
-
-test_lazy_prereq WATCHMAN '
-	command -v watchman
-'
-
-if test_have_prereq WATCHMAN
-then
-	# Convert unix style paths to escaped Windows style paths for Watchman
-	case "$(uname -s)" in
-	MSYS_NT*)
-	  GIT_WORK_TREE="$(cygpath -aw "$PWD" | sed 's,\\,/,g')"
-	  ;;
-	*)
-	  GIT_WORK_TREE="$PWD"
-	  ;;
-	esac
-fi
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"
-then
-	# When using GIT_PERF_7519_DROP_CACHE, GIT_PERF_REPEAT_COUNT must be 1 to
-	# generate valid results. Otherwise the caching that happens for the nth
-	# run will negate the validity of the comparisons.
-	if test "$GIT_PERF_REPEAT_COUNT" -ne 1
-	then
-		echo "warning: Setting GIT_PERF_REPEAT_COUNT=1" >&2
-		GIT_PERF_REPEAT_COUNT=1
-	fi
-fi
-
-test_expect_success "setup for fsmonitor" '
-	# set untrackedCache depending on the environment
-	if test -n "$GIT_PERF_7519_UNTRACKED_CACHE"
-	then
-		git config core.untrackedCache "$GIT_PERF_7519_UNTRACKED_CACHE"
-	else
-		if test_have_prereq UNTRACKED_CACHE
-		then
-			git config core.untrackedCache true
-		else
-			git config core.untrackedCache false
-		fi
-	fi &&
-
-	# set core.splitindex depending on the environment
-	if test -n "$GIT_PERF_7519_SPLIT_INDEX"
-	then
-		git config core.splitIndex "$GIT_PERF_7519_SPLIT_INDEX"
-	fi &&
-
-	# set INTEGRATION_SCRIPT depending on the environment
-	if test -n "$GIT_PERF_7519_FSMONITOR"
-	then
-		INTEGRATION_SCRIPT="$GIT_PERF_7519_FSMONITOR"
-	else
-		#
-		# Choose integration script based on existence of Watchman.
-		# If Watchman exists, watch the work tree and attempt a query.
-		# If everything succeeds, use Watchman integration script,
-		# else fall back to an empty integration script.
-		#
-		mkdir .git/hooks &&
-		if test_have_prereq WATCHMAN
-		then
-			INTEGRATION_SCRIPT=".git/hooks/fsmonitor-watchman" &&
-			cp "$TEST_DIRECTORY/../templates/hooks--fsmonitor-watchman.sample" "$INTEGRATION_SCRIPT" &&
-			watchman watch "$GIT_WORK_TREE" &&
-			watchman watch-list | grep -q -F "$GIT_WORK_TREE"
-		else
-			INTEGRATION_SCRIPT=".git/hooks/fsmonitor-empty" &&
-			write_script "$INTEGRATION_SCRIPT"<<-\EOF
-			EOF
-		fi
-	fi &&
-
-	git config core.fsmonitor "$INTEGRATION_SCRIPT" &&
-	git update-index --fsmonitor
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status -uno (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status -uno
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status -uall (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status -uall
-'
-
-test_expect_success "setup without fsmonitor" '
-	unset INTEGRATION_SCRIPT &&
-	git config --unset core.fsmonitor &&
-	git update-index --no-fsmonitor
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status -uno (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status -uno
-'
-
-if test -n "$GIT_PERF_7519_DROP_CACHE"; then
-	test-tool drop-caches
-fi
-
-test_perf "status -uall (fsmonitor=$INTEGRATION_SCRIPT)" '
-	git status -uall
-'
-
-if test_have_prereq WATCHMAN
-then
-	watchman watch-del "$GIT_WORK_TREE" >/dev/null 2>&1 &&
-
-	# Work around Watchman bug on Windows where it holds on to handles
-	# preventing the removal of the trash directory
-	watchman shutdown-server >/dev/null 2>&1
-fi
-
-test_done