git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Fetch remote only if remote hasn't been fetched recently

From
M Hickford <mirth.hickford@gmail.com>
Date
Jul 1, 2025, 07:00 UTC
Message-ID
<CAGJzqskku=BSx_rZx0EgLLS-E2uJKLxu0rfqkKFTVSJ3Su749A@mail.gmail.com>
In-Reply-To
<xmqqjz5ijo97.fsf@gitster.g>
On Wed, 11 Jun 2025 at 16:23, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
>
> M Hickford <mirth.hickford@gmail.com> writes:
>
> > To support Git users with sporadic connectivity, might it be useful to
> > add an option to git fetch? Perhaps  `git fetch --offline` or `git
> > fetch --complete-prefetch`?
>
> "offline catch-up" is probably the phrase I would prefer to see in
> the documentation page to explain the concept of the operation than
> "complete prefetch".
That makes sense to me.
Show 28 quoted lines
> In any case, to present it as a first-class option to end-users,
> there needs a lot more thinking and a bit of work need to go into
> the way "prefetch" works.  For example, the longhand I gave would
> work as a good solution only when the user _knows_ that the prefetch
> is more recent than their actual remote-tracking branches.  If
> refs/prefetch/remotes/R/* is older, then you wouldn't be bringing
> yourself closer to the present state of the remote at all with such
> a fetch, but as far as I know, a normal "git fetch R" from the
> remote R would not clear refs/prefetch/remotes/R/* when it
> completes.  There is no "last time we fetched from there" record
> kept anywhere in the repository either.  So offhand, you'd at least
> need to do these:
>
>  - teach "git fetch" that updates remote-tracking branches to remove
>    the corresponding ref in the refs/prefetch/ hierarchy;
>
>  - decide on what option name to use for this new operation and
>    document it;
>
>  - implement the option "git fetch --that-option nickname" to
>
>    - figure out the remote-tracking hierarchy for nickname and call
>      it R
>
>    - when refs/prefetch/remotes/R/* exists, do an
>
>      $ git fetch . "+refs/prefetch/remotes/R/*:refs/remotes/R/*"
>
Thanks Junio for your insight.

I shall leave this as a feature request, perhaps suitable for a microproject #leftoverbits

Previous: Junio C Hamano
Message 8 of 8 in “Fetch remote only if remote hasn't been fetched recently”
  1. M HickfordJun 5, 2025
  2. Konstantin RyabitsevJun 5, 2025
  3. Junio C HamanoJun 5, 2025
  4. M HickfordJun 7, 2025
  5. Junio C HamanoJun 9, 2025
  6. M HickfordJun 11, 2025
  7. Junio C HamanoJun 11, 2025
  8. M HickfordJul 1, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.