CVS
Ben Pfaff
pfaffben@msu.edu
27 Jun 2001 15:52:00 -0400
Edward Glowacki <glowack2@msu.edu> writes:
> The target audience for this application is not hard-core users of
> CVS or other sync utilities, but rather those people that know a little
> bit about them and have need to use several different sync/backup
> strategies for different things. It can cover up the details of the
> different implementations under a homogenous interface, so the user
> doesn't have to learn the ins and outs of each system. It should be
> easy to use, with online help (including examples!) and user input
> error checking and validation.
Heh. I think you're going to have to think about error handling
long and hard. It is easy to blow away oodles of work with some
of the tools we're discussing, if you're not careful (e.g., about
the direction of syncing).
> Basic operation
> ---------------
>
> Basic operation involves checking directories for .esync files,
> which are then read in to determine the method to be used for
> syncing that directory. For example, .esync might contain the
> following lines for use with CVS:
>
> METHOD CVS
> REPOSITORY hurakan.cl.msu.edu:/home/cvs
> RSH_CMD ssh
>
> and when run, esync might do the following
>
> setenv CVS_RSH ssh
> cvs -d hurakan.cl.msu.edu:/home/cvs update
> cvs -d hurakan.cl.msu.edu:/home/cvs commit
Okay. What if I want a fresh copy of the directory from CVS?
Can I blow away the old one (or move it elsewhere) and run `esync
refresh directoryname'? Might be useful.
> Commands Description
> -------- -----------
>
> ls - list directories with their date, method, and repository
>
> Example:
>
> docs 2001-06-15 23:15 rsync hurakan.cl.msu.edu:/home/cvs/docs
> thesis 2001-05-20 13:13 cvs hurakan.cl.msu.edu:/home/cvs
> data 2001-05-23 14:12 cvs /home/cvs
> temp Never none
> book 2001-06-15 23:20 cvs hurakan.cl.msu.edu:/home/cvs
> galeon 2001-05-20 20:00 cvs anonymous@anoncvs.gnome.org:/cvs/gnome
So does it need to do a full directory traversal of your HDD or
home directory to get this listing (look for .esync in every
directory), or do you have a ~/.esynctab or whatever that has all
the settings listed there? The latter would be a lot faster; on
my laptop here it takes a few minutes to list all the directories
and subdirectories in my home directory because I've got so
fscking many of them. (Well, half a second if it's cached, but
usually it isn't.)
> edit - change parameters for a directory
> update - run the update
> version - display esync, cvs, and rsync versions (and other modules)
> test - test connections
> (no command) - show version and help
> interactive - interactive mode?
> new - setup directory using defaults
I'd add a `diff' command to compare repositories.
--
"Q: How does a hacker fix a function which
doesn't work for all of the elements in its domain?
A: He changes the domain."
--Thorfinn