Merge branch 'tr/void-diff-setup-done' into maint-1.7.11
[git.git] / git-submodule.sh
index 64a70d621aa5b81547ff63740b6876009677aae5..30fa93a8a0a4985f7ce980d4abf69410af22976c 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# git-submodules.sh: add, init, update or list git submodules
+# git-submodule.sh: add, init, update or list git submodules
 #
 # Copyright (c) 2007 Lars Hjemli
 
@@ -150,8 +150,10 @@ module_clone()
                die "$(eval_gettext "Clone of '\$url' into submodule path '\$sm_path' failed")"
        fi
 
-       a=$(cd "$gitdir" && pwd)/
-       b=$(cd "$sm_path" && pwd)/
+       # We already are at the root of the work tree but cd_to_toplevel will
+       # resolve any symlinks that might be present in $PWD
+       a=$(cd_to_toplevel && cd "$gitdir" && pwd)/
+       b=$(cd_to_toplevel && cd "$sm_path" && pwd)/
        # normalize Windows-style absolute paths to POSIX-style absolute paths
        case $a in [a-zA-Z]:/*) a=/${a%%:*}${a#*:} ;; esac
        case $b in [a-zA-Z]:/*) b=/${b%%:*}${b#*:} ;; esac
@@ -396,8 +398,9 @@ cmd_init()
        module_list "$@" |
        while read mode sha1 stage sm_path
        do
-               # Skip already registered paths
                name=$(module_name "$sm_path") || exit
+
+               # Copy url setting when it is not set yet
                if test -z "$(git config "submodule.$name.url")"
                then
                        url=$(git config -f .gitmodules submodule."$name".url)
@@ -412,6 +415,8 @@ cmd_init()
                        esac
                        git config submodule."$name".url "$url" ||
                        die "$(eval_gettext "Failed to register url for submodule path '\$sm_path'")"
+
+                       say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$sm_path'")"
                fi
 
                # Copy "update" setting when it is not set yet
@@ -420,8 +425,6 @@ cmd_init()
                test -n "$(git config submodule."$name".update)" ||
                git config submodule."$name".update "$upd" ||
                die "$(eval_gettext "Failed to register update mode for submodule path '\$sm_path'")"
-
-               say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$sm_path'")"
        done
 }