ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
The limitation affects any VCS which tags a repository globally which implies Git, Hg, etc. The reason is simply that those do not provide a way to tag/clone only parts of the repo.
For SVN this limitation does not apply since you can structure a SVN repo in a away that it contains separate projects where each on has its own trunk/branches/tags structure and a user can checkout any of those individually.
Consider telling a user you have to clone repo foo in version 1.1.1 but you only need the package foo1 in there but also clone repo foo again in version 1.2.3 but only for the package foo1 and foo2.
So you listed your options correctly: either split the packages into multiple Git repos, release them all at once from a single repo, or use SVN to keep them in one repo but tag them individually.
Just as a side note: the task of re-releasing packages is very easy nowadays and only takes an extremely short amount of time.