# git-describe --contains

4 messages from 2017-08-11 to 2017-08-13. Participants: Davide Cavallari, Nicolas Morey-Chaisemartin, Andreas Schwab.
Thread: https://gitlist.dev/t/46565

## Davide Cavallari, 2017-08-11 06:50

Subject: git-describe --contains
Message-ID: <CANOKeme4j9fHuQoQY3MQeoNuietjez8m1wPkAO=1eSDtHG3J9w@mail.gmail.com>
URL: https://gitlist.dev/e/CANOKeme4j9fHuQoQY3MQeoNuietjez8m1wPkAO%3D1eSDtHG3J9w%40mail.gmail.com

```
Please help me understand how this command works. There is one case in the
linux kernel repository that puzzles me. Let's consider patch "drm/i915/
execlists: Reset RING registers upon resume" [1]. This patch was committed 641
commits after version 4.8-rc2:

~$ git describe bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
v4.8-rc2-641-gbafb2f7d4755

So I would expect to find it in version 4.8-rc3 and later versions.

However, if I search for the tag that follows (and hence contains) that
commit, I do not find version 4.8-rc3, nor version 4.8, nor version 4.9, but
4.10-rc1:

~$ git describe --contains bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
v4.10-rc1~154^2~44^2~178

Why? Why not v4.8-rc3? This means that the patch has been included neither in
v4.8 nor in v4.9, but only in version 4.10-rc1, right? Why so much time was
needed, considering it was the 621st commit on top ov v4.8-rc2?

BTW, what are the numbers 154^2~44^2~178 that follow the tag name?

Thanks & Regards,
   Davide

[1] https://patchwork.freedesktop.org/patch/111587/

```

## Nicolas Morey-Chaisemartin, 2017-08-11 09:12

Subject: Re: git-describe --contains
Message-ID: <476ddcbb-6d66-bc6b-5fbd-aa43851dec30@suse.de>
URL: https://gitlist.dev/e/476ddcbb-6d66-bc6b-5fbd-aa43851dec30%40suse.de
In-Reply-To: <CANOKeme4j9fHuQoQY3MQeoNuietjez8m1wPkAO=1eSDtHG3J9w@mail.gmail.com>

```


Le 11/08/2017 à 08:50, Davide Cavallari a écrit :
> Please help me understand how this command works. There is one case in the
> linux kernel repository that puzzles me. Let's consider patch "drm/i915/
> execlists: Reset RING registers upon resume" [1]. This patch was committed 641
> commits after version 4.8-rc2:
>
> ~$ git describe bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
> v4.8-rc2-641-gbafb2f7d4755
>
> So I would expect to find it in version 4.8-rc3 and later versions.
>
> However, if I search for the tag that follows (and hence contains) that
> commit, I do not find version 4.8-rc3, nor version 4.8, nor version 4.9, but
> 4.10-rc1:
>
> ~$ git describe --contains bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
> v4.10-rc1~154^2~44^2~178
>
> Why? Why not v4.8-rc3? This means that the patch has been included neither in
> v4.8 nor in v4.9, but only in version 4.10-rc1, right? Why so much time was
> needed, considering it was the 621st commit on top ov v4.8-rc2?

Because it was not in v4.8-rc3.
This probably means it was applied on a branch that started from somewhere between 4.8-rc2 and 4.8-rc3 but it was only merge into master after v4.9 was released


>
> BTW, what are the numbers 154^2~44^2~178 that follow the tag name?

This is due to merges. You have basically a roadmap to go up the ancestry graph.
~154 means 154 commit before the tag
^2 means the 2nd parent of this commit.
and so on...

The format is detailed (among other tings) in man gitrevisions

Nicolas


```

## Andreas Schwab, 2017-08-11 09:39

Subject: Re: git-describe --contains
Message-ID: <87shgyh2a3.fsf@linux-m68k.org>
URL: https://gitlist.dev/e/87shgyh2a3.fsf%40linux-m68k.org
In-Reply-To: <CANOKeme4j9fHuQoQY3MQeoNuietjez8m1wPkAO=1eSDtHG3J9w@mail.gmail.com>

```
On Aug 11 2017, Davide Cavallari <davide.cavallari@gmail.com> wrote:

> Please help me understand how this command works. There is one case in the
> linux kernel repository that puzzles me. Let's consider patch "drm/i915/
> execlists: Reset RING registers upon resume" [1]. This patch was committed 641
> commits after version 4.8-rc2:
>
> ~$ git describe bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
> v4.8-rc2-641-gbafb2f7d4755
>
> So I would expect to find it in version 4.8-rc3 and later versions.
>
> However, if I search for the tag that follows (and hence contains) that
> commit, I do not find version 4.8-rc3, nor version 4.8, nor version 4.9, but
> 4.10-rc1:
>
> ~$ git describe --contains bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
> v4.10-rc1~154^2~44^2~178
>
> Why? Why not v4.8-rc3? This means that the patch has been included neither in
> v4.8 nor in v4.9, but only in version 4.10-rc1, right? Why so much time was
> needed, considering it was the 621st commit on top ov v4.8-rc2?

You have to ask that the maintainers of the drm subsystem.  If you look
at commit 5481e27f6fd06b7cb902072e81d6b083db8155eb you see that the
branch containing the above commit was merged into a branch that follows
v4.9-rc2, which eventually was merged into v4.10-rc1.

> BTW, what are the numbers 154^2~44^2~178 that follow the tag name?

See git-rev-parse(1).  '~N' means to go back N parents, ^N means to pick
parent N of a merge commit.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

```

## Davide Cavallari, 2017-08-13 06:39

Subject: Re: git-describe --contains
Message-ID: <CANOKemdSA0OgaLosQ6ez=YPGJWOCCax6qQ5s=XSv1DQ4DwuMUw@mail.gmail.com>
URL: https://gitlist.dev/e/CANOKemdSA0OgaLosQ6ez%3DYPGJWOCCax6qQ5s%3DXSv1DQ4DwuMUw%40mail.gmail.com
In-Reply-To: <CANOKemc32rreg5TVYdxYQ=te1a-wv5PeOPwGfX3Sye0gPQPC=Q@mail.gmail.com>

```
Thanks Andreas and Nicholas, I'll check it out.

```
