From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Yaroslav Halchenko <yoh@onerussian.com>,
Git Mailing List <git@vger.kernel.org>
Cc: Isaac To <isaac.chun.to@gmail.com>, Junio C Hamano <gitster@pobox.com>
Subject: Re: git-retry tool or git.retry config (built-in implementation)?
Date: Wed, 27 Sep 2023 06:57:46 +0700 [thread overview]
Message-ID: <ZRNv-n_VlIDPX0oi@debian.me> (raw)
In-Reply-To: <ZRMLNyHXoWOj6K-l@bilena>
[-- Attachment #1: Type: text/plain, Size: 1808 bytes --]
On Tue, Sep 26, 2023 at 12:47:51PM -0400, Yaroslav Halchenko wrote:
> Dear Git Gurus,
>
> In DataLad (https://datalad.org) we are doing lots of automated cloning,
> fetching etc as part of our CI etc jobs. Once in a while git operations
> fail [see e.g. 1], and beg us to retry but we need to know when to
> do so, and not do it upon every failed git invocation since some
> failures could be legit (repository is gone). While looking how others
> solve it we found
> https://stackoverflow.com/questions/35014012/git-retry-if-http-request-failed
> which pointed to tools like git-retry and later part of
> https://chromium.googlesource.com/infra/infra/+/HEAD/go/src/infra/tools/git/retry_regexp.go
> which serve as a collection of regexes to be on lookout for to retry.
>
> Would that be the "best" strategy currently?
Looking at the actual git_retry.py script [1], it really just wraps
actual Git commands. IMO, git-retry(1) shell script as you mentioned
only calls the python version, which adds another level of indirection
(why not doing it in pure shell?).
AFAIK, to solve the retrying problem, we need to have a way to tell
transport backend (curl/ssh) to resume transfer from the faulty point.
>
> As regex matching might eventually break whenever `git` changes
> anything in the output messages, I wondered if there could be a more
> robust internal implementation in git itself? Similarly git-annex has
> annex.retry config setting which sets the count of retries for
> "retriable" operations.
Do you use porcelain interfaces instead of plumbing ones?
Thanks.
[1]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/01d2cde990f22d409e74e239de7e4d347102d6f6/git_retry.py
--
An old man doll... just what I always wanted! - Clara
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2023-09-27 0:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-26 16:47 git-retry tool or git.retry config (built-in implementation)? Yaroslav Halchenko
2023-09-26 23:57 ` Bagas Sanjaya [this message]
2023-09-27 12:42 ` Yaroslav Halchenko
2023-09-27 13:29 ` Bagas Sanjaya
-- strict thread matches above, loose matches on Subject: below --
2024-02-16 8:36 Meiswinkel, Jan SF/HZA-ZC3S
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZRNv-n_VlIDPX0oi@debian.me \
--to=bagasdotme@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=isaac.chun.to@gmail.com \
--cc=yoh@onerussian.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).