Re: [PATCH] submodule update - don't run git-fetch if sha1 available
- From
- Torgil Svensson <torgil.svensson@gmail.com>
- Date
- Aug 11, 2007, 18:23 UTC
- Message-ID
- <e7bda7770708111123m6e497450yaa91ccb600d37d53@mail.gmail.com>
- In-Reply-To
- <e7bda7770708111048s77fbf416k9d0352486aee6b4a@mail.gmail.com>
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 <torgil.svensson@gmail.com> wrote:
Show 44 quoted lines
> 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 <torgil.svensson@gmail.com>
> ---
> 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
>