The Magic TODO list
larger features
- merge-through-conflict code (necessary in rare cases for revert and resurrection) 
- revert (for name operations, this already works for file contents) 
- resurrecting deleted files 
- access control lists on repository paths in the server 
- support for binaries 
- metadata (the execute bit, for instance) 
- internationalization 
- deal with case-insensitive file systems 
- more polish 
- cherry picking individual changes 
- rollback of individual changes 
smaller stuff
- Security audit of networking code 
- Shared secrets are stored encrypted against the users password, should also include a salt to protect against precomputed dictionary attacks 
- Move authentication-related info out of the tree. 
- Graphical history browsing tool. 
- Graphical conflict resolution tool, something like dirdiff which can read the inline conflict info. 
- Code cleanup - there are places in the code (sync_history(), gen_changeset(), handle_contents_at_point()) which should be using DFS.py to do a topological sort instead of being ad-hoc about it. This is a good way to become more familiar with the code. 
- Replace the stop-and-wait changeset fetching over the network with something better. Ask on the mailing list for more details. 
- Better parallelize the delta fetching and history replaying by moving one of the 2 into a separate thread. 
- Documentation. Some HowTo guides would be especially useful for things like history browsing. 
- Fix the file ignore pattern stuff. Should probably work more like CVS. 
- Remember which files had conflicts after an update and have the status command display them. 
- Force users to resolve name conflicts before allowing relevent files to be committed.