From: Torgil Svensson Date: Sat, 11 Aug 2007 18:23:12 GMT Subject: Re: [PATCH] submodule update - don't run git-fetch if sha1 available Message-ID: In-Reply-To: Hi Sorry for a broken patch [inserted line-feeds]. If anyone knows how to disable that in gmail web client, please let me know. I also tried to follow "Using msmtp to send your patches" [http://git.or.cz/gitwiki/GitTips ] on msys/mingw/WindowsXP with the following result (at best) from git-send-email: "Can't call method "mail" on an undefined value at C:/msysgit/git/git-send-email line 551." So I would appreciate if someone that has used the combination gmail SMTP+Windows+git-send-email successfully (cygwin,msys or "pure") to let us know how you did it. Best Regards, //Torgil On 8/11/07, Torgil Svensson wrote: > It's un-necessary (both time-consuming and annoying if you are > disconnected) for git submodule update to always running git-fetch > prior to the detached head checkout of the submodule if the commit > already exists. > > Signed-off-by: Torgil Svensson > --- > git-submodule.sh | 9 +++++++-- > 1 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/git-submodule.sh b/git-submodule.sh > index 2cfeadd..dc2ed4b 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -39,6 +39,11 @@ get_repo_base() { > ) 2>/dev/null > } > > +has_sha1() > +{ > + git rev-list 2>/dev/null --max-count=0 $1 > +} > + > # > # Map submodule path to submodule name > # > @@ -193,9 +198,9 @@ modules_update() > > if test "$subsha1" != "$sha1" > then > - (unset GIT_DIR && cd "$path" && git-fetch && > + (unset GIT_DIR && cd "$path" && (has_sha1 > "$sha1" || git-fetch) && > git-checkout -q "$sha1") || > - die "Unable to checkout '$sha1' in submodule > path '$path'" > + die "Unable to checkout '$sha1' in submodule > path '$path'" > > say "Submodule path '$path': checked out '$sha1'" > fi > -- > 1.5.3.rc4.730.ga8c3-dirty >