# Revision history [back]

ROS uses absolute paths to find workspaces; there isn't a way to change that, but there are lots of workaround.

Depending on how your repository is structured and how many robots you have, there are a few ways you can do this:

• If your codebase has lots of small repositories, have you developers set up an overlay workspace on the robot, and only checkout and build the packages they're actually testing.
• Give each developer an account on the robot that exactly matches their account on the development machine, so that the paths are the same.
• You can change the install path for catkin_make install so that it installs to a different path, and then transfer that directory to the same place on the robot; for example install to /opt/local/ros and then copy that directory to the robot. You'll still have absolute paths, but they'll match on the developer's machine and the robot.
• Build in docker (or some other kind of container) and then transfer that container to the robot.
• If you have lots of robots and want to test or deploy to all of them, consider setting up an apt repo and running a system like buildbot-ros to produce binary packages

And there lots of variations on these approaches.