If you rename a directory, and run cvsdelta on it, it
will not find any added or deleted files, where one
would expect to find the old name deleted and the new
name added. This appears to be because the new
directory already has a CVS directory in it (?)
I would ideally like to use cvsdelta to automate
keeping a checked out copy of the respository which is
edited by someone without cvs knowledge up to date. To
make this work, I have to be able to basically recover
to a known state after any kind of change someone might
do (excluding dorking with existing CVS directories in
bad ways) creating, deleting, and renaming files &
directories. I know directories arn't handled well by
CVS, but there must be a way....
Example:
rubin@uhds:~/working/website/staging$ mv deltatest/
newdelta
rubin@uhds:~/working/website/staging$ cvsdelta -e
total added changed deleted file
======= ======= ======= ======= ====================
------- ------- ------- ------- --------------------
0 0 0 0 Total
[No changes were made]
rubin@uhds:~/working/website/staging$ cd newdelta
rubin@uhds:~/working/website/staging/newdelta$ rm -r CVS
rubin@uhds:~/working/website/staging/newdelta$ cd ..
rubin@uhds:~/working/website/staging$ cvsdelta -e
/
total added changed deleted file
======= ======= ======= ======= ====================
3 3 0 0 +
newdelta/_copyright.php
1 1 0 0 + newdelta/_title.php
------- ------- ------- ------- --------------------
4 4 0 0 Total
[The old directory was not removed; but the new one was
added]
It also appears that deleting a directory does not
result in proper cvs commands being called to kill the
files in it.
Thanks,
-Rubin
Logged In: YES
user_id=316860
This is under consideration. The problem is that the
contents of CVS are read from the CVS/Entries files,
which are local to the parent directory. Therefore, from
within the CVS/Entries file, there is no way of knowing
which parent directory is being referred to.
One way around this would be for cvsdelta to maintain its
own list of files, including the directory for each one,
which would make it possible to detect when a directory
has been moved. I'll take this into consideration for a
future release, but in the meantime, the best way to do
what you're talking about is to create the target directory,
and move to it all the files from the original directory,
except, of course, for the CVS files.