Idea is to have dev_release_branch all time acting just as alias to latest release branch of that environment ( dev in this eg ).
And to have new branch created post every release by some convention & to update symb ref every time post completion of migration or release to respective en.
git symbolic-ref -m "Updating rel branch ref to new" dev_rel_3rd_Nov dev_release_branch
Would like to store both reference & its mapped name in central repository. Is there a way to achieve this as simple git push HEAD:refs/for/dev_branch
fails
This is to support incremental release process & hence computing files changed would be easier by comparison of 2 branch names hashes..
Thanks!
Not from a client over the Git protocols.
Also,
git symbolic-ref
is a "plumbing" command (meant for scripts rather than casual use), and as a consequence, it requires that you spell out the full reference, e.g.:Why the answer is "no"
Let's create a proper symbolic reference, and try pushing it:
Now, over on the server for
origin
:This is, I think, what you observed that led you to say:
The problem here is that the
push
protocol literally has no way to push a symbolic reference. The protocol consists of a series of requests to set reference names to specific hash IDs. A symbolic reference is a reference that is set to a string that is not a hash ID.This means that from a client, the only way to create a new symbolic reference on a server is to run Git commands directly on that server, e.g.:
The fetch protocol does allow retrieving symbolic references (in modern Git), but the push protocol does not allow setting them.