Structure ROS workspaces and packages with Git
I am setting up a structure for projects and packages. Common packages are hosted as individual repos, and can be used across different catkin workspaces.
A workspace can consist of common packages, but may also have individual packages, which are not repos. Workspaces are also hosted to sync across devices.
If someone makes a change to a common package from their workspace, they should have the option to: (a) keep that change "local" in their workspace (pushed only to their workspace repo), or (b) push the changes to common package repo when desired.
I currently thinking about using vcstool or Git Submodules to achieve this. I know that hosting a whole catkin workspace is bad practice, but I am not sure how to achieve my goal otherwise. Is there a good/right way of doing this? Any suggestions are welcome!