SYNCing project files on multiple computers
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
SYNCing project files on multiple computers
As a user of 3 different computers I've always had an issue of keeping a single project up to date. I have 2 desktop computers, 1 connected to the internet and the other on it's own network apart from the internet. The 3rd computer is a laptop connected to the internet.
I started out recently reinstalling the same OS (winXP SP3) on all 3. This gave me the chance to install the same Xilinx ISE14.1 software on all 3 as well. Also I copied a ISE project file to all 3.
This gave me a chance to experiment with a piece of software called Powerfolder. The review here does not seem to be up to date. I downloaded it to laptop first (which had older updates to my project files) and then the desktop connected to the internet. Then I pointed it to the common (same name) folder for the ISE project on both computers. The verilog files were auto-updated on the laptop right after installing Powerfolder to the desktop! Very easy.
The total time for doing this was <15min's, and all it asks for is your email and an access password. You are limited to 2GB and 5 folders in the free version. I'm not sure how it all works or where the info is stored, but since this project is in it's infancy I have no concerns of security yet.
I have yet to try Powerfolder on the "secured" desktop that is on it's own network.
I started out recently reinstalling the same OS (winXP SP3) on all 3. This gave me the chance to install the same Xilinx ISE14.1 software on all 3 as well. Also I copied a ISE project file to all 3.
This gave me a chance to experiment with a piece of software called Powerfolder. The review here does not seem to be up to date. I downloaded it to laptop first (which had older updates to my project files) and then the desktop connected to the internet. Then I pointed it to the common (same name) folder for the ISE project on both computers. The verilog files were auto-updated on the laptop right after installing Powerfolder to the desktop! Very easy.
The total time for doing this was <15min's, and all it asks for is your email and an access password. You are limited to 2GB and 5 folders in the free version. I'm not sure how it all works or where the info is stored, but since this project is in it's infancy I have no concerns of security yet.
I have yet to try Powerfolder on the "secured" desktop that is on it's own network.
Re: SYNCing project files on multiple computers
I haven't heard about Powerfolder. Thanks, will read up on it. I'm always interested in what's available in this area. There's another product called Wuala which can also sync between different computers (although not on mobile devices where there's currently only "normal" shared access). You get 5GB for free. What's special is that not only is the data encrypted but it's client-side encryption so their servers only see pre-encrypted data entering and leaving their servers - your password never leaves your computer(s).
Disclaimer: I'm a (voluntary) moderator on their support forum.
However, the way I work for my multi-computer projects is to keep all source under Git, and then I simply work locally on one or the other, when I'm ready I do a 'git pull' from the other computers. For those cases where I'm unable to reach one computer from another I set up a repository as the middle-man (using a Git 'bare' repository - i.e. no work tree), or, for projects which can as well be public: Using Github as the repository middleman.
For development I prefer this instead of working on a shared filesystem (which is kind of what the sync-shared setup works)
-Tor
Disclaimer: I'm a (voluntary) moderator on their support forum.
However, the way I work for my multi-computer projects is to keep all source under Git, and then I simply work locally on one or the other, when I'm ready I do a 'git pull' from the other computers. For those cases where I'm unable to reach one computer from another I set up a repository as the middle-man (using a Git 'bare' repository - i.e. no work tree), or, for projects which can as well be public: Using Github as the repository middleman.
For development I prefer this instead of working on a shared filesystem (which is kind of what the sync-shared setup works)
-Tor
Re: SYNCing project files on multiple computers
What is the difference to Google Drive or Dropbox?
Re: SYNCing project files on multiple computers
I've heard good things about Unison: http://www.cis.upenn.edu/~bcpierce/unison/
Re: SYNCing project files on multiple computers
You can also upload the files on github, and use that to sync every other computer. You'll get free version control, and a lot of help with merging if you accidentally edit files from two locations without syncing first. If you don't want the whole world to see your files, it's also possible to install a git server on your own network.
Re: SYNCing project files on multiple computers
.. but note that you don't need a git server if each machine can see each other anyway: Just pull between them. Very simple, very easy to set up and manage (close to zero)
-Tor
-Tor
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: SYNCing project files on multiple computers
I will look into the github server, probably more questions about it, since I actively use Github as well.
I mistakenly? copied a folder within a folder which max'd out the 2GB limit of the trial version of Powerfolder. I couldn't delete the mistaken files to get it back down to <2GB limit. At that point it was locked. Was a nice trial though...
I mistakenly? copied a folder within a folder which max'd out the 2GB limit of the trial version of Powerfolder. I couldn't delete the mistaken files to get it back down to <2GB limit. At that point it was locked. Was a nice trial though...
Re: SYNCing project files on multiple computers
Well don't forget the detail with GitHub (the service) is that all of your data is public unless you're paying for an account. There is a comparable service which allows free private repos called BitBucket. It also uses git.
Setting up your own Git, SVN, or rsync server is straightforward and well documented (Not sure how well rsync is supported on Windows).
I do not recommend Git for simply file replication. It works but there's a hidden overhead to it.
Specifically it's important to note that both Git and SVN are Version Control systems. The primary tasks of VC software is to retain old versions and manage conflicts. A distinction between Git and SVN is that Git is one of the family of distributed version control systems.
One ramification of this is that when you clone a Git repository (and this is how you fetch the data from one), you get the ENTIRE repository. This means not just the latest versions of the data, but ALL of the versions of the data. For text files this is no big deal, they tend to be small. For binaries, not so much. You can get a shallow copy of a git repository (i.e. the latest version) but it's effectively a read only copy -- you can not make changes to it and push them back up to the master server.
SVN doesn't has this issue. Your SVN server will hold on to and track everything, but the local copies are not the entire repository.
If you don't want versioning at all, rsync will do the job, just need to be judicious on who's changed file stomps on who. With git and SVN, the protocol manage conflicts (for example if you made changes on two of your clients to the same file, git and svn will prevent you from just having them walk on each other -- rsync will not).
I use rsync to make daily copies of work data on a rolling 30 day time frame, so I always have the last month of data. I use a technique on Unix using hard links to share files that have not changed, so each day while the entire file tree is replicated, it doesn't consume a large amount of space save for any new files. Existing files are shared between revisions. Apples Time Machine uses a similar technique but achieves it differently.
Setting up your own Git, SVN, or rsync server is straightforward and well documented (Not sure how well rsync is supported on Windows).
I do not recommend Git for simply file replication. It works but there's a hidden overhead to it.
Specifically it's important to note that both Git and SVN are Version Control systems. The primary tasks of VC software is to retain old versions and manage conflicts. A distinction between Git and SVN is that Git is one of the family of distributed version control systems.
One ramification of this is that when you clone a Git repository (and this is how you fetch the data from one), you get the ENTIRE repository. This means not just the latest versions of the data, but ALL of the versions of the data. For text files this is no big deal, they tend to be small. For binaries, not so much. You can get a shallow copy of a git repository (i.e. the latest version) but it's effectively a read only copy -- you can not make changes to it and push them back up to the master server.
SVN doesn't has this issue. Your SVN server will hold on to and track everything, but the local copies are not the entire repository.
If you don't want versioning at all, rsync will do the job, just need to be judicious on who's changed file stomps on who. With git and SVN, the protocol manage conflicts (for example if you made changes on two of your clients to the same file, git and svn will prevent you from just having them walk on each other -- rsync will not).
I use rsync to make daily copies of work data on a rolling 30 day time frame, so I always have the last month of data. I use a technique on Unix using hard links to share files that have not changed, so each day while the entire file tree is replicated, it doesn't consume a large amount of space save for any new files. Existing files are shared between revisions. Apples Time Machine uses a similar technique but achieves it differently.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: SYNCing project files on multiple computers
Whartung, thanks for all that info. rsync seems to offer alot, but it's not free. I'll check out Wuala as Tor suggested, before github. I can't stand not having my files SYNC'd. It's madness.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: SYNCing project files on multiple computers
Ah, I was looking at rsync.net.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: SYNCing project files on multiple computers
Wuala works nice. I noticed maybe a 1 min lag time for the sync to happen between 2 computers.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: SYNCing project files on multiple computers
On Wuala, would be nice if one could SYNC only individual files within a folder, and not the whole folder itself. Wuala starts out asking for a folder. Just a minor formality, I can't complain since it's free and it works very good for the price. Also, it appears to let you delete files without keeping some kind of overall tab of uploading.
Re: SYNCing project files on multiple computers
Yes, the sync feature is based on folders, not files, so you would have to separate into different folders if you wish to sync only specific files. Although I believe there is a filter which can filter files you _don't_ want synced (I don't use the sync feature actively myself - I mainly use Wuala as a place in the cloud I can reach from anywhere with everything).
I'm not sure what you meant by that about deleting files vs. uploading.. but when you mention delete, be aware that the sync feature intends to keep multiple machines in sync, so when you add a file one place it'll be added on the other computers, and if you _delete_ a file one place it'll be deleted on the other computers too.
Lastly, there is a time-travel feature in Wuala, so if you overwrite files with new versions it's possible to retrieve older versions later. Select a file in the GUI, hit 'File' and there's an option available. Or right-click, I think.
As I mentioned earlier for software development I use Git to keep me in sync (but I don't use any shared repository), but documentation etc. I push into Wuala. So I can read docu on this Android tablet from home, or on some computer elsewhere.
-Tor
I'm not sure what you meant by that about deleting files vs. uploading.. but when you mention delete, be aware that the sync feature intends to keep multiple machines in sync, so when you add a file one place it'll be added on the other computers, and if you _delete_ a file one place it'll be deleted on the other computers too.
Lastly, there is a time-travel feature in Wuala, so if you overwrite files with new versions it's possible to retrieve older versions later. Select a file in the GUI, hit 'File' and there's an option available. Or right-click, I think.
As I mentioned earlier for software development I use Git to keep me in sync (but I don't use any shared repository), but documentation etc. I push into Wuala. So I can read docu on this Android tablet from home, or on some computer elsewhere.
-Tor