Re: any way to apply tag across all branches in repository?
From: Brandon Casey <hidden>
Date: 2016-06-15 22:46:48
Chris Friesen wrote:
Brandon Casey wrote:quoted
If I understand you correctly, you are doing your primary development on the "main" branch and then merging this into the architecture specific branches which contain additional architecture specific changes.Correct.quoted
All you need to do is tag the "main" branch. Actually, you are tagging the commit that the branch currently points at. When this branch is merged into the other branches, they will also contain this commit, and 'git describe' will use the tag you created when generating the version string.I think this would work if the most recent commit is on the main branch. However, if I make a change on the arch-specific branch, then tag the main branch and merge it into the arch-specific branch, git tells me the arch-specific branch is already up-to-date and the tag doesn't get propagated.
Tags aren't versioned. They exist outside of the branch namespace.
So merging doesn't have any direct effect on tags. It is the _commits_
that are merged in (which the tags point to). If you have already
merged the main branch into the arch-specific branch, then there is
nothing else for git to do. Your repository looks something like this
graph:
--o--o---o---o---o---o--o "arch"
/ /
-o--o---o---o---o---o "main"
|
my_tag
When you merge "main" into "arch", the "main" DAG* becomes a part of the
"arch" DAG. The tag points to a specific commit, which represents a state
of the DAG, which is also now part of the "arch" DAG.
The output of 'git describe $arch_branch' will likely change after you
create the tag though.
Try these commands:
git describe $main
git describe $arch_branch
git tag -m 'a test tag' my_tag $main
git describe $main
git describe $arch_branch
-brandon
* DAG - directed acyclic graph