
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
246
|
Appendix A: Subversion for CVS Users
Here’s what this means to you, as a former CVS user:
• The
svn add and svn delete commands work on directories now, just as they
work on files. So do
svn copy and svn move. However, these commands do not
cause any kind of immediate change in the repository. Instead, the working
items are simply scheduled for addition or deletion. No repository changes hap-
pen until you run
svn commit.
• Directories aren’t dumb containers anymore; they have revision numbers like
files. (Or more properly, it’s correct to talk about directory foo/ in revision 5.)
Let’s talk more about that last point. Directory versioning is a hard problem; because
we want to allow mixed-revision working copies, there are some limitations on how
far we can abuse this model.
From a theoretical point of view, we define revision 5 of directory foo to mean a spe-
cific collection of directory entries and properties. Now suppose we start adding and
removing files from foo, and then commit. It would be a lie to say that we still have
revision 5 of foo. However, if we bumped foo’s revision number after the commit,
that would be a lie too; there may be other changes to foo we haven’t yet received,
because we haven’t updated yet.
Subversion deals with this problem by quietly tracking committed ...