How to share Catkin WorkSpace across multiple machines
Hi,
This question is more about how-to and learning than other thing, so I would want to know some oppinions.
So, let's imagine I have two machines with similar Hardware and Sofware components, and I work on parent repository that gather all the packages of my project. The problem is the following: I need to maintain the parent repository in the same state simultaneusly in both machines. My approach now is to have two separate workspaces in each machine and copy the changes I perform in one Pc to the other; this, however, is very boring since you need to transfer all changes and ensure consistency across machines. Hence, I am wondering if there is an architecture or set up that allows to have a unique workspace share between machines, avoiding the process of copy and check every time I change something.
Regards.
using a VCS?
This is a typical distributed or federated development workflow where you have multiple PCs each with their own copy of the code. It's just that in this case, there is only one developer that happens to switch PCs every now and then. But that doens't change the underlying idea.
On each PC, commit changes to packages to their respective repositories and on the other PC(s), fetch and merge those changes. Judicious use of branches should make this more than doable.
If you've been doing this but it doesn't work for you then please add your experiences to your OP to clarify.
Note: don't actually share workspaces. They ...(more)
Hi @gvdhoorn,
You are correct, Git is already in used in both machines, but that means you need to push the changes and then pull in the other Pc, so that I try to avoid that step sharing a unique location. I understand that catkin build systems may have its own limitation so I am trying to know what can be done with it.
I don't understand what you mean by this.
There doesn't seem to be anything in Catkin that influences this. Whether CMake, GNU make, bazel or something else is used: compiled artefacts are specific to the machine they were compiled on. They should not be distributed, unless care was taken when they were built to make them compatible with all target environments.