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.

What are the benefits, if any, of having a personal Version Control System? This includes such things as personal projects, hobbies, sample code accumulated over the years, etc.

Over and above the obvious benefits such as backup/history.

share|improve this question

closed as not a real question by gnat, Caleb, Jarrod Roberson, Walter, Klaim Jun 25 '12 at 10:44

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Depending on how you setup the source control specifically, it's nice for synching between multiple machines that you might use. I write hobby code on a variety of machines around the house, and the centralized SVN I use keeps all of them current. –  Erik Dietrich Jun 21 '12 at 18:55
2  
You'll be surprised at how many employers (at least the one's I've come across) who, when they google you're name to find your web presence (Social Media and such), they'll also look for examples of your personal code base. Having it all in one place (like GitHub, etc.) will make this process easier for them, and the easier it is... –  Jamie Taylor Jun 22 '12 at 13:13
    
possible duplicate of Version control for independent developers? –  Klaim Jun 25 '12 at 10:44
add comment

7 Answers

up vote 17 down vote accepted

There are a few additional advantages to using GitHub for personal projects.

  1. Offsite back up. // In case of hard-drive failure.
  2. Social coding. // Others may give you advice or contributions
  3. Reputation. // Sites like Careers 2.0, and employers, use it to determine your merit.
  4. Accessible from anywhere. //Patterns, templates, and boilerplates to use at any time.
  5. Tool Familiarity. //Enhances repository accumen.

There are probably more.

share|improve this answer
2  
+1 for point #1. Version control isn't just version control; it's also the most useful source code backup system ever invented. –  Mason Wheeler Jun 21 '12 at 19:02
    
thank you sir... –  ClintNash Jun 21 '12 at 22:51
    
+1 for everything you mentioned. If I could give you +1's for each point, I would. –  Jamie Taylor Jun 22 '12 at 13:10
add comment

I use git and github for my personal projects because:

  • I'm no longer tied to one machine.
  • I'm not tied to a cloud file sharing system like Dropbox, UbuntuOne, etc.
  • I can work offline with my own repository thanks to git and it's DVCS.
  • It's the same tool I use for work, which increases my proficiency (through use) in both areas.
  • It's part of my professional profile and a requirement for every job in my area (Ruby on Rails).
  • It save me from doing most local backups for code.
  • It's lets me do branches, e.g. I just took 6 months to upgrade an app and the branch was essential!
  • If you work on Open Source, forking & collaborating through github can often be a useful skill.

Minor note: Never use git/github for folders already within Dropbox, UbuntuOne, etc. or they will conflict massively and unhappiness will ensue !

Other tip: Learn how to rebase branches but never after pushing to a remote ! (then just merge).

share|improve this answer
    
+1 for very good, clear points (and the two tips at the end of the answer). –  Jamie Taylor Jun 22 '12 at 13:11
add comment

It gives you a single place to hunt for old versions, versus digging through a dusty pile of floppy disks, diskettes, tapes for drives no longer supported, old filesystems, etc.

share|improve this answer
3  
I miss those floppies, 'specially the 8 inch ones. Damn now I've aged myself too ;) –  Michael Durrant Jun 21 '12 at 19:19
    
@MichaelDurrant, I remember them too. And working on a teletype machine with no monitor! Oops, I've aged myself as well. –  HLGEM Jun 21 '12 at 20:41
    
Alas, I never copied stuff off of paper tapes and punched cards before they were tossed from attic storage. –  hotpaw2 Jun 21 '12 at 20:47
add comment

Bitbucket is an interesting option here -- unlike most of the other "cloud SCM" providers, they allow unlimited free private repositories. So you can get almost all the benefits of having your source "in the cloud" without having to share it with everybody else.

I was trying to think of what advantages having source control would engender, but that just made me realize I haven't done anything not using source control in the better part of a decade.

share|improve this answer
add comment

One use I find that hasn't been mentioned is simply looking at changes I've made in code over time, to get better ideas of practices, coding techniques, etc., that I probably should have avoided in the first place.

I also sometimes do some statistical analysis (well, really simple analysis) to get an idea of modules that (for example) have been modified a lot, and still have outstanding bug reports, feature requests, etc., to prioritize pieces that should probably be thrown out and rewritten from the ground up. Of course, you can't always do that, but it can give better ideas of places to look at, and think about anyway.

share|improve this answer
add comment

Another advantage of this is that you can code fearlessly on your own projects. Before I used source control my personal projects had extremely messy code because I was afraid that removing something would evaporate it forever.

I can now even delete whole sections of my code base to try alternate solutions to problems instead of having to copy it to a text file or creating weird duplicate projects.

share|improve this answer
add comment

Change tracking is huge, especially if you're coding in the late nights where you're brains half asleep (half awake?)

You can comment the code on check-ins so you can remember why you may have done something confusing?

You can revert back if you find yourself coded into a corner (you dont have to ctrl+Z back 2 days of code

You can get help from other developer friends if it's on a remote machine. They can easily jump in and start coding...

If you're house gets robbed and they take your computer at least you still have your source code

and remote development can be huge.. you can work between 2+ computers without needing to keep moving the code around..

share|improve this answer
add comment

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