Structure ROS workspaces and packages with Git

asked 2021-03-01 00:06:40 -0600

martinandrovich gravatar image

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.

image description

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!

edit retag flag offensive close merge delete