3

I've been thinking recently about how and where I keep my code - I work across multiple locations, with at least three different computers and I'm considering how I manage my code across these machines.

I've got a dropbox account, which I use. For non sensitive files this is fine, and I do keep some sensitive files in there, but in a TrueCrypt file - this won't work large scale as the entire TrueCrypt file would need to be uploaded for any change. I don't feel safe putting my, or my employers, code on DropBox because of several security issues and news that they can access everyones' files.

I have a github account where I store my code (open and closed source), but I don't want to have to always push up to GitHub, also I work a lot on the train so I can't push as I don't have a stable data connection and chances are that I'll forget to push or grab data at some point and then I'll be stuck!

So - with that in mind, I'd like a discussion about storing code in the cloud:

  1. Is keeping source code in the cloud dangerous?
    • I understand the implications of keeping employers code in the cloud, but are there alternatives, given that a good number of VPN/RDC solutions that I've used are slow to the point of unusable? (this may be a point against my/my employers network speeds rather than the actual programs - but it's a impediment)
  2. Is there a good cloud based service with good encryption, good uptime, diff, auto sync?
    • Is there one aimed solely at developers? If not, does anyone want to start one with me? (joking but at the same time, it could be a good business venture - drop me a line if interested)
  3. What do you use? Does it work? how would you change it?
Martyn
  • 609

6 Answers6

5

Given your statement that "I work across multiple locations, with at least three different computers", I'm going to assume that DVCS is pretty much a requirement here as you don't say it explicitly. At least it is for me as I'm in the same boat. I know this may seem like a "duh!" statement, but I wanted to get that established first.

So to your questions:

  1. This is really going to be up to you, or at least I don't have any hard facts to persuade you to either choose or avoid a specific service. You say that you use GitHub. Although I do not use Git (I use Mercurial), I would call that a safe bet from what I read about the service. (Sorry, I know this answer may not give you much to go on.)
  2. I use BitBucket (Mercurial) and can say that it offers what you want, except for auto sync. Wouldn't auto sync be a function of your client though? Unless you write your own DVCS (at which you admittedly hint), I don't think you'll find that solution as a function of the cloud-based service you seek.
  3. As I said in #2, I use BitBucket (as well as a secondary machine at home which I also push to as a backup). It works wonderfully and, given my current needs I wouldn't change a thing.
2

One solution I can think of (especially if I was in your position) is to just set up a private server somewhere and completely edit / save / test your code there via RDP to a VM or something. This way, even if your connection is spotty, you don't risk anything happening to the code. But this might be overkill and unnecessary.

Also, not a cloud solution per se, but a somewhat viable alternative if you plan on copious amounts of off-site programming.

jayjyli
  • 151
0

The cloud is an abstracted group of shared resources, with the benefit that you can quickly and easily scale. You do not need rapid scaling just for code storage, so "cloud storage" is not the right solution for your problem. You are just looking for remotely accessible storage, which you're already using.

It would be useful to define what you actually mean by "cloud-based storage", since there are many definitions:

What is "The Cloud"? What do I say when people ask if my web service is "on the cloud"?

0

My recommendation, which I am planning on doing myself, Is setting up a subversion repository on a FREE TIER at amazon or azure and working from there.

Once the free tier is over, I can just upgrade to a small instance and remember, the instance does not need to be up all the time, only when I am either checking in or checking out the code. This will keep costs down, and keep me in complete control of my repository and my security.

For work stuff I prefer doing it like this rather than using github or the likes. You can even set up a VPN to access your repository. Its actually pretty cool the choices it gives you.

AJC
  • 1,439
  • 2
  • 10
  • 15
0

I'm trying out BoxCryptor on top of DropBox, with automatic aes-256 encryption of all individual files (including their names). Haven't thought yet about using it in conjunction with a version control system, but for securely syncing files across workstations it seems to work well.

-2

First of all, cloud computing comes at a cost and it's not that cheap as of now. There are numerous provider of cloud computing service. One that comes to my mind is Amazon.

As far as the security is concerned, they are pretty secure until the Service provider isn't the culprit. Working with them isn't that simple, you will definitely need to go through a learning curve to make better use of them