Hello all,

I'm using CVS 1.10 and I am quite happy with it; however there is one
very important feature missing:
        CVS rename

The manual describes some workarounds, but these are quite
unsatisfactory; I suspect many to what I have been doing, just delete
and add it at the new location and loosing convenient access to the
history.

I am very fond of the simple architecture of cvs/rcs, i.e. every file
contains all the information, you don't need any master database stored
somewhere. In my mind it is critical to maintain this feature after
adding the rename feature.

To implement rename a name-location fields needs to be added to the
standard revision information (author, date, state, log). This fields
can be added in several ways:
        * use an existing fields (i.e. author). 
        * use special symbol (dirty !?)
        * add a new fields in such a way that the currrent rcs parser
would ignore, i.e. not complain about - maybe not possible !?
        >> Making the rcs file format backwards incompatible should be
avoided if at all possible. 

Modifications:

1. Add name-location field that is associated with every revision (like
author). The location fields would be a path name starting from CVS_ROOT
- it would not include CVS_ROOT path prefix => easy to relocate
repository.
        * the location in the latest revision would be in sync with cvs
repository location
        * the name in the latest revision would also be the name of the
file in the cvs repository

2. cvs checkout:
        find revision
        check if name-location field exists, if so check file out to
that location and under that name

3. cvs rename
        insert pending name and location change

4. cvs commit
        (this should be integrated in rcs)
        move the updated file to the new name-location (often no change)

The design has two important attributes:
        * The cvs repository will look the same for the main branch for
this new cvs and the current one. This means that when a user looks at
the repository, he sees the most recent layout - which is natural.
        * All information is still stored in one file only.


        - - - - -

I would like to contribute to this change, but I think there are some
cvs-gurus who are far more adept to do it - at least I have some
learning to do; maybe in a few months time I will be ready.

To me this is a most-wanted feature because without it you can't
reorganize your code unless loosing history (the workaround is ugly) and
so many probably don't do it !

Best regards,
Bergur Ragnarsson
ICELAND

Reply via email to