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.