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

REQ: svn release

From: Tim Shadel <timshadel_at_gmail.com>
Date: 2005-09-23 01:44:49 CEST

Request:
--------
I want something like "cvs release", but all the
discussions I've seen on this list about the subject
of "cvs release" miss an important point. They all
assume it can be accomplished with a combination of
"svn st" and operating system commands. That's not
 completely true.

Scenario:
---------
Sometimes the /trunk has lots of projects (50+) in it.
I only want 12 right now. Next week I'll want 9, but
most of those are diffent than my current 12. I can't
do that without mangling the .svn administration files.
I could choose to have a working copy of mixed
revisions, but I cannot choose *not* to have a folder
once it's there. Watch this.

Setup my working copy with just the folders I want.

====================================================
$svn co -N file:///path/to/my/repo release-test
Checked out revision 1.

$cd release-test

release-test$ls

release-test$svn up -N first
A first
Updated to revision 1.

release-test$svn up first
At revision 1.

release-test$cd first

release-test/first$ls
====================================================

This directory is impervious to unwanted updates.

====================================================
release-test/first$svn up
At revision 1.

release-test/first$svn up *
At revision 1.

release-test/first$svn up sub*
At revision 1.

release-test/first$ls

release-test/first$svn up sub1
A sub1
Updated to revision 1.

release-test/first$svn up sub2
A sub2
Updated to revision 1.
====================================================

Do some work.

No longer need 'first' in my working copy.

====================================================
release-test/first$cd ..

release-test$rm -fr first

release-test$ls

release-test$svn up -N second
A second
Updated to revision 1.

release-test$svn up
A first
A first\sub1
A first\sub2
Updated to revision 1.
====================================================

But 'first' came back unbidden. Imperviousness gone.

====================================================
release-test$rm -fr first

release-test$attrib -R .svn\entries

release-test$write .svn\entries
====================================================

Gotta fix it by hand.

Remove this part of the file.

<entry
   name="first"
   kind="dir"/>

====================================================
release-test$attrib +R .svn\entries

release-test$svn up
At revision 1.

release-test$ls
second
====================================================

Now first is really gone from my working copy.
Imperviousness restored. :-)

So it seems important to have a way to say "I don't want this
in my working copy anymore. Please don't bring it back
unless I ask for it." Since that can only be done
by manipulating the .svn\entries file, it has to be a
features of svn, and not simply a combination of
operating system features and "svn st".

I've been using 'svn' since 0.18, so it took me quite
a while to figure out why this worked in CVS. It is the
interplay between two commands: 'cvs release -d' nukes
the directory, and 'cvs update' **unlike svn update**
will **NOT** bring down missing directories, so you can
remain isolated until you run 'cvs update -dP' which
is **much more like svn**. Does that ring any bells?
So the old 'cvs release -d' CAN be recreated from
operating system commands, but the svn version cannot.
Kind of a time warp to recall those details. :-)

Thanks for considering this request again. Hopefully
you see the place it occasionally has in every day work.

--Tim

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Sep 23 01:45:53 2005

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

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