Merge branch 'ph/maint-submodule-status-fix'
authorJeff King <peff@peff.net>
Fri, 9 Nov 2012 17:51:15 +0000 (12:51 -0500)
committerJeff King <peff@peff.net>
Fri, 9 Nov 2012 17:51:15 +0000 (12:51 -0500)
Cleans up some leftover bits from an earlier submodule change.

* ph/maint-submodule-status-fix:
submodule status: remove unused orig_* variables
t7407: Fix recursive submodule test

1  2 
git-submodule.sh
diff --combined git-submodule.sh
index 3d1617fa9eb490463f9a4a4218082de168e1491a,c287464c2b6a3d93fad6759fe818d6e8e2c2c252..819eb5674a9a7c0db3d03de76a461e3787f51193
@@@ -5,7 -5,7 +5,7 @@@
  # Copyright (c) 2007 Lars Hjemli
  
  dashless=$(basename "$0" | sed -e 's/-/ /')
 -USAGE="[--quiet] add [-b branch] [-f|--force] [--reference <repository>] [--] <repository> [<path>]
 +USAGE="[--quiet] add [-b branch] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]
     or: $dashless [--quiet] status [--cached] [--recursive] [--] [<path>...]
     or: $dashless [--quiet] init [--] [<path>...]
     or: $dashless [--quiet] update [--init] [-N|--no-fetch] [-f|--force] [--rebase] [--reference <repository>] [--merge] [--recursive] [--] [<path>...]
@@@ -29,7 -29,6 +29,7 @@@ files
  nofetch=
  update=
  prefix=
 +custom_name=
  
  # The function takes at most 2 arguments. The first argument is the
  # URL that navigates to the submodule origin repo. When relative, this URL
@@@ -180,9 -179,8 +180,9 @@@ module_name(
  module_clone()
  {
        sm_path=$1
 -      url=$2
 -      reference="$3"
 +      name=$2
 +      url=$3
 +      reference="$4"
        quiet=
        if test -n "$GIT_QUIET"
        then
  
        gitdir=
        gitdir_base=
 -      name=$(module_name "$sm_path" 2>/dev/null)
 -      test -n "$name" || name="$sm_path"
        base_name=$(dirname "$name")
  
        gitdir=$(git rev-parse --git-dir)
@@@ -270,10 -270,6 +270,10 @@@ cmd_add(
                        ;;
                --reference=*)
                        reference="$1"
 +                      ;;
 +              --name)
 +                      case "$2" in '') usage ;; esac
 +                      custom_name=$2
                        shift
                        ;;
                --)
@@@ -340,13 -336,6 +340,13 @@@ Use -f if you really want to add it." >
                exit 1
        fi
  
 +      if test -n "$custom_name"
 +      then
 +              sm_name="$custom_name"
 +      else
 +              sm_name="$sm_path"
 +      fi
 +
        # perhaps the path exists and is already a git repo, else clone it
        if test -e "$sm_path"
        then
                fi
  
        else
 -
 -              module_clone "$sm_path" "$realrepo" "$reference" || exit
 +              if test -d ".git/modules/$sm_name"
 +              then
 +                      if test -z "$force"
 +                      then
 +                              echo >&2 "$(eval_gettext "A git directory for '\$sm_name' is found locally with remote(s):")"
 +                              GIT_DIR=".git/modules/$sm_name" GIT_WORK_TREE=. git remote -v | grep '(fetch)' | sed -e s,^,"  ", -e s,' (fetch)',, >&2
 +                              echo >&2 "$(eval_gettext "If you want to reuse this local git directory instead of cloning again from")"
 +                              echo >&2 "  $realrepo"
 +                              echo >&2 "$(eval_gettext "use the '--force' option. If the local git directory is not the correct repo")"
 +                              die "$(eval_gettext "or you are unsure what this means choose another name with the '--name' option.")"
 +                      else
 +                              echo "$(eval_gettext "Reactivating local git directory for submodule '\$sm_name'.")"
 +                      fi
 +              fi
 +              module_clone "$sm_path" "$sm_name" "$realrepo" "$reference" || exit
                (
                        clear_local_git_env
                        cd "$sm_path" &&
                        esac
                ) || die "$(eval_gettext "Unable to checkout submodule '\$sm_path'")"
        fi
 -      git config submodule."$sm_path".url "$realrepo"
 +      git config submodule."$sm_name".url "$realrepo"
  
        git add $force "$sm_path" ||
        die "$(eval_gettext "Failed to add submodule '\$sm_path'")"
  
 -      git config -f .gitmodules submodule."$sm_path".path "$sm_path" &&
 -      git config -f .gitmodules submodule."$sm_path".url "$repo" &&
 +      git config -f .gitmodules submodule."$sm_name".path "$sm_path" &&
 +      git config -f .gitmodules submodule."$sm_name".url "$repo" &&
        git add --force .gitmodules ||
        die "$(eval_gettext "Failed to register submodule '\$sm_path'")"
  }
@@@ -618,7 -594,7 +618,7 @@@ Maybe you want to use 'update --init'?"
  
                if ! test -d "$sm_path"/.git -o -f "$sm_path"/.git
                then
 -                      module_clone "$sm_path" "$url" "$reference"|| exit
 +                      module_clone "$sm_path" "$name" "$url" "$reference" || exit
                        cloned_modules="$cloned_modules;$name"
                        subsha1=
                else
@@@ -950,7 -926,6 +950,6 @@@ cmd_summary() 
  cmd_status()
  {
        # parse $args after "submodule ... status".
-       orig_flags=
        while test $# -ne 0
        do
                case "$1" in
                        break
                        ;;
                esac
-               orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")"
                shift
        done
  
                                prefix="$displaypath/"
                                clear_local_git_env
                                cd "$sm_path" &&
-                               eval cmd_status "$orig_args"
+                               eval cmd_status
                        ) ||
                        die "$(eval_gettext "Failed to recurse into submodule path '\$sm_path'")"
                fi