4

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?

4
  • 3
    git, mercurial, bazaar, or even subversion - choose whatever you like
    – SK-logic
    May 6, 2011 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, 2011 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, 2011 at 10:14
  • You could just tell dropbox to "Pause Syncing" when you login and un-pause it just before you leave. Aug 28, 2011 at 0:15

2 Answers 2

21

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.

8
  • 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, 2011 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. May 6, 2011 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, 2011 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. May 6, 2011 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. May 6, 2011 at 15:58
3

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.

2
  • 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, 2011 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, 2011 at 14:27

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