Well, having gotten the "create a repository" situation under control,
thanks to Kevin and Ben, I decided to give subversion a test.
Figuring that there was no better subject for testing with pre-alpha
software than my homework, I proceeded to check in a directory of
about 20 files and one subdir with another 20 into a newly created
repository:
[sam_at_samth cs-compile]$ export REPOS=file:///home/sam/repos/
[sam@samth cs-compile]$ svn import $REPOS old-flame/ flame
Now, from the interface of import, and my experience with CVS, I would
expect this to do one of the two following things:
1. Create a dir in the repository called old-flame, with an inital tag
of flame and the contents of old-flame.
2. Create a dir in the repository called flame, the contents of
old-flame.
But, this command produces lots of messages like so:
[snip]
Adding old-flame//flame/tests/identifier.exp
Adding old-flame//flame/tests/keywords.exp
Adding old-flame//flame/tests/numbers.exp
Adding old-flame//flame/tests/quick.exp
[snip]
This suggests that a directory in the repository is being created,
called old-flame, with a subdir called flame, with that subdir having
the contents of old-flame. That seems really strange and
counter-intuitive. Fortunately, that isn't what actually happens, as
we soon see.
Then, I prepare to check out my imported directory. I do this as
follows:
[sam_at_samth cs-compile]$ svn co file:///home/sam/repos/flame -d flame
This does the right thing, and creates a directory called flame, with
the contents that were in old-flame. So it seems that the world makes
sense again. And the messages are clearer too, looking like so:
A flame/plex.pyc
A flame/pyson.pyc
A flame/flameparse.py
A flame/read1.flm
A flame/bigexpr.flm
Then, we try something else:
[sam@samth flame]$ svn rm profdata
[sam@samth flame]$ svn ci
Deleting ./profdata
Commit succeeded.
So far so good. Then
[sam@samth flame]$ svn up
D ./profdata
and
[sam@samth flame]$ svn rm pyson.pyc
[sam@samth flame]$ svn up
[sam@samth flame]$
This is confusing again - running svn up gives me no indication that
anything has changed [1]. But running svn up *after* the commit tells
me that I changed something. Seems backwards.
Then we try something more complex -
[sam@samth flame]$ svn rm CVS/ ( this used to be in cvs )
[sam@samth flame]$
Nothing happens. There is no evidence (either from output, or from
the files in the SVN dirs) that this command did anything at all.
Then we try
[sam@samth flame]$ rm -rf CVS/
[sam@samth flame]$ svn rm CVS
apr_error: #2, src_err 0 : No such file or directory
CVS/SVN/entries
[sam@samth flame]$ svn up
apr_error: #2, src_err 0 : No such file or directory
./CVS/SVN/entries
[sam@samth flame]$
So now, not only is it not gone from the repository, but my wc won't
update any more. Oops.
Ok, that's it for now. I'll check out another wc later, and let you
know how it goes from there.
[1] I remember the long dicussion about using "cvs up" for this
purpose a while back. I don't remember the exact conclusion, but I
think that svn up should say something here. And it certainly should
if it's going to say something *after* the commit.
sam th --- sam_at_uchicago.edu --- http://www.abisource.com/~sam/
OpenPGP Key: CABD33FC --- http://samth.dyndns.org/key
DeCSS: http://samth.dyndns.org/decss
- application/pgp-signature attachment: stored
Received on Sat Oct 21 14:36:28 2006