On 09/01/2020 11:57, Richard Earnshaw (lists) wrote:
On 09/01/2020 11:45, Martin Jambor wrote:
Hi,

On Thu, Jan 09 2020, Martin Liška wrote:
Hi.

I have question about release branches and release tags. For the current
git mirror, we do have release tags living on release branches. Example:

commit 64e1a4df1bc9dbf4cedb3a842c4eaff6b3425a66
Author: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Aug 12 08:40:24 2019 +0000

              * BASE-VER: Set to 9.2.1.
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@274276 138bc75d-0d04-0410-961f-82ee72b054a4

commit 3e7b85061947bdc7c7465743ba90734566860821 (tag: gcc-9_2_0-release) <- THE TAG
Author: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Aug 12 07:38:49 2019 +0000

      Update ChangeLog and version files for release
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@274274 138bc75d-0d04-0410-961f-82ee72b054a4

commit fc3f35e10b6ca627727d71c74fd5e76785226200
Author: gccadmin <gccadmin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Aug 12 00:16:21 2019 +0000

      Daily bump.
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@274271 138bc75d-0d04-0410-961f-82ee72b054a4

while the reposurgeon git has:

commit a9044428b313402507aa047a17e6ea10f63b2b8b
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Mon Aug 12 10:40:24 2019 +0200

      * BASE-VER: Set to 9.2.1.
      From-SVN: r274276

commit d46878c3cce3be8f6c8878be8af326adecbb8ec6  <- THE TAG IS MISSING HERE
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:49 2019 +0200

      Update ChangeLog and version files for release
      From-SVN: r274274


I use the release tags every now and then so this caught my attention
but I do not understand what the problem is?

In the gcc-reposurgeon-7a conversion, there is a tag called
gcc_9_2_0_release:

mjambor@virgil:/space/mjambor/gcc/newconv/gcc-reposurgeon-7a.git$ git log -1 gcc_9_2_0_release
commit 56bc3061f168c39a85117d4daefc2d5c0e4edb91 (tag: gcc_9_2_0_release)
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:59 2019 +0200

     Tagging source as tags/gcc_9_2_0_release
     From-SVN: r274275

Even when I query the commit directly, it shows it is tagged:

mjambor@virgil:/space/mjambor/gcc/newconv/gcc-reposurgeon-7a.git$ git log -1 56bc3061f168c39a85117d4daefc2d5c0e4edb91
commit 56bc3061f168c39a85117d4daefc2d5c0e4edb91 (tag: gcc_9_2_0_release)
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:59 2019 +0200

     Tagging source as tags/gcc_9_2_0_release
     From-SVN: r274275


in gcc-reposurgeon-7b it is called releases/gcc-9.2.0

commit 56bc3061f168c39a85117d4daefc2d5c0e4edb91 (tag: releases/gcc-9.2.0)
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:59 2019 +0200

     Tagging source as tags/gcc_9_2_0_release
     From-SVN: r274275

It seems that reposurgeon conversion has a commit representing the
revision r274275 whereas git mirror does not, but that does not seem to
be too bad?

That's when I do git log parent/gcc-9-branch (git log origin/releases/gcc-9 respectively).
And git log releases/gcc-9.2.0:

commit 56bc3061f168c39a85117d4daefc2d5c0e4edb91 (tag: releases/gcc-9.2.0)  <- THE TAG
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:59 2019 +0200

      Tagging source as tags/gcc_9_2_0_release
      From-SVN: r274275

commit d46878c3cce3be8f6c8878be8af326adecbb8ec6
Author: Jakub Jelinek <ja...@gcc.gnu.org>
Date:   Mon Aug 12 09:38:49 2019 +0200

      Update ChangeLog and version files for release
      From-SVN: r274274

I see it useful to have the release tags on release branches.
Thoughts?

Thinking about it, assuming the reposurgeon is the way to go, did we
decide whether it's going to be the a or b variant?  I like the tags in
the B version better, but it does not seem to have all the branches, I
mean:

mjambor@virgil:/space/mjambor/gcc/newconv/gcc-reposurgeon-7a.git$ git branch | wc -l
536

mjambor@virgil:/space/mjambor/gcc/newconv/gcc-reposurgeon-7b.git$ git branch | wc -l
38


I did clone both with --mirror.

Thanks,

Martin



The branches are in there, but they're in a namespace which means GIT does not list them by default.

If you run

git for-each-ref --format='%(refname)'

On a mirror clone you'll see all the various tags and branches that are really there.

We'll add documentation on how to get these 'private' branches/tags into a normal clone - normally it will involve adding another 'fetch' rule to your configuration.


R.
git for-each-ref --format='%(refname)'|grep heads|grep -v deleted|wc -l
536

So they're all there.

R.

Reply via email to