solving the selective update of non-existent directories

"Martin d'Anjou" <[email protected]>
Newsgroups gmane.comp.version-control.cvs.general
Message-ID <alpine.LRH.1.00.0905131134550.3420@algonquin>
Hi,

I have this problem:
http://lists.gnu.org/archive/html/info-cvs/2001-07/msg00142.html

Which is represented here by a short example. We want file "f4" under 
d1/d2/d3/d4, but we only have up to d1/d2 in the "local copy". Instead of 
fetching the file, CVS complains:

$ cvs up -r 1.1 d1/d2/d3/d4/f4
cvs [update aborted]: no such directory `d1/d2/d3/d4'

A solution is to create the missing directory tree, and manually add
CVS/Repository and CVS/Root:

$ mkdir -p d1/d2/d3/d4
$ mkdir d1/d2/d3/CVS
$ mkdir d1/d2/d3/d4/CVS
$ echo "bozo/d1/d2/d3" >d1/d2/d3/CVS/Repository
$ echo "bozo/d1/d2/d3/d4" >d1/d2/d3/d4/CVS/Repository
$ echo "/work/cvs_database" >d1/d2/d3/CVS/Root
$ echo "/work/cvs_database" >d1/d2/d3/d4/CVS/Root
$ cvs up -r 1.1 d1/d2/d3/d4/f4
cvs update: cannot open CVS/Entries for reading: No such file or directory
U d1/d2/d3/d4/f4
$

CVS apparently does not care that CVS/Entries is missing, and happily adds 
it. Since all the variables are known, this can be automated easily.

Anyone sees anything wrong with this solution?

Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.