Rsync'ing .julia/v0.5

question

#1

I develop and test code on my laptop, but use a server for computationally intensive numerical calculations.

I was wondering if there would be any harm in rsyncing ~/.julia/v0.5 folders between the server and my laptop (mainly from laptop to server). This would make life easier since some packages are not public (yet), so I can’t Pkg.add them, would have to sync them manually.

I would not sync the ~/.julia/lib folders, since it is my understanding that they contain precompiled files, and would be generated anyway.

So far, it works. But I am wondering if there are any caveats.


#2

As far as the source code and git status is concerned it should be fine, I use unison (similar to rsync) all the time to sync git repositories between machines. Packages requiring compiled binaries often install these in the deps/usr directory in the package dir, so there could be problems if the required binaries are different (e.g. when syncing between Linux and OS X).


#3

I’ve done similar (cp -a to USB drive and back) and it works as valid packages. One caveat: as you copy the whole git state with the .git folders it might be dangerous to use the copy as source in git push.


#4

Hi Tamas,

For a while (latter Julia 0.4 time frame?) I had many problems with Pkg.update() on private packages, but recently (5 or 6 months?) it seems to work fine again provided 1) I modify the url and pushurl lines in the .git/config file:

[remote “origin”]
url = git@github.com:goedman/BHAAnalysis.jl
fetch = +refs/heads/:refs/remotes/origin/
pushurl = git@github.com:goedman/BHAAnalysis.jl.git

and 2) the github tokens are up to date (I do that, after an OSX reboot in my case, by syncing one of my private packages with the GitHub Desktop). As I run OSX beta versions I reboot OSX roughly once a month or so as new OSX beta versions are released. Step 1) is only needed when I use PkgDev.generate(…).

Initially I clone a private package using:

Pkg.clone("git@github.com:goedman/BHAAnalysis.jl")

After these steps Pkg.update() works fine on multiple machines, including private packages. I know at some point there was some discussion on maybe dropping support for the git protocol, not sure what the final word is on that.

Regards,
Rob


#5

Thanks for all the comments. I have been using this for a while, but apparently it has problems with packages that need to be built: rsync seems to overwrite things which Pkg.build created, occasionally requiring rebuilding.