Re: SCM Interface (Newbie)
Re: SCM Interface (Newbie)
- Subject: Re: SCM Interface (Newbie)
- From: Jack Repenning <email@hidden>
- Date: Sun, 13 Apr 2008 17:53:03 -0700
On Apr 13, 2008, at 6:34 AM, Jeffrey Oleander wrote:
So, you're checking out a copy of the whole repository!?
Why not just the files you're changing?
This is one of the things that seemed especially odd in
the CVS and SVN manuals.
Well, you check out some subtree. You don't have to (typically don't)
provide the URL of the top level of the whole repository, but rather
some subdirectory. For example, in the "canonical" repository
arrangement there might be:
REPO/trunk/a
REPO/trunk/b
REPO/trunk/c
REPO/branches/B1/a
REPO/branches/B1/b
REPO/branches/B1/c
REPO/tags/T1/a
REPO/tags/T1/b
REPO/tags/T1/c
You would typically check out REPO/trunk (to work on the current
stuff), or REPO/branches/B1 (to work on that branch).
Why is it like this? Well, because it was created by software
developers, for software developers: they check out a complete copy of
the source tree for their product, because after they make changes
they also build the whole product and test it.
I'm used to just telling the shared master repository
what files I'm planning on changing, and having the
IDE automagically handle the implied linking/substituting
my changed and recompiled code in with the last
integrated libraries, frameworks, etc.
I suspect you've tripped over a common term-variation, here.
In some VC systems, "check out" means "grant me permission to modify
these files." You would have a copy, or perhaps some voodoo linkage,
to the whole product, but in some non-modifiable state. Then, when
you decide you want to change a file, it has to be checked out, which
at the least makes some sort of data entry at the server noting that
you're now editing the file, and perhaps has to copy the file to your
desktop, or change its permissions, various stuff like that. That
what you're thinking?
That's not the SVN model. Rather, SVN uses the term "check out" to
mean "I don't have these files in any form now, please gimme some."
The somewhat later moment when you decide you want to modify a file is
not marked by any SVN command at all, you just go ahead and make your
changes. The (still none the less necessary) coordination to prevent
your changes from interfering with someone else's changes only happens
at "commit", when you make your changes available to everyone else.
At that point, if indeed several people have been changing the same
file, you might get an error telling you that someone else has
committed a change since your base copy of the file; you use the
"update" command to get those changes, and conceivably might have to
do something complicated to reconcile your changes with theirs;
ultimately, you try your "commit" again, and hopefully this time it
goes through.
-==-
Jack Repenning
email@hidden
Project Owner
SCPlugin
http://scplugin.tigris.org
"Subversion for the rest of OS X"
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden