summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2013-09-05 20:39:41 +0000
committerMichał Górny <mgorny@gentoo.org>2013-09-05 20:39:41 +0000
commit2ee6a1c5f4755821981e99f09e7c6ad131cb8f6c (patch)
tree040809688ff2ad6c2be36ca8c4b5bb9348d3b334 /eclass/git-2.eclass
parentRevbump to fix systemd support (thanks Dmitry, bug 483780).Revbump to fix sys... (diff)
downloadgentoo-2-2ee6a1c5f4755821981e99f09e7c6ad131cb8f6c.tar.gz
gentoo-2-2ee6a1c5f4755821981e99f09e7c6ad131cb8f6c.tar.bz2
gentoo-2-2ee6a1c5f4755821981e99f09e7c6ad131cb8f6c.zip
Support using git-r3 backend in git-2.
Diffstat (limited to 'eclass/git-2.eclass')
-rw-r--r--eclass/git-2.eclass77
1 files changed, 65 insertions, 12 deletions
diff --git a/eclass/git-2.eclass b/eclass/git-2.eclass
index be6862fbe610..121875033710 100644
--- a/eclass/git-2.eclass
+++ b/eclass/git-2.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-2.eclass,v 1.30 2013/01/09 17:26:55 axs Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-2.eclass,v 1.31 2013/09/05 20:39:41 mgorny Exp $
# @ECLASS: git-2.eclass
# @MAINTAINER:
@@ -11,6 +11,16 @@
# Eclass for easing maitenance of live ebuilds using git as remote repository.
# Eclass support working with git submodules and branching.
+# @ECLASS-VARIABLE: EGIT_USE_GIT_R3
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Use git-r3 backend instead of classic git-2 behavior. This is intended
+# for early testing of git-r3 and is to be set in make.conf.
+
+if [[ ${EGIT_USE_GIT_R3} ]]; then
+ inherit git-r3
+fi
+
# This eclass support all EAPIs
EXPORT_FUNCTIONS src_unpack
@@ -572,23 +582,66 @@ git-2_cleanup() {
unset EGIT_LOCAL_NONBARE
}
+git-2_r3_wrapper() {
+ ewarn "Using git-r3 backend in git-2. Not everything is supported."
+ ewarn "Expect random failures and have fun testing."
+
+ if [[ ${EGIT_SOURCEDIR} ]]; then
+ EGIT_CHECKOUT_DIR=${EGIT_SOURCEDIR}
+ unset EGIT_SOURCEDIR
+ fi
+
+ if [[ ${EGIT_MASTER} ]]; then
+ : ${EGIT_BRANCH:=${EGIT_MASTER}}
+ unset EGIT_MASTER
+ fi
+
+ if [[ ${EGIT_HAS_SUBMODULES} ]]; then
+ unset EGIT_HAS_SUBMODULES
+ fi
+
+ if [[ ${EGIT_PROJECT} ]]; then
+ unset EGIT_PROJECT
+ fi
+
+ local boots unp
+ if [[ ${EGIT_NOUNPACK} ]]; then
+ unp=1
+ unset EGIT_NOUNPACK
+ fi
+
+ if [[ ${EGIT_BOOTSTRAP} ]]; then
+ boots=1
+ unset EGIT_BOOTSTRAP
+ fi
+
+ git-r3_src_unpack
+
+ [[ ${boots} ]] && EGIT_BOOTSTRAP=${boots} git-2_bootstrap
+ [[ ${unp} ]] && EGIT_NOUNPACK=1
+}
+
# @FUNCTION: git-2_src_unpack
# @DESCRIPTION:
# Default git src_unpack function.
git-2_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
- git-2_init_variables
- git-2_prepare_storedir
- git-2_migrate_repository
- git-2_fetch "$@"
- git-2_gc
- git-2_submodules
- git-2_move_source
- git-2_branch
- git-2_bootstrap
- git-2_cleanup
- echo ">>> Unpacked to ${EGIT_SOURCEDIR}"
+ if [[ ${EGIT_USE_GIT_R3} ]]; then
+ git-2_r3_wrapper
+ else
+ git-2_init_variables
+ git-2_prepare_storedir
+ git-2_migrate_repository
+ git-2_fetch "$@"
+ git-2_gc
+ git-2_submodules
+ git-2_move_source
+ git-2_branch
+ git-2_bootstrap
+ git-2_cleanup
+ echo ">>> Unpacked to ${EGIT_SOURCEDIR}"
+ fi
# Users can specify some SRC_URI and we should
# unpack the files too.