I use two computers, a Linux one for coding and building and a Windows one which has the programming application to load the built program onto the hardware. Both computers have access to a network drive which I use to pass the files from Linux to Windows.

My problem is, that every time I build I have to copy the files from where the are created to the network drive. How can I make some sort of file in the network drive on Ubuntu that always mirrors the file which is built in the different location, like a pointer? Thanks!

3 Answers
3

1) Work directly from files on the actual network share. (I personally would use NFS on the nix machine and tell the coding app on the Win7 machine to open / save all the working files on that mapped drive)

2) Dropbox or equivalent tool/service which synchronises folders on multiple computers in real-time. Technology is built-in to use your LAN as well so you're not constantly uploading downloading over the WAN.

Sounds like you can use a symlink to do this - basically, you'll create a local symlink of your network drive. When the files are built, it will look like a local directory to the build program (whatever that might be), but that folder will really be a folder on your NFS drive.

You need to be aware that depending on your network speeds, this could slow down the build process however. You might be better off doing what you're doing now - waiting for the build to complete, then copying the files up.

If it sounds like symlinking is the way to go, comment on this answer and I'll edit it with instructions (basically drag and drop while holding down the shift and control keys, but there's a ln -s <link name> <target directory> command you can use too.

Do you use VCS for storing your code? Some version control systems allow you to setup commit hooks, which would be able to do anything you want when commit occurs. You could setup it to update windows' working copy, for example.

Either way, all any bit serious code immensely should be managed under a VCS today. This is modern everywhere accepted (and often even required in the enterprise) software development technology.