Emacs, please be in -*-text-*- mode. Danke! ===================================================================== This file is woefully out of date--we're well on our way to milestone 4. This document (which is primarily notes for programmers) will be eventually phased out. Check out the /doc directory in your subversion tree for real documentation. -Fitz ===================================================================== What the client looks like right now: ===================================== The client for milestone 2 has the basic SVN features implemented. It can checkout, update (local only), checkin, and import from local and remote (over DAV) repositories. There is however, still plenty of more work to do. So: svn checkout URL://repository/path/baz/bat \ -d DESTINATION svn add [FILE|DIRECTORY] svn delete [--force] FILE # This doesn't work. -Fitz 2001-04-03 svn commit svn update If you check out into DESTINATION, that directory must not exist, or be empty if it does exist. If you want to see the milestone 2 client in action, run "make check" in this directory. That runs the tests/svn-test.sh script, which tests the basic functionality of the client (but which is also woefully out of date as we have not yet decided on a test suite). What the client will look like in real life: ============================================ We're trying to be similar to command-line CVS, but not suffocatingly so. Subversion will differ where it provides a feature CVS doesn't, or doesn't provide something CVS does, or where people generally agree that the CVS way is not successful and shouldn't be imitated. Note that since we're not building on top of RCS and directories are first class citizens, a lot of options just disappear. If you are concerned that a particular body of functionality is not in Subversion 1.0, don't get upset, just mail dev@subversion.tigris.org and we'll talk about it like the civilized human beings that we all hope to be one day. :) Parsing Command-Line Arguments ============================== The CVS custom of switching on a subcommand seems to work out pretty well, so we'll do the same thing. But many people have mentioned that having separate global versus command-local option namespaces is confusing. So each subversion subcommand will have one option name space. Options can come anywhere on the command line (except after "--"). svn [] [