From: Junio C Hamano Date: Wed, 24 Mar 2010 23:55:37 +0000 (-0700) Subject: Merge branch 'jh/maint-submodule-status-in-void' X-Git-Tag: v1.7.1-rc0~42 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/5e4f61474202122f376b16181b760f390623bf4e?ds=inline;hp=-c Merge branch 'jh/maint-submodule-status-in-void' * jh/maint-submodule-status-in-void: git submodule summary: Handle HEAD as argument when on an unborn branch submodule summary: do not fail before the first commit --- 5e4f61474202122f376b16181b760f390623bf4e diff --combined git-submodule.sh index f21d0bfce7,5a9d3c0b30..2dd372a21d --- a/git-submodule.sh +++ b/git-submodule.sh @@@ -222,7 -222,7 +222,7 @@@ cmd_add( module_clone "$path" "$realrepo" "$reference" || exit ( - unset GIT_DIR + clear_local_git_env cd "$path" && # ash fails to wordsplit ${branch:+-b "$branch"...} case "$branch" in @@@ -278,7 -278,7 +278,7 @@@ cmd_foreach( name=$(module_name "$path") ( prefix="$prefix$path/" - unset GIT_DIR + clear_local_git_env cd "$path" && eval "$@" && if test -n "$recursive" @@@ -434,7 -434,7 +434,7 @@@ cmd_update( module_clone "$path" "$url" "$reference"|| exit subsha1= else - subsha1=$(unset GIT_DIR; cd "$path" && + subsha1=$(clear_local_git_env; cd "$path" && git rev-parse --verify HEAD) || die "Unable to find current revision in submodule path '$path'" fi @@@ -454,7 -454,7 +454,7 @@@ if test -z "$nofetch" then - (unset GIT_DIR; cd "$path" && + (clear_local_git_env; cd "$path" && git-fetch) || die "Unable to fetch in submodule path '$path'" fi @@@ -477,14 -477,14 +477,14 @@@ ;; esac - (unset GIT_DIR; cd "$path" && $command "$sha1") || + (clear_local_git_env; cd "$path" && $command "$sha1") || die "Unable to $action '$sha1' in submodule path '$path'" say "Submodule path '$path': $msg '$sha1'" fi if test -n "$recursive" then - (unset GIT_DIR; cd "$path" && cmd_update $orig_args) || + (clear_local_git_env; cd "$path" && cmd_update $orig_args) || die "Failed to recurse into submodule path '$path'" fi done @@@ -492,7 -492,7 +492,7 @@@ set_name_rev () { revname=$( ( - unset GIT_DIR + clear_local_git_env cd "$1" && { git describe "$2" 2>/dev/null || git describe --tags "$2" 2>/dev/null || @@@ -559,7 -559,9 +559,9 @@@ cmd_summary() test $# = 0 || shift elif test -z "$1" -o "$1" = "HEAD" then - return + # before the first commit: compare with an empty tree + head=$(git hash-object -w -t tree --stdin