1

I'm completely new to svn, the last time I used any kind of source control was 1987 (sccs). I'm a one man development team, my only purpose for svn is to allow me to have a copy of the source that is in production so I can do a quick fix, while having another copy where I do new feature development. If I find a bug that needs a immediate attention, I fix it in the 'quick fix' copy, push it to production, then merge the change into 'ongoing development' copy. When I push the 'ongoing development' into production, I'd need to reset the 'quick fix' copy.

I actually develop 3 sites, and they have a lot in common, some shared code, but mostly they communicate with each other is various ways.

My biggest confusion is with the terminology 'working copy', and 'bookmark'. And I also wonder about the 'trunk','branch' & 'tag', terminology, do I even need it for a one man shop?

Any suggestions as to how to set this up? The only thing I was able to gleen from related questions is that I probably should use 1 repository for all three sites. Other than that, I'm lost as to how to set this up, I use Versions on a Mac if that makes any difference.

UPDATE: The Book suggested below is very good, And I've got it all straightened out (I think). The initial confusion was over the term Bookmark. Turns out that's a Versions (Mac) specific term, A bookmark just bookmarks a working copy.

So here is what I've figured out, first a create a repository, then import my three sites

create two working copies for each site

brad/tvdco/prod
brad/tvdco/fix
brad/neeis/prod
brad/neeis/fix
brad/pdftk/prod
brad/pdftk/fix

start working on new features in the ?/prod working copy

if I need an emergency fix, I fix/test in ?/fix, commit that fix to the repository, then export it and push it up.

I then update ?/prod to get that fix into new development.

When I'm ready to push the new features, I commit ?/prod, export it, push it up, go to ?/fix and update it.

Pretty straight forward from an svn perspective.

RadBrad
  • 7,234
  • 2
  • 24
  • 17

2 Answers2

1

Check out the SVN Book (online) to help get you going. It will introduce you to the concepts that should help you along. The first chapter will help you get past the terminology.

A lot of the setup is left up to you and how you want to use it. Most repos use the Branch, Tag, Trunk root setup, but it's not required.

AlG
  • 14,697
  • 4
  • 41
  • 54
  • Well written book so far, thanks, I was hoping to hear from another 'one man team' to get some suggestions on setup for my simple usage case. – RadBrad May 21 '12 at 17:25
  • That book is exactly what I needed, very well written, with chapters covering exactly what I asked originally. I'll update my question once I've got it all worked out for posterity. – RadBrad May 21 '12 at 17:51
1

For a one-man-team, I always suggest git, a distributed version control system. It requires no central server and in my opinion, it is a lot easier to set up and more flexible than SVN --- at least for the use case you are describing (I don't want to start a flame war here :)). git has an amazing official documentation and even a beginner's guide on stackoverflow.

To be honest, its own terminology is something one has to lean at the beginning. Some of my friends who were still using svn some time ago, did not make the switch to git easily. But if you have not been using version control for a long time, chances are that you may find git's approach quite fresh.

Community
  • 1
  • 1
Gnosophilon
  • 1,340
  • 7
  • 24
  • Well I'm just starting with svn, The only other web developer who's opinion I solicited also pushed hard for git. svn has 'local repository', so I don't need to mess with a 'central server', and Versions on the Mac sets it all up. So now it comes down to this, the GUI of Versions on the Mac is very nice, is there an equivalent GUI for git? I just want to introduce some simple versioning as transparently as possible. I got suckered by the slick GUI. – RadBrad May 21 '12 at 17:42
  • @RadBrad There's [SmartGit](http://www.syntevo.com/smartgit/index.html), which is platform-independent and dozens more. Also see [this stackoverflow link](http://stackoverflow.com/questions/83789/what-is-the-best-git-gui-on-osx) for more information. – Gnosophilon May 21 '12 at 19:05