git-submodule.sh: remove duplicate call to set_rev_name
authorFredrik Gustafsson <iveqy@iveqy.com>
Mon, 17 Jun 2013 09:55:36 +0000 (11:55 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 Jun 2013 20:26:42 +0000 (13:26 -0700)
set_rev_name is a possiblly expensive operation. If a submodule has
changes in it, set_rev_name was called twice.

Move call to set_rev_name so it's only called once, no matter which
codepath is taken.

Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-submodule.sh
index 79bfaac9d4cb9a04e5e1fd7675d740cf9fc27e87..75feaf17492d27f0832828cee1d37ab91d9cbef6 100755 (executable)
@@ -1129,16 +1129,16 @@ cmd_status()
                        say "-$sha1 $displaypath"
                        continue;
                fi
-               set_name_rev "$sm_path" "$sha1"
                if git diff-files --ignore-submodules=dirty --quiet -- "$sm_path"
                then
+                       set_name_rev "$sm_path" "$sha1"
                        say " $sha1 $displaypath$revname"
                else
                        if test -z "$cached"
                        then
                                sha1=$(clear_local_git_env; cd "$sm_path" && git rev-parse --verify HEAD)
-                               set_name_rev "$sm_path" "$sha1"
                        fi
+                       set_name_rev "$sm_path" "$sha1"
                        say "+$sha1 $displaypath$revname"
                fi