Chris Friesen wrote: > Brandon Casey wrote: > >> 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. > >> 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html