Projects/Devel/Codeville

TODO - 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
  • blame/annotate
  • more polish
  • cherry picking individual changes
  • rollback of individual changes

TODO - 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.