+#
+# Commit changed submodule gitlinks
+#
+# $1 = name-a;sha1-a;subsha1-a\n[name-b;sha1-b;subsha1-b\n...]
+#
+commit_changes()
+{
+ echo "commiting $1"
+ OIFS="$IFS"
+ IFS=";"
+ paths=$(echo "$1" |
+ while read name sm_path sha1 subsha1
+ do
+ echo "$sm_path"
+ done
+ )
+ names=$(echo "$1" |
+ while read name sm_path sha1 subsha1
+ do
+ printf ' %s' "$name"
+ done
+ )
+ summary="$(eval_gettext "Updated submodules:")$names"
+ body=$(echo "$1" |
+ while read name sm_path sha1 subsha1
+ do
+ if test "$name" = "$sm_path"
+ then
+ printf 'Changes to %s:\n\n' "$name"
+ else
+ printf 'Changes to %s (%s):\n\n' "$name" "$sm_path"
+ fi
+ (
+ clear_local_git_env
+ cd "$sm_path" &&
+ git shortlog "${sha1}..${subsha1}" ||
+ die "$(eval_gettext "Unable to generate shortlog in submodule path '\$sm_path'")"
+ )
+ done
+ )
+ IFS="$OIFS"
+ message="$(printf '%s\n\n%s\n' "$summary" "$body")"
+ echo "message: [$message]"
+ git commit -m "$message" $paths
+}
+