Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 694494
Collapse All | Expand All

(-)a/eclass/git-r3.eclass (-9 / +19 lines)
Lines 401-416 _git-r3_set_gitdir() { Link Here
401
}
401
}
402
402
403
# @FUNCTION: _git-r3_set_submodules
403
# @FUNCTION: _git-r3_set_submodules
404
# @USAGE: <file-contents>
404
# @USAGE: <parent-path> <file-contents>
405
# @INTERNAL
405
# @INTERNAL
406
# @DESCRIPTION:
406
# @DESCRIPTION:
407
# Parse .gitmodules contents passed as <file-contents>
407
# Parse .gitmodules contents passed as <file-contents>
408
# as in "$(cat .gitmodules)"). Composes a 'submodules' array that
408
# as in "$(cat .gitmodules)"). Composes a 'submodules' array that
409
# contains in order (name, URL, path) for each submodule.
409
# contains in order (name, URL, path) for each submodule.
410
#
411
# <parent-path> specifies path to current submodule (empty if top repo),
412
# and is used to support recursively specifying submodules.  The path
413
# must include a trailing slash if it's not empty.
410
_git-r3_set_submodules() {
414
_git-r3_set_submodules() {
411
	debug-print-function ${FUNCNAME} "$@"
415
	debug-print-function ${FUNCNAME} "$@"
412
416
413
	local data=${1}
417
	local parent_path=${1}
418
	local data=${2}
419
	[[ -z ${parent_path} || ${parent_path} == */ ]] || die
414
420
415
	# ( name url path ... )
421
	# ( name url path ... )
416
	submodules=()
422
	submodules=()
Lines 435-446 _git-r3_set_submodules() { Link Here
435
					l_res=1
441
					l_res=1
436
				fi
442
				fi
437
443
438
				[[ ${subname} == ${p} ]] && res=${l_res}
444
				[[ ${parent_path}${subname} == ${p} ]] && res=${l_res}
439
			done
445
			done
440
446
441
			if [[ ! ${res} ]]; then
447
			if [[ ! ${res} ]]; then
442
				einfo "Skipping submodule \e[1m${subname}\e[22m"
448
				einfo "Skipping submodule \e[1m${parent_path}${subname}\e[22m"
443
				continue
449
				continue
450
			else
451
				einfo "Using submodule \e[1m${parent_path}${subname}\e[22m"
444
			fi
452
			fi
445
		fi
453
		fi
446
454
Lines 546-552 _git-r3_is_local_repo() { Link Here
546
# This default should be fine unless you are fetching multiple trees
554
# This default should be fine unless you are fetching multiple trees
547
# from the same repository in the same ebuild.
555
# from the same repository in the same ebuild.
548
#
556
#
549
# <commit-id> requests attempting to use repository state as of specific
557
# <commit-date> requests attempting to use repository state as of specific
550
# date. For more details, see EGIT_COMMIT_DATE.
558
# date. For more details, see EGIT_COMMIT_DATE.
551
#
559
#
552
# The fetch operation will affect the EGIT_STORE only. It will not touch
560
# The fetch operation will affect the EGIT_STORE only. It will not touch
Lines 814-820 git-r3_fetch() { Link Here
814
	# recursively fetch submodules
822
	# recursively fetch submodules
815
	if git cat-file -e "${local_ref}":.gitmodules &>/dev/null; then
823
	if git cat-file -e "${local_ref}":.gitmodules &>/dev/null; then
816
		local submodules
824
		local submodules
817
		_git-r3_set_submodules \
825
		_git-r3_set_submodules "${_GIT_SUBMODULE_PATH}" \
818
			"$(git cat-file -p "${local_ref}":.gitmodules || die)"
826
			"$(git cat-file -p "${local_ref}":.gitmodules || die)"
819
827
820
		while [[ ${submodules[@]} ]]; do
828
		while [[ ${submodules[@]} ]]; do
Lines 836-842 git-r3_fetch() { Link Here
836
				local subrepos
844
				local subrepos
837
				_git-r3_set_subrepos "${url}" "${repos[@]}"
845
				_git-r3_set_subrepos "${url}" "${repos[@]}"
838
846
839
				git-r3_fetch "${subrepos[*]}" "${commit}" "${local_id}/${subname}"
847
				_GIT_SUBMODULE_PATH=${_GIT_SUBMODULE_PATH}${path}/ \
848
				git-r3_fetch "${subrepos[*]}" "${commit}" \
849
					"${local_id}/${subname}" ""
840
			fi
850
			fi
841
851
842
			submodules=( "${submodules[@]:3}" ) # shift
852
			submodules=( "${submodules[@]:3}" ) # shift
Lines 972-978 git-r3_checkout() { Link Here
972
	# recursively checkout submodules
982
	# recursively checkout submodules
973
	if [[ -f ${out_dir}/.gitmodules && ! ${checkout_paths} ]]; then
983
	if [[ -f ${out_dir}/.gitmodules && ! ${checkout_paths} ]]; then
974
		local submodules
984
		local submodules
975
		_git-r3_set_submodules \
985
		_git-r3_set_submodules "${_GIT_SUBMODULE_PATH}" \
976
			"$(<"${out_dir}"/.gitmodules)"
986
			"$(<"${out_dir}"/.gitmodules)"
977
987
978
		while [[ ${submodules[@]} ]]; do
988
		while [[ ${submodules[@]} ]]; do
Lines 986-991 git-r3_checkout() { Link Here
986
				local subrepos
996
				local subrepos
987
				_git-r3_set_subrepos "${url}" "${repos[@]}"
997
				_git-r3_set_subrepos "${url}" "${repos[@]}"
988
998
999
				_GIT_SUBMODULE_PATH=${_GIT_SUBMODULE_PATH}${path}/ \
989
				git-r3_checkout "${subrepos[*]}" "${out_dir}/${path}" \
1000
				git-r3_checkout "${subrepos[*]}" "${out_dir}/${path}" \
990
					"${local_id}/${subname}"
1001
					"${local_id}/${subname}"
991
			fi
1002
			fi
992
- 

Return to bug 694494