Revisiting tradition: branches and tags

Dr. Matthias St. Pierre Matthias.St.Pierre at ncp-e.com
Tue Apr 14 07:28:26 UTC 2020


> > Is it possible to set up alias names for the historical branches?
> 
> It's possible yes.  The hard part is 1.1.1.  There *is* something
> called 'git symbolic-ref', but they can only be added in repos we have
> physical access to, so while can add those on our git server, and they
> will work, we cannot add them in github.
> 
> Ref git help symbolic-ref

Symbolic references are *not* the right solution to the problem IMO. They are not equivalent to branches.
Checking out a symbolic reference leaves you in the 'detached HEAD' state:

    msp at msppc:~/src/openssl$ git symbolic-ref ossl111 refs/heads/OpenSSL_1_1_1-stable
    msp at msppc:~/src/openssl$ cd ../openssl-1.1.1
    msp at msppc:~/src/openssl-1.1.1$ git checkout ossl111
    Note: switching to 'ossl111'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by switching back to a branch.

The proper way to do it IMO is to create new branch and tag references for all the stable branches
resp. release tags. We change the GitHub setup such that pull requests to stable branches need to
be based onto the new-style branches, but keep the old-style stable branches in sync with the new-style
branches for a little while. Currently, the only old-style branch which needs to be synchronized is
` OpenSSL_1_1_1-stable`. This could easily be done by the git post-receive hook on git.openssl.org.
In fact, all old-style branch and tag references for all eol-branches could be removed immediately.

Matthias



More information about the openssl-project mailing list