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

Re: Is current HEAD pointing at a given revision ?

From
Jakub Narebski <jnareb@gmail.com>
Date
Jun 14, 2011, 16:17 UTC
Message-ID
<201106141817.23585.jnareb@gmail.com>
In-Reply-To
<BANLkTimMkOS_Q9gb_ta2P3NSMGyNJtKgJA@mail.gmail.com>
Francis Moreau wrote:
Show 26 quoted lines
> On Tue, Jun 14, 2011 at 11:00 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> > Francis Moreau <francis.moro@gmail.com> writes:
> >
> > > I have a given revision (tag, sha1 ...) and I'd like to know if that
> > > revisions corresponds to what the current HEAD is pointing at.
> > >
> > > Could anybody give me some advices for achieving this ?
> >
> > If you want to know if given revision (or ref) points at the same
> > thing as HEAD, you can use
> >
> >  [ "$(git rev-parse HEAD)" = "$(git rev-parse $ref^{commit})" ]
> >
> > or something like that.  The '^{commit}' is here in case $ref points
> > only indirectly to commit, via a tag object.
> >
> 
> I see thanks.
> 
> I'm not sure what the ^{commit} is for because in the case of tag
> object, git-rev-parse seems to work fine without the suffix:
> 
> git rev-parse v2.6.39
> 8b0753a3df28c21b0570fa21362c5f1b3b4f59bf
> 
> This is in a kernel git repository

But that is the SHA-1 id of a _tag object_, not of commit (revision) it points to. '^{}' means peel to not tag, '^{commit}' means peel to commit.

In git repository:
 $ git rev-parse v1.7.5
 4d2f8aeba22578022e2d2a56dac37fcdf78d82d4
 $ git rev-parse v1.7.5^{}
 ec014eac0e9e6f30cbbca616090fa2ecf74797e7
 $ git rev-parse v1.7.5^{commit}
 ec014eac0e9e6f30cbbca616090fa2ecf74797e7
 $ git cat-file -t 4d2f8aeba22578022e2d2a56dac37fcdf78d82d4
 tag
 $ git cat-file -t ec014eac0e9e6f30cbbca616090fa2ecf74797e7
 commit
 $ git cat-file -t HEAD
 commit
-- 
Jakub Narebski
Poland
Previous: Francis MoreauNext: Francis Moreau
Message 4 of 5 in “Is current HEAD pointing at a given revision ?”
  1. Francis MoreauJun 14, 2011
  2. Jakub NarebskiJun 14, 2011
  3. Francis MoreauJun 14, 2011
  4. Jakub NarebskiJun 14, 2011
  5. Francis MoreauJun 14, 2011

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.