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

Re: git fetch: where are the downloaded objects stored?

From
Nicolas Pitre <nico@cam.org>
Date
Mar 3, 2008, 18:07 UTC
Message-ID
<alpine.LFD.1.00.0803031307110.2899@xanadu.home>
In-Reply-To
<4d8e3fd30803030851n498953c4u7e7a109b91b9da11@mail.gmail.com>
On Mon, 3 Mar 2008, Paolo Ciarrocchi wrote:
Show 19 quoted lines
> On Mon, Mar 3, 2008 at 5:29 PM, Nicolas Pitre <nico@cam.org> wrote:
> > If you have reflog enabled (it should be by default) then a good thing
> > to remember is the @{1} notation.  For example, if the fetch updated the
> > origin/master branch, then origin/master@{1} is what your origin/master
> > was before being updated.  To see the difference between the previous
> > and the current state of origin/master, you can do:
> >
> >        git diff origin/master@{1}..origin/master
> >
> > Or to see the list of new commits:
> >
> >        git log origin/master@{1}..origin/master
> >
> >        git log -p origin/master@{1}..origin/master
> >
> > Etc.
> 
> Very nice, I didn't find in the documentation.
> I'll read again the documents and if needed, I'll propose some new text.

I found the reflog notation burried in git-rev-parse.txt. Maybe some example usage could be added to more frequently used commands.

Show 10 quoted lines
> > This notation is a bit obnoxious and the re were suggestions about
> > addind the equivalent origin/master@{1..} but that didn't materialize
> > yet.
> 
> Mybe it's just me but wouldn't be very nice to have a simple command
> to look at what data have been used for updating the currente branch?
> i.e.
> git fetch
> git diff -- fetch (which is an alias of git diff
> origin/master@{1}..origin/master)

You still think in terms of "data used to update a branch". There is no such direct relation between the fetched data (objects) and the updated branch heads. What you do when listing the commits found between origin/master@{1} and origin/master@{0} (or simply origin/master wich is equivalent to origin/master@{0}) does not necessarily correspond to the data you received during the fetch. For example, it is possible that half of those commits were already part of another branch in your repository, hence the fetch operation won't download them again. Still, the origin/master branch now has acquired them all which wasn't the case before. To really _see_ the actually received data during a fetch requires internal Git knowledge and digging in the pack directory -- there is no (need for any) UI for that.

> And how about a repository which have reflogs disabled?
Well, just re-enable them.  ;-)

Since they're on by default, if you turned them off then you surely know what you're doing and why.

Nicolas
Previous: Nicolas PitreNext: Paolo Ciarrocchi
Message 10 of 12 in “git fetch: where are the downloaded objects stored?”
  1. Paolo CiarrocchiMar 3, 2008
  2. Matthieu MoyMar 3, 2008
  3. Paolo CiarrocchiMar 3, 2008
  4. Matthieu MoyMar 3, 2008
  5. Paolo CiarrocchiMar 3, 2008
  6. Nicolas PitreMar 3, 2008
  7. Paolo CiarrocchiMar 3, 2008
  8. Sergei OrganovMar 3, 2008
  9. Nicolas PitreMar 3, 2008
  10. Nicolas PitreMar 3, 2008
  11. Paolo CiarrocchiMar 3, 2008
  12. Jakub NarebskiMar 3, 2008

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.