[BACK]Return to TODO CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Annotation of src/usr.bin/cvs/TODO, Revision 1.5

1.3       jfb         1: OpenCVS 0.2 TODO
                      2:
1.5     ! jfb         3: Top priority: missing commands
        !             4:
        !             5: Missing commands (client mode only for now)
1.3       jfb         6: ================
                      7: Implementing the missing commands is mostly a job of copying the code from
                      8: the working commands and changing some of the requests to be sent.
1.5     ! jfb         9: Put your name next to it if you are working on a particular command.
        !            10:
        !            11: Missing commands:
        !            12:        - add
        !            13:        - admin
        !            14:        - annotate
        !            15:        - commit (jfb)
        !            16:        - history?
        !            17:        - log
        !            18:        - release
        !            19:        - remove
        !            20:        - status
        !            21:        - tag
        !            22:        - the 'r' commands (rtag,
        !            23:
1.3       jfb        24:
                     25: Multiple server support
                     26: =======================
                     27: This is close to working but we need to put something like pre- and post-
                     28: recursion handlers for cvs_file_examine() so we can send one command
                     29: per root connection instead of one global command at the end.
                     30:
1.5     ! jfb        31: Date handling
        !            32: =============
        !            33: A lot of commands must handle date specs in a whole bunch of different
        !            34: formats (through the -D argument).  I assume we will need a good
        !            35: chunk of code to support all these formats.
        !            36:
        !            37: cvsd protocol
        !            38: =============
        !            39: Our version of 'cvs server' will not actually perform most of the operations
        !            40: but it will instead dispatch those to the cvs daemon through a connection
        !            41: made on a local socket.  The cvs daemon will then be able to see if the
        !            42: operation passes through the ACL and perform any modifications to the
        !            43: repository.  The protocol to talk between cvs and the daemon is not yet
        !            44: finished.
1.4       jfb        45:
                     46: Entries file caching
                     47: ====================
1.5     ! jfb        48: Update:
        !            49: Caching all the entries on /usr/src ate around 22MB of memory so this is
        !            50: obviously not an option.  We have two choices: either we suffer the loss
        !            51: of performance and reopen the file every time we have to make a modification
        !            52: to it, or we change the way the file hierarchy is loaded and load subparts of
        !            53: the tree only when needed instead of doing it all at the beginning.
        !            54:
        !            55: ----
        !            56:
1.4       jfb        57: Currently, adding entries in an Entries file involves opening that file,
                     58: adding the entry and closing the file.  This means that on every new entry,
                     59: the file is reparsed and rewritten to disk.  We should add some kind of
                     60: caching system with reference counts on the Entries files so we don't really
                     61: close them but keep them opened for future requests to avoid all the disk I/O.