Better way to get different revisions of a program synced across virtual and actual controller?

Right now I’m just using the “save and load program” functionality to get things across, but it really is a big hassle if done multiple times in a row.

A good UX designer would have included a single button to update either controller with the latest version of the program from the other one.

What is the “create relation” thing (when you rightclick on a controller ) supposed to do?

A Relation is meant for exactly that, transferring RAPID (and other files) between a VC and RC in both directions.
Individual declarations or files can be excluded and you can compare the source and target to see what will be changed.

Do try it out!