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 |
- |
|
|