public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* Git pull without fetch
@ 2023-02-18  0:09 ronan
       [not found] ` <CAPx1Gvd8vizeyveKgE2o2GStQsiGxN4aaASqYc81Nk28ogFLJg@mail.gmail.com>
  0 siblings, 1 reply; 4+ messages in thread
From: ronan @ 2023-02-18  0:09 UTC (permalink / raw)
  To: git

Dear maintainers,

I use the git-maintenance prefetch task with a certain repo to periodically
fetch updates from the remote. I'm trying to figure out a way to have git
"complete" a prefetch on command, via an option, alias, or other extension that
mimics the behavior of git pull, but does not fetch from the remote. By
comparison, `git pull` or `git fetch && git rebase` would fetch the remote and
fast-forward my local copy to match, but I don't want to fetch the remote.
Instead I want to fast-forward my current branch (and the remote tracking
branch) to the prefetched tip as if git pull had been run at the time of the
last prefetch.

For example, suppose my local copy has a branch master that tracks the remote
branch master from origin. Suppose that the local copy (and the remote tracking
branch) have commits A--B, the remote has commits A--B--C--D, and commit C has
been prefetched and is pointed to by refs/prefetch/remotes/origin/master. The
desired effect could be accomplished, I think, by:

git update-ref refs/remotes/origin/master refs/prefetch/remotes/origin/master refs/heads/master &&
git rebase origin/master master

My question is, how can I calculate the correct remote tracking branch to
accomplish this operation in the general case, just as git pull without argument
would have done? Or is there a simpler way to achieve my goal?

Cheers,
Ronan

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-02-18  4:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-18  0:09 Git pull without fetch ronan
     [not found] ` <CAPx1Gvd8vizeyveKgE2o2GStQsiGxN4aaASqYc81Nk28ogFLJg@mail.gmail.com>
2023-02-18  2:02   ` ronan
2023-02-18  2:46     ` Junio C Hamano
2023-02-18  4:33       ` ronan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox