Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

I am a hardware/infrastructure guy going back to school to get my degree (FINALLY...) and am taking some low level intro programming classes. On top of the JAVA I am working on at school, I am also tinkering around in some other languages. I work in a shop with some very talented developers and am attempting to learn as much as I can from them. Basically, learning a bunch on my own to write code that will make my infrastructure job easier, so I have more time to learn.

With that said, I spend 90% of my time using eclipse, and 8% in BlueJay (blah, I know) and 2% in VS Express. Because I have 5 different machines between work and home, I am having a big issues keeping my code for various projects up to date when working on different machines.

I tried using Dropbox, and setting the local folder on all my machines to my workspace in Eclipse, and that worked great for a week. Then I found out that the company was getting on users for Internet Usage, because their Dropbox was keeping a live connection to the web 100% of the time that it was running. I have tried the old school thumb drive approach, and I keep forgetting to save most recent to the thumb drive.

So, basically, what I am looking for is advice on how users keep their code up to date? Are there any similar utilities like DropBox, and only attempt to sync when stuff is changed? Are their any other suggestions for an online repository that I can do this with, without logging 50+ hours a week of time on our Firewall report?

share|improve this question
3  
git, mercurial, bazaar, or even subversion - choose whatever you like –  SK-logic May 6 '11 at 15:31
    
You could try using git/svn and use Unfuddle. They give you free prviate repositories and up to 200 mb of storage. –  Jetti May 6 '11 at 15:31
    
If you don't want the network traffic, you need a distributed versioning system so the repository you work with is on your local machine. –  user1249 May 8 '11 at 10:14
    
You could just tell dropbox to "Pause Syncing" when you login and un-pause it just before you leave. –  Jose M Vidal Aug 28 '11 at 0:15
add comment

marked as duplicate by gnat, Kilian Foth, psr, MichaelT, GlenH7 Jul 31 '13 at 12:23

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2 Answers

up vote 20 down vote accepted

We use source control, which has the added advantage of putting your code in source control. I find it hard to believe that anyone is programming without source control, but somehow I am continuously surprised.

share|improve this answer
1  
What I am working on are small, programs that I am using to learn. Nothing that I do is used for any good, other than making my job easier in the long run. Our company has a great source control process for actual developers. I am just doing projects that don't even deserve being described here. –  DaBaer May 6 '11 at 15:33
1  
Every piece of code that deserves being shared deserves being put in source control. Try something like git that makes creating projects trivial. –  Rein Henrichs May 6 '11 at 15:35
10  
DaBaer - "So, basically, what I am looking for is advice on how users keep their code up to date? " Answer: Source Control. Listen to this man. You are learning, learn to use source control. It will make your life easier once you figure it out. –  Jay May 6 '11 at 15:50
    
@DaBaer: Maybe create a separate repository named "experimental" or "learning" or "misc" (or something to indicate that it is not a part of any system being worked on professionally) and dump everything in there. –  FrustratedWithFormsDesigner May 6 '11 at 15:57
1  
No, just create a separate repository for every project. It's easy. You'll end up wondering how you ever got by without it. –  Rein Henrichs May 6 '11 at 15:58
show 4 more comments

Use a version control (source control) system.

You can go with something like SubVersion, or alternatively use a distributed version control like Mercurial or Git. These are all free and open-source projects, so should not cost you anything to get up and running.

Irrespective of the software you choose (and for what you're doing they should all work equally well) you'll need an online repository to store your code and files in which you can then sync and update from your other machines.

Some online repositories that offer free and private storage are:

Assembla
which has free private repositories Subversion and free public repositories for Mercurial and Git. All offer unlimited users and projects within the repository and also offer 2gb of space.

GitHub
which has free public repositories for Git. They offer unlimited repositories and collaborators (people) but it's intended for open source projects so your source and files are public.

BitBucket
which offers unlimited free public and private repositories, but is limited to 5 users for the free option.

Many of these sites will also offer additional tools along with the version control such as bug tracking, wiki pages, notepad pages etc. Also, you can always get more functionality (and make your repo private if the free option is only public) by buying a paid-for plan.

Finally, all of these options should suit your needs of a lightweight, disconnected client to the internet-based repository as they should only use your internet connection when you manually commit, update or push/pull your local files/repository to the server (or vice-versa).

I'm not affiliated with any of these websites, but I've used them all for more-or-less the exact same purposes as you're looking to use them for, and they're very good, even the free options.

share|improve this answer
    
Thanks for the great response. I had to choose the google code route, using subversion plugin for eclipse, because of how our firewall authenticates traffic externally. I have bookmarked these other repositories, and plan on using them in the future, when I have access to a machine not so filtered. –  DaBaer May 9 '11 at 21:54
    
@DaBaer - Of course, Google Code is another great repository. I can't believe I forgot to add that to my answer! (Doh!). Still, I'm happy you've found a solution to your needs! –  CraigTP May 10 '11 at 14:27
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.