diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
index f0aec64..5f140f6 100644
--- a/dev-vcs/git/Manifest
+++ b/dev-vcs/git/Manifest
@@ -1,3 +1,3 @@
-DIST git-2.21.0.tar.xz 5491296 BLAKE2B c5e66f4d4045f99bb4306e8f096ae9299908383df78bdf2a954cd415f4778eb59ea0ee7d501689313617de7dc1d2ee4ae15ab70dee564add5de877109073ddff SHA512 83f57c3950a07f6773a3aea66611d22daba0e5599e5d8f0751a16f6fdbeab0f3844d942a39a5642051212df99d1d4513253c36829b1454b4f0977cc6026fd973
-DIST git-htmldocs-2.21.0.tar.xz 1234956 BLAKE2B d8ef32acbad7eeb8758f711e09c380dbf3ca72526067b3a86ed0865e37351c4fac1f0c7e845e7b0c27a1d955c64622f10c999389446b53191acdc05a44647847 SHA512 4537b3f67d03050e5daefaa6f274d3acdf6e116dc8c7f76566b33100e76a445c3e3894b5ff63b5ddb024e1c691a3bf08acea42dbec681da1b0f1de2e5736c9c4
-DIST git-manpages-2.21.0.tar.xz 440096 BLAKE2B 6cbedf6e497b0d13c62003b166293a0d438d163255bce845eaf75e08a3eec49060c314e73d24c1c015101868d9149e9b0cd1c2e8cb3ce2245b8acae5701fe8ba SHA512 61e01cd312dbade8aac0144e32edc5eea2708b274273c207889a291cea18d131c9c2d83cc405ba8a955d387fd1e6dd74b7bdae4003f2062501073a0844122d30
+DIST git-2.24.1.tar.xz 5772304 BLAKE2B 45e49325221cd0407968b4e2ff7bcab7ea021863119ae29fec5c7a9ff10461b5af0ea05f587647c7d4965c38e25f1140f194be72ff5f1bea8851c0485effbfa2 SHA512 010c13d4023c142876d0e075a394b74bef422944d8ca602325d0b2b47bf28b1d534283c7f295751113c83fdfcc0c91f97090e8f906560d44b04a94607fd8fcf7
+DIST git-htmldocs-2.24.1.tar.xz 1307992 BLAKE2B 80b39d2fcf47d20a584109572414ff8d275245afb80c3946e2fa62346fdaee3b1c873a0dccfb44af52290756d26d5e53021a1bf1ace7ada34e50e03244f05e92 SHA512 4da610ba1ee307e4f53414e324ef63ab25cf3945a74bf813aeacd4cf714710eab31776c2402c9567f1a3805e3d8576a158c78a72722c0178fb7c2dec2dcebf5a
+DIST git-manpages-2.24.1.tar.xz 453752 BLAKE2B 51a549099205341bfec5a7998e5f66e9fc78ffd05fd04e745401a8bcc5bffcb64f26a64c7e24c9822bc2d62d000ea2b13779ffe19f065124a8e42b306fb5a2d3 SHA512 ee1e70fdbfc6eae97dc3b3180fa119b0d1189db7cae3e45b8baa9311d0c1162a5b46824a785e91288522a9fd00b8e4ff07590f4e4722a08955d6a9d048cc3a90
diff --git a/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch b/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch
deleted file mode 100644
index 2e213c0..0000000
--- a/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch
+++ /dev/null
@@ -1,460 +0,0 @@
-From 7b0d0d066a5f869f86f2be125d63ae98c1451feb Mon Sep 17 00:00:00 2001
-From: Robin Johnson <robbat2@gentoo.org>
-Date: Wed, 6 Jun 2018 16:25:13 +0200
-Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
- utilities
-
-Forward-ported from 1.7.12 to current git.git v1.8.4
-Forward-ported from v1.8.4 to v1.8.5.1
-Forward-ported from v1.8.5.3 to v1.9.0_rc3
-Forward-ported from 1.9.0_rc3 to current git.git v2.0.0_rc0
-Forward-ported from v2.0.0_rc0 to v2.0.0
-Forward-ported from v2.0.0 to v2.2.2
-Forward-ported from v2.2.2 to v2.8.4
-Forward-ported from v2.8.4 to v2.10.0
-Forward-ported from v2.10.0 to v2.12.0
-Forward-ported from v2.12.0 to v2.17.0-rc1
-Forward-ported from v2.17.0-rc1 to v2.18.0-rc1
-
-Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
----
- Makefile                           | 49 ++++++++++++++++++++++--------
- t/t9200-git-cvsexportcommit.sh     |  5 +++
- t/t9400-git-cvsserver-server.sh    |  8 ++++-
- t/t9401-git-cvsserver-crlf.sh      | 15 ++++++---
- t/t9600-cvsimport.sh               | 41 ++++++++++++++++---------
- t/t9601-cvsimport-vendor-branch.sh | 11 +++++++
- t/t9602-cvsimport-branches-tags.sh | 11 +++++++
- t/t9603-cvsimport-patchsets.sh     | 11 +++++++
- t/test-lib.sh                      |  1 +
- 9 files changed, 119 insertions(+), 33 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1d27f36365..b30a14e263 100644
---- a/Makefile
-+++ b/Makefile
-@@ -312,6 +312,8 @@ all::
- # Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep
- # and egrep that are pickier when their input contains non-ASCII data.
- #
-+# Define NO_CVS if you do not want any CVS interface utilities.
-+#
- # The TCL_PATH variable governs the location of the Tcl interpreter
- # used to optimize git-gui for your system.  Only used if NO_TCLTK
- # is not set.  Defaults to the bare 'tclsh'.
-@@ -589,6 +591,7 @@ LIB_OBJS =
- PROGRAM_OBJS =
- PROGRAMS =
- SCRIPT_PERL =
-+SCRIPT_PERL_CVS =
- SCRIPT_PYTHON =
- SCRIPT_SH =
- SCRIPT_LIB =
-@@ -626,12 +629,13 @@ SCRIPT_LIB += git-sh-i18n
- 
- SCRIPT_PERL += git-add--interactive.perl
- SCRIPT_PERL += git-archimport.perl
--SCRIPT_PERL += git-cvsexportcommit.perl
--SCRIPT_PERL += git-cvsimport.perl
--SCRIPT_PERL += git-cvsserver.perl
- SCRIPT_PERL += git-send-email.perl
- SCRIPT_PERL += git-svn.perl
- 
-+SCRIPT_PERL_CVS += git-cvsexportcommit.perl
-+SCRIPT_PERL_CVS += git-cvsimport.perl
-+SCRIPT_PERL_CVS += git-cvsserver.perl
-+
- SCRIPT_PYTHON += git-p4.py
- 
- NO_INSTALL += git-remote-testgit
-@@ -639,24 +643,26 @@ NO_INSTALL += git-remote-testgit
- # Generated files for scripts
- SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
- SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
-+SCRIPT_PERL_CVS_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL_CVS))
- SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
- 
- SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN))
- SCRIPT_PERL_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_GEN))
-+SCRIPT_PERL_CVS_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_CVS_GEN))
- SCRIPT_PYTHON_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PYTHON_GEN))
- 
- # Individual rules to allow e.g.
- # "make -C ../.. SCRIPT_PERL=contrib/foo/bar.perl build-perl-script"
- # from subdirectories like contrib/*/
- .PHONY: build-perl-script build-sh-script build-python-script
--build-perl-script: $(SCRIPT_PERL_GEN)
-+build-perl-script: $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
- build-sh-script: $(SCRIPT_SH_GEN)
- build-python-script: $(SCRIPT_PYTHON_GEN)
- 
- .PHONY: install-perl-script install-sh-script install-python-script
- install-sh-script: $(SCRIPT_SH_INS)
- 	$(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
--install-perl-script: $(SCRIPT_PERL_INS)
-+install-perl-script: $(SCRIPT_PERL_INS) $(SCRIPT_PERL_CVS_INS)
- 	$(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
- install-python-script: $(SCRIPT_PYTHON_INS)
- 	$(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
-@@ -665,12 +671,13 @@ install-python-script: $(SCRIPT_PYTHON_INS)
- clean-sh-script:
- 	$(RM) $(SCRIPT_SH_GEN)
- clean-perl-script:
--	$(RM) $(SCRIPT_PERL_GEN)
-+	$(RM) $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
- clean-python-script:
- 	$(RM) $(SCRIPT_PYTHON_GEN)
- 
- SCRIPTS = $(SCRIPT_SH_INS) \
- 	  $(SCRIPT_PERL_INS) \
-+	  $(SCRIPT_PERL_CVS_INS) \
- 	  $(SCRIPT_PYTHON_INS) \
- 	  git-instaweb
- 
-@@ -2076,13 +2083,27 @@ git.res: git.rc GIT-VERSION-FILE
- 	  -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" -i $< -o $@
- 
- # This makes sure we depend on the NO_PERL setting itself.
--$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS
-+$(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN): GIT-BUILD-OPTIONS
-+
-+_SCRIPT_PERL_GEN =
-+_SCRIPT_PERL_NOGEN =
- 
- # Used for substitution in Perl modules. Disabled when using RUNTIME_PREFIX
- # since the locale directory is injected.
- perl_localedir_SQ = $(localedir_SQ)
- 
- ifndef NO_PERL
-+_SCRIPT_PERL_GEN = $(SCRIPT_PERL_GEN)
-+
-+ifndef NO_CVS
-+_SCRIPT_PERL_GEN += $(SCRIPT_PERL_CVS_GEN)
-+else
-+_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_CVS_GEN)
-+_REASON = NO_CVS
-+_REASON_CONTENT = $(NO_CVS)
-+endif # NO_CVS
-+
-+$(_SCRIPT_PERL_GEN):
- PERL_HEADER_TEMPLATE = perl/header_templates/fixed_prefix.template.pl
- PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ):$(perllibdir_SQ)
- 
-@@ -2103,7 +2124,7 @@ endif
- 
- PERL_DEFINES += $(gitexecdir) $(perllibdir) $(localedir)
- 
--$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE
-+$(_SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE
- 	$(QUIET_GEN)$(RM) $@ $@+ && \
- 	sed -e '1{' \
- 	    -e '	s|#!.*perl|#!$(PERL_PATH_SQ)|' \
-@@ -2149,14 +2170,18 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES
- 	chmod +x $@+ && \
- 	mv $@+ $@
- else # NO_PERL
--$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh
-+_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN) git-instaweb
-+_REASON = NO_PERL
-+_REASON_CONTENT = $(NO_PERL)
-+endif # NO_PERL
-+
-+$(_SCRIPT_PERL_NOGEN): % : unimplemented.sh
- 	$(QUIET_GEN)$(RM) $@ $@+ && \
- 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
--	    -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
-+	    -e 's|@@REASON@@|$(_REASON)=$(_REASON_CONTENT)|g' \
- 	    unimplemented.sh >$@+ && \
- 	chmod +x $@+ && \
- 	mv $@+ $@
--endif # NO_PERL
- 
- # This makes sure we depend on the NO_PYTHON setting itself.
- $(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS
-@@ -2396,7 +2421,7 @@ LOCALIZED_SH = $(SCRIPT_SH)
- LOCALIZED_SH += git-parse-remote.sh
- LOCALIZED_SH += git-rebase--interactive.sh
- LOCALIZED_SH += git-sh-setup.sh
--LOCALIZED_PERL = $(SCRIPT_PERL)
-+LOCALIZED_PERL = $(SCRIPT_PERL) $(SCRIPT_PERL_CVS)
- 
- ifdef XGETTEXT_INCLUDE_TESTS
- LOCALIZED_C += t/t0200/test.c
-diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
-index 1319415ba8..34ac8e28e2 100755
---- a/t/t9200-git-cvsexportcommit.sh
-+++ b/t/t9200-git-cvsexportcommit.sh
-@@ -11,6 +11,11 @@ if ! test_have_prereq PERL; then
- 	test_done
- fi
- 
-+if ! test_have_prereq CVS; then
-+	skip_all='skipping git cvsexportcommit tests, cvs not available'
-+	test_done
-+fi
-+
- cvs >/dev/null 2>&1
- if test $? -ne 1
- then
-diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
-index 06742748e9..51d474d94b 100755
---- a/t/t9400-git-cvsserver-server.sh
-+++ b/t/t9400-git-cvsserver-server.sh
-@@ -11,9 +11,15 @@ cvs CLI client via git-cvsserver server'
- . ./test-lib.sh
- 
- if ! test_have_prereq PERL; then
--	skip_all='skipping git cvsserver tests, perl not available'
-+	skip_all='skipping git-cvsserver tests, perl not available'
- 	test_done
- fi
-+
-+if ! test_have_prereq CVS; then
-+	skip_all='skipping git-cvsserver tests, cvs not available'
-+	test_done
-+fi
-+
- cvs >/dev/null 2>&1
- if test $? -ne 1
- then
-diff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh
-index 84787eee9a..eecba88527 100755
---- a/t/t9401-git-cvsserver-crlf.sh
-+++ b/t/t9401-git-cvsserver-crlf.sh
-@@ -57,15 +57,20 @@ check_status_options() {
-     return $stat
- }
- 
--cvs >/dev/null 2>&1
--if test $? -ne 1
-+if ! test_have_prereq PERL
- then
--    skip_all='skipping git-cvsserver tests, cvs not found'
-+    skip_all='skipping git-cvsserver tests, perl not available'
-     test_done
- fi
--if ! test_have_prereq PERL
-+if ! test_have_prereq CVS
- then
--    skip_all='skipping git-cvsserver tests, perl not available'
-+    skip_all='skipping git-cvsserver tests, cvs not available'
-+    test_done
-+fi
-+cvs >/dev/null 2>&1
-+if test $? -ne 1
-+then
-+    skip_all='skipping git-cvsserver tests, cvs not found'
-     test_done
- fi
- perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
-diff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh
-index 804ce3850f..c53c50e432 100755
---- a/t/t9600-cvsimport.sh
-+++ b/t/t9600-cvsimport.sh
-@@ -8,14 +8,25 @@ if ! test_have_prereq NOT_ROOT; then
- 	test_done
- fi
- 
--test_expect_success PERL 'setup cvsroot environment' '
-+if ! test_have_prereq PERL
-+then
-+    skip_all='skipping git cvsimport tests, perl not available'
-+    test_done
-+fi
-+if ! test_have_prereq CVS
-+then
-+    skip_all='skipping git cvsimport tests, cvs not available'
-+    test_done
-+fi
-+
-+test_expect_success 'setup cvsroot environment' '
- 	CVSROOT=$(pwd)/cvsroot &&
- 	export CVSROOT
- '
- 
--test_expect_success PERL 'setup cvsroot' '$CVS init'
-+test_expect_success 'setup cvsroot' '$CVS init'
- 
--test_expect_success PERL 'setup a cvs module' '
-+test_expect_success 'setup a cvs module' '
- 
- 	mkdir "$CVSROOT/module" &&
- 	$CVS co -d module-cvs module &&
-@@ -47,23 +58,23 @@ EOF
- 	)
- '
- 
--test_expect_success PERL 'import a trivial module' '
-+test_expect_success 'import a trivial module' '
- 
- 	git cvsimport -a -R -z 0 -C module-git module &&
- 	test_cmp module-cvs/o_fortuna module-git/o_fortuna
- 
- '
- 
--test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
-+test_expect_success 'pack refs' '(cd module-git && git gc)'
- 
--test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
-+test_expect_success 'initial import has correct .git/cvs-revisions' '
- 
- 	(cd module-git &&
- 	 git log --format="o_fortuna 1.1 %H" -1) > expected &&
- 	test_cmp expected module-git/.git/cvs-revisions
- '
- 
--test_expect_success PERL 'update cvs module' '
-+test_expect_success 'update cvs module' '
- 	(cd module-cvs &&
- 	cat <<EOF >o_fortuna &&
- O Fortune,
-@@ -91,7 +102,7 @@ EOF
- 	)
- '
- 
--test_expect_success PERL 'update git module' '
-+test_expect_success 'update git module' '
- 
- 	(cd module-git &&
- 	git config cvsimport.trackRevisions true &&
-@@ -102,7 +113,7 @@ test_expect_success PERL 'update git module' '
- 
- '
- 
--test_expect_success PERL 'update has correct .git/cvs-revisions' '
-+test_expect_success 'update has correct .git/cvs-revisions' '
- 
- 	(cd module-git &&
- 	 git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
-@@ -110,7 +121,7 @@ test_expect_success PERL 'update has correct .git/cvs-revisions' '
- 	test_cmp expected module-git/.git/cvs-revisions
- '
- 
--test_expect_success PERL 'update cvs module' '
-+test_expect_success 'update cvs module' '
- 
- 	(cd module-cvs &&
- 		echo 1 >tick &&
-@@ -119,7 +130,7 @@ test_expect_success PERL 'update cvs module' '
- 	)
- '
- 
--test_expect_success PERL 'cvsimport.module config works' '
-+test_expect_success 'cvsimport.module config works' '
- 
- 	(cd module-git &&
- 		git config cvsimport.module module &&
-@@ -131,7 +142,7 @@ test_expect_success PERL 'cvsimport.module config works' '
- 
- '
- 
--test_expect_success PERL 'second update has correct .git/cvs-revisions' '
-+test_expect_success 'second update has correct .git/cvs-revisions' '
- 
- 	(cd module-git &&
- 	 git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
-@@ -140,7 +151,7 @@ test_expect_success PERL 'second update has correct .git/cvs-revisions' '
- 	test_cmp expected module-git/.git/cvs-revisions
- '
- 
--test_expect_success PERL 'import from a CVS working tree' '
-+test_expect_success 'import from a CVS working tree' '
- 
- 	$CVS co -d import-from-wt module &&
- 	(cd import-from-wt &&
-@@ -153,12 +164,12 @@ test_expect_success PERL 'import from a CVS working tree' '
- 
- '
- 
--test_expect_success PERL 'no .git/cvs-revisions created by default' '
-+test_expect_success 'no .git/cvs-revisions created by default' '
- 
- 	! test -e import-from-wt/.git/cvs-revisions
- 
- '
- 
--test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
-+test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
- 
- test_done
-diff --git a/t/t9601-cvsimport-vendor-branch.sh b/t/t9601-cvsimport-vendor-branch.sh
-index 827d39f5bf..d730a41f67 100755
---- a/t/t9601-cvsimport-vendor-branch.sh
-+++ b/t/t9601-cvsimport-vendor-branch.sh
-@@ -34,6 +34,17 @@
- test_description='git cvsimport handling of vendor branches'
- . ./lib-cvs.sh
- 
-+if ! test_have_prereq PERL
-+then
-+    skip_all='skipping git cvsimport tests, perl not available'
-+    test_done
-+fi
-+if ! test_have_prereq CVS
-+then
-+    skip_all='skipping git cvsimport tests, cvs not available'
-+    test_done
-+fi
-+
- setup_cvs_test_repository t9601
- 
- test_expect_success PERL 'import a module with a vendor branch' '
-diff --git a/t/t9602-cvsimport-branches-tags.sh b/t/t9602-cvsimport-branches-tags.sh
-index e1db323f54..68f097401f 100755
---- a/t/t9602-cvsimport-branches-tags.sh
-+++ b/t/t9602-cvsimport-branches-tags.sh
-@@ -6,6 +6,17 @@
- test_description='git cvsimport handling of branches and tags'
- . ./lib-cvs.sh
- 
-+if ! test_have_prereq PERL
-+then
-+    skip_all='skipping git cvsimport tests, perl not available'
-+    test_done
-+fi
-+if ! test_have_prereq CVS
-+then
-+    skip_all='skipping git cvsimport tests, cvs not available'
-+    test_done
-+fi
-+
- setup_cvs_test_repository t9602
- 
- test_expect_success PERL 'import module' '
-diff --git a/t/t9603-cvsimport-patchsets.sh b/t/t9603-cvsimport-patchsets.sh
-index c4c3c49546..9b2957d4f0 100755
---- a/t/t9603-cvsimport-patchsets.sh
-+++ b/t/t9603-cvsimport-patchsets.sh
-@@ -14,6 +14,17 @@
- test_description='git cvsimport testing for correct patchset estimation'
- . ./lib-cvs.sh
- 
-+if ! test_have_prereq PERL
-+then
-+    skip_all='skipping git cvsimport tests, perl not available'
-+    test_done
-+fi
-+if ! test_have_prereq CVS
-+then
-+    skip_all='skipping git cvsimport tests, cvs not available'
-+    test_done
-+fi
-+
- setup_cvs_test_repository t9603
- 
- test_expect_failure PERL 'import with criss cross times on revisions' '
-diff --git a/t/test-lib.sh b/t/test-lib.sh
-index 28315706be..6e2f99cdbb 100644
---- a/t/test-lib.sh
-+++ b/t/test-lib.sh
-@@ -1064,6 +1064,7 @@ case $uname_s in
- esac
- 
- ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
-+test -z "$NO_CVS" && test_set_prereq CVS
- test -z "$NO_PERL" && test_set_prereq PERL
- test -z "$NO_PTHREADS" && test_set_prereq PTHREADS
- test -z "$NO_PYTHON" && test_set_prereq PYTHON
--- 
-2.17.1
-
diff --git a/dev-vcs/git/files/git-2.21.0-quiet-submodules.patch b/dev-vcs/git/files/git-2.21.0-quiet-submodules.patch
deleted file mode 100644
index adb0dfd..0000000
--- a/dev-vcs/git/files/git-2.21.0-quiet-submodules.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From git-owner@vger.kernel.org Wed Apr 10 11:18:40 2019
-Date: 10 Apr 2019 18:18:35 +0700
-Message-ID: <20190410111834.GA25638@ash>
-From: "Duy Nguyen" <pclouds@gmail.com>
-Sender: git-owner@vger.kernel.org
-Subject: Re: regression AGAIN in output of git-pull --rebase --recurse-submodules=yes --quiet
-References: <robbat2-20180120T054223-685328376Z@orbis-terrarum.net>
- <robbat2-20190410T062730-540884809Z@orbis-terrarum.net>
-List-ID: <git.vger.kernel.org>
-
-...
-
-If you run this with GIT_TRACE=1, you can see that --quiet is passed
-to submodule--helper correctly.
-
-trace: built-in: git submodule--helper foreach --quiet git pull --quiet origin master
-
-The problem here is the option parser of this command would try to
-parse all options, so it considers both --quiet the same thing and are
-to tell "submodule--foreach" to be quiet, the second --quiet is not
-part of the "git pull" command anymore.
-
-So the fix would be to pass "--" to stop option parsing.
-submodule--helper should not parse options it does not understand
-anyway. Something like this should work.
-
--- 8< --
-diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
-index 6bcc4f1bd7..6394222628 100644
---- a/builtin/submodule--helper.c
-+++ b/builtin/submodule--helper.c
-@@ -571,7 +571,7 @@ static int module_foreach(int argc, const char **argv, const char *prefix)
- 	};
- 
- 	argc = parse_options(argc, argv, prefix, module_foreach_options,
--			     git_submodule_helper_usage, PARSE_OPT_KEEP_UNKNOWN);
-+			     git_submodule_helper_usage, 0);
- 
- 	if (module_list_compute(0, NULL, prefix, &pathspec, &list) < 0)
- 		return 1;
-diff --git a/git-submodule.sh b/git-submodule.sh
-index 2c0fb6d723..a967b2890d 100755
---- a/git-submodule.sh
-+++ b/git-submodule.sh
-@@ -346,7 +346,7 @@ cmd_foreach()
- 		shift
- 	done
- 
--	git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@"
-+	git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} -- "$@"
- }
- 
- #
--- 8< --
-
-I'm a bit reluctant to follow up with a proper patch because I can't
-digest the t5572-submodule-pull.sh tests. And we definitely need to
-add a test case about --quiet to make sure it won't happen again.
---
-Duy
-
diff --git a/dev-vcs/git/git-2.21.0.ebuild b/dev-vcs/git/git-2.24.1.ebuild
similarity index 89%
rename from dev-vcs/git/git-2.21.0.ebuild
rename to dev-vcs/git/git-2.24.1.ebuild
index ec630a5..ab3c7b9 100644
--- a/dev-vcs/git/git-2.21.0.ebuild
+++ b/dev-vcs/git/git-2.24.1.ebuild
@@ -6,10 +6,11 @@
 GENTOO_DEPEND_ON_PERL=no
 
 # bug #329479: git-remote-testgit is not multiple-version aware
-PYTHON_COMPAT=( python2_7 )
+PYTHON_COMPAT=( python{2_7,3_{4,5}} )
+
 PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
 if [[ ${PV} == *9999 ]]; then
-	SCM="git-r3"
+	inherit git-r3
 	EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
 	# Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
 	# See https://git-scm.com/docs/gitworkflows#_graduation
@@ -26,31 +27,31 @@
 	esac
 fi
 
-inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
 
 MY_PV="${PV/_rc/.rc}"
 MY_P="${PN}-${MY_PV}"
 
-DOC_VER=${MY_PV}
+DOC_VER="${MY_PV}"
 
 DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
 HOMEPAGE="https://www.git-scm.com/"
 if [[ ${PV} != *9999 ]]; then
 	SRC_URI_SUFFIX="xz"
-	SRC_URI_KORG="mirror://kernel/software/scm/git"
+	SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
 	[[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
 	SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
 			${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
 			doc? (
 			${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
 			)"
-	[[ "${PV}" = *_rc* ]] || \
+	[[ "${PV}" == *_rc* ]] || \
 	KEYWORDS="*"
 fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre pcre-jit +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
@@ -97,7 +98,7 @@
 			dev-perl/TermReadKey
 		)
 	)
-	python? ( ${PYTHON_DEPS} )
+	perforce? ( ${PYTHON_DEPS} )
 "
 
 # This is how info docs are created with Git:
@@ -108,11 +109,12 @@
 	doc? (
 		app-text/asciidoc
 		app-text/docbook2X
-		sys-apps/texinfo
 		app-text/xmlto
+		sys-apps/texinfo
 	)
 	nls? ( sys-devel/gettext )
-	test? (	app-crypt/gnupg	)"
+	test? (	app-crypt/gnupg	)
+"
 
 # Live ebuild builds man pages and HTML docs, additionally
 if [[ ${PV} == *9999 ]]; then
@@ -131,14 +133,19 @@
 	subversion? ( perl )
 	webdav? ( curl )
 	pcre-jit? ( pcre )
-	python? ( ${PYTHON_REQUIRED_USE} )
+	perforce? ( ${PYTHON_REQUIRED_USE} )
 "
 
+RESTRICT="!test? ( test )"
+
 PATCHES=(
 	# bug #350330 - automagic CVS when we don't want it is bad.
-	"${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
+	"${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
 
 	"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+	# Make submodule output quiet
+	"${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
 )
 
 pkg_setup() {
@@ -147,7 +154,7 @@
 		ewarn "with USE=dso, there may be weird crashes in git-svn. You"
 		ewarn "have been warned."
 	fi
-	if use python ; then
+	if use perforce ; then
 		python-single-r1_pkg_setup
 	fi
 }
@@ -155,14 +162,16 @@
 # This is needed because for some obscure reasons future calls to make don't
 # pick up these exports if we export them in src_unpack()
 exportmakeopts() {
-	local myopts=(
+	local extlibs myopts
+
+	myopts=(
 		ASCIIDOC_NO_ROFF=YesPlease
 		$(usex cvs '' NO_CVS=YesPlease)
 		$(usex elibc_musl NO_REGEX=YesPlease '')
 		$(usex iconv '' NO_ICONV=YesPlease)
 		$(usex nls '' NO_GETTEXT=YesPlease)
 		$(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
-		$(usex python '' NO_PYTHON=YesPlease)
+		$(usex perforce '' NO_PYTHON=YesPlease)
 		$(usex subversion '' NO_SVN_TESTS=YesPlease)
 		$(usex threads '' NO_PTHREAD=YesPlease)
 		$(usex tk '' NO_TCLTK=YesPlease)
@@ -232,12 +241,14 @@
 			NEEDS_LIBICONV=YesPlease
 			HAVE_CLOCK_MONOTONIC=1
 		)
-		grep -q getdelim "${ROOT%/}"/usr/include/stdio.h && \
+		if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
 			myopts+=( HAVE_GETDELIM=1 )
+		fi
 	fi
 
-	has_version '>=app-text/asciidoc-8.0' \
-		&& myopts+=( ASCIIDOC8=YesPlease )
+	if has_version '>=app-text/asciidoc-8.0' ; then
+		myopts+=( ASCIIDOC8=YesPlease )
+	fi
 
 	# Bug 290465:
 	# builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
@@ -297,7 +308,7 @@
 git_emake() {
 	# bug #320647: PYTHON_PATH
 	local PYTHON_PATH=""
-	use python && PYTHON_PATH="${PYTHON}"
+	use perforce && PYTHON_PATH="${PYTHON}"
 	emake ${MY_MAKEOPTS} \
 		prefix="${EPREFIX}"/usr \
 		htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
@@ -365,8 +376,11 @@
 		git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
 			|| die "emake svn-fe failed"
 		if use doc ; then
-			git_emake svn-fe.{1,html} \
-				|| die "emake svn-fe.1 svn-fe.html failed"
+			# svn-fe.1 requires the full USE=doc dependency stack
+			git_emake svn-fe.1 \
+				|| die "emake svn-fe.1 failed"
+			git_emake svn-fe.html \
+				|| die "svn-fe.html failed"
 		fi
 		popd &>/dev/null || die
 	fi
@@ -378,8 +392,9 @@
 	fi
 
 	pushd contrib/subtree &>/dev/null || die
-	git_emake
-	use doc && git_emake doc
+	git_emake git-subtree
+	# git-subtree.1 requires the full USE=doc dependency stack
+	use doc && git_emake git-subtree.html git-subtree.1
 	popd &>/dev/null || die
 
 	pushd contrib/diff-highlight &>/dev/null || die
@@ -395,9 +410,7 @@
 }
 
 src_install() {
-	git_emake \
-		install || \
-		die "make install failed"
+	git_emake install || die "make install failed"
 
 	if [[ ${CHOST} == *-darwin* ]]; then
 		dobin contrib/credential/osxkeychain/git-credential-osxkeychain
@@ -435,7 +448,7 @@
 		#elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
 		# don't add automatically to the load-path, so the sitefile
 		# can do a conditional loading
-		touch "${ED%/}${SITELISP}/${PN}/compat/.nosearch"
+		touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
 		elisp-site-file-install "${FILESDIR}"/${SITEFILE}
 	fi
 
@@ -447,9 +460,10 @@
 
 	# git-subtree
 	pushd contrib/subtree &>/dev/null || die
-	git_emake install || die "Failed to emake install git-subtree"
+	git_emake install || die "Failed to emake install for git-subtree"
 	if use doc ; then
-		git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+		# Do not move git subtree install-man outside USE=doc!
+		git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
 	fi
 	newdoc README README.git-subtree
 	dodoc git-subtree.txt
@@ -486,6 +500,7 @@
 		dobin svn-fe
 		dodoc svn-fe.txt
 		if use doc ; then
+			# Do not move svn-fe.1 outside USE=doc!
 			doman svn-fe.1
 			docinto html
 			dodoc svn-fe.html
@@ -522,7 +537,7 @@
 	for i in "${contrib_objects[@]}" ; do
 		cp -rf \
 			"${S}"/contrib/${i} \
-			"${ED%/}"/usr/share/${PN}/contrib \
+			"${ED}"/usr/share/${PN}/contrib \
 			|| die "Failed contrib ${i}"
 	done
 
@@ -531,26 +546,26 @@
 		# but upstream installs in /usr/share/gitweb
 		# so we will install a symlink and use their location for compat with other
 		# distros
-		dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+		dosym ../gitweb /usr/share/${PN}/gitweb
 
 		# INSTALL discusses configuration issues, not just installation
 		docinto /
 		newdoc  "${S}"/gitweb/INSTALL INSTALL.gitweb
 		newdoc  "${S}"/gitweb/README README.gitweb
 
-		for d in "${ED%/}"/usr/lib{,64}/perl5/ ; do
+		for d in "${ED}"/usr/lib{,64}/perl5/ ; do
 			if test -d "${d}" ; then find "${d}" \
 				-name .packlist \
 				-delete || die
 			fi
 		done
 	else
-		rm -rf "${ED%/}"/usr/share/gitweb
+		rm -rf "${ED}"/usr/share/gitweb
 	fi
 
 	if ! use subversion ; then
-		rm -f "${ED%/}"/usr/libexec/git-core/git-svn \
-			"${ED%/}"/usr/share/man/man1/git-svn.1*
+		rm -f "${ED}"/usr/libexec/git-core/git-svn \
+			"${ED}"/usr/share/man/man1/git-svn.1*
 	fi
 
 	if use xinetd ; then
@@ -571,8 +586,8 @@
 	# we could remove sources in src_prepare, but install does not
 	# handle missing locale dir well
 	rm_loc() {
-		if [[ -e "${ED%/}/usr/share/locale/${1}" ]]; then
-			rm -r "${ED%/}/usr/share/locale/${1}" || die
+		if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
+			rm -r "${ED}/usr/share/locale/${1}" || die
 		fi
 	}
 	l10n_for_each_disabled_locale_do rm_loc
@@ -682,7 +697,7 @@
 	nonfatal git_emake aggregate-results
 
 	# And bail if there was a problem
-	[ ${rc} -eq 0 ] || die "tests failed. Please file a bug."
+	[[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
 }
 
 showpkgdeps() {
diff --git a/dev-vcs/git/metadata.xml b/dev-vcs/git/metadata.xml
index f769088..53353ad 100644
--- a/dev-vcs/git/metadata.xml
+++ b/dev-vcs/git/metadata.xml
@@ -32,6 +32,7 @@
     <flag name="mediawiki">Support pulling and pushing from MediaWiki</flag>
     <flag name="mediawiki-experimental">Add experimental patches for improved MediaWiki support</flag>
     <flag name="pcre-jit">Enable JIT for pcre</flag>
+    <flag name="perforce">Add support for Perforce version control system (requires manual installation of Perforce client)</flag>
     <flag name="ppcsha1">Make use of a bundled routine that is optimized for the PPC arch</flag>
     <flag name="subversion">Include git-svn for <pkg>dev-vcs/subversion</pkg> support</flag>
     <flag name="tk">Include the 'gitk' and 'git gui' tools</flag>
