[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Checkouts - I think I've been doing it wrong for 3 years!

From: Steve Klett <sklett_at_pmddirect.com>
Date: Thu, 13 Aug 2009 19:34:02 -0700

Hi, first post.
I am the only developer in my small company and have been using (hosted)
subversion for 3+ years. When I first started using it I was coming from
an old job where we used sourcesafe (v6!) so there was no concept of
branches, tags, etc. While learning subversion (I read the red book and
also purchased Pragmatic Version Control with Subversion) I remember
reading about tags, branches and trunks and thinking it was interesting
but never ended up using them. Until now. Well at least I want to.
Here's how I've been working, I created my local copy of my projects
years ago and then added and committed that to the repository. Over the
years I have just added more and more projects. I now have something
like this on my local copy (same as working copy?)
C:\PMD Repository
        \More Stuff

as you can see there are no trunks or branches. That is easy enough to
fix I think by adding the folders and then svn-moving my projects into
the trunk.
What I'm REALLY confused about is the concept of a working copy and the
way I've been creating a complete copy of my whole repository on my
local machine. It's very "SourceSafe" of me to just do a giant update of
everything I need so that's how I've always thought about it.
After reading about branching and the switch command I suspect I've been
doing this all wrong. That I should actually be performing a checkout of
the specific trunk or branch that I want to work on. So rather that
checkout "PMD Repository" and get EVERYTHING I should create a basic
directory and checkout only the trunk or branch that I want to work on.
For example, if I wanted to create and work on a new branch of ProjectA
I would checkout "PMD Repository\Tools\ProjectA\branches\somebranch" to
my local folder "C:\PMD Repository\Tools\ProjectA"
In other words, I don't create the tree/branch/tag structure on my local
Is this correct? What's made me question all this is the concept of
"switching" which as I understand it sets your working copy (what
exactly does that mean?) to the trunk/branch/tag that you choose. It
lets users work on files without being concerned if they are on the
trunk or branch.
To me this seems very confusing and dangerous - how do you KNOW what
tag/branch/trunk you are working on?
What if I want to keep a working copy of trunk and a working copy a
branch at the same time? As I'm sure you can tell I'm missing something.
I've re-read the topics in the red book and read through my pragmatic
book again and I'm still confused.
Any help GREATLY appreciated. At this point I'd even pay someone for
some professional guidance on this - I really don't want to screw it up
and lose anything and I want to understand how to use subversion
Thanks for reading!


To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-08-14 04:52:15 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.