Merge branch 'fg/submodule-clone-depth'
Allow shallow-cloning of submodules with "git submodule update". * fg/submodule-clone-depth: Add --depth to submodule update/add
This commit is contained in:
@ -35,6 +35,7 @@ nofetch=
|
||||
update=
|
||||
prefix=
|
||||
custom_name=
|
||||
depth=
|
||||
|
||||
# The function takes at most 2 arguments. The first argument is the
|
||||
# URL that navigates to the submodule origin repo. When relative, this URL
|
||||
@ -251,6 +252,7 @@ module_clone()
|
||||
name=$2
|
||||
url=$3
|
||||
reference="$4"
|
||||
depth="$5"
|
||||
quiet=
|
||||
if test -n "$GIT_QUIET"
|
||||
then
|
||||
@ -273,7 +275,7 @@ module_clone()
|
||||
mkdir -p "$gitdir_base"
|
||||
(
|
||||
clear_local_git_env
|
||||
git clone $quiet -n ${reference:+"$reference"} \
|
||||
git clone $quiet ${depth:+"$depth"} -n ${reference:+"$reference"} \
|
||||
--separate-git-dir "$gitdir" "$url" "$sm_path"
|
||||
) ||
|
||||
die "$(eval_gettext "Clone of '\$url' into submodule path '\$sm_path' failed")"
|
||||
@ -350,6 +352,14 @@ cmd_add()
|
||||
custom_name=$2
|
||||
shift
|
||||
;;
|
||||
--depth)
|
||||
case "$2" in '') usage ;; esac
|
||||
depth="--depth=$2"
|
||||
shift
|
||||
;;
|
||||
--depth=*)
|
||||
depth=$1
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
@ -459,7 +469,7 @@ Use -f if you really want to add it." >&2
|
||||
echo "$(eval_gettext "Reactivating local git directory for submodule '\$sm_name'.")"
|
||||
fi
|
||||
fi
|
||||
module_clone "$sm_path" "$sm_name" "$realrepo" "$reference" || exit
|
||||
module_clone "$sm_path" "$sm_name" "$realrepo" "$reference" "$depth" || exit
|
||||
(
|
||||
clear_local_git_env
|
||||
cd "$sm_path" &&
|
||||
@ -736,6 +746,14 @@ cmd_update()
|
||||
--checkout)
|
||||
update="checkout"
|
||||
;;
|
||||
--depth)
|
||||
case "$2" in '') usage ;; esac
|
||||
depth="--depth=$2"
|
||||
shift
|
||||
;;
|
||||
--depth=*)
|
||||
depth=$1
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
@ -797,7 +815,7 @@ Maybe you want to use 'update --init'?")"
|
||||
|
||||
if ! test -d "$sm_path"/.git -o -f "$sm_path"/.git
|
||||
then
|
||||
module_clone "$sm_path" "$name" "$url" "$reference" || exit
|
||||
module_clone "$sm_path" "$name" "$url" "$reference" "$depth" || exit
|
||||
cloned_modules="$cloned_modules;$name"
|
||||
subsha1=
|
||||
else
|
||||
|
Reference in New Issue
Block a user