Access to Core Library using SubVersion (SVN)


  1. Core Library is an open-source C++ project that is geared towards research and exploration of innovative ideas in Computational Geometry, Algebra and Analysis.
  2. You are welcome to browse through our library or to use it for your projects. Your user name is "guest" and password is also "guest".
  3. To look at Core Library using any browser, just point your browser to
  4. To download Core Library for your use, you will need to use "SVN". To checkout Core Library to your [myCoreLib] in your current directory, do:
    		> svn checkout  [myCoreLib]
    Now go to [myCoreLib] and read the README file there to get started.
  5. If you have any questions or suggestions, feel free to send an email to or


If you are a Core Developer or have permission to develop a project within Core Library, you will need to perform other SVN tasks. Here are some useful tips to get started with SVN. These instructions assume a linux-type environment, using bash shell.

  1. Set up environment variables.

    Assign a text editor to the SVN. E.g., to make "vim" your default editor, do:
    	   >export SVN_EDITOR=vim
    Define the SVN_ROOT for convenient access (using the https protocol, assuming your user name is "yap"):
    	   >export SVN_ROOT=
  2. Checking out Core Library to your local repository (this is done once for each local repository):

    Suppose you want a local copy (or repository) called [myCoreLib] in your current directory. You can checkout as follows:
    	   >svn checkout $SVN_ROOT/corelib2/trunk  [myCoreLib]
  3. Commitment. If you are a Core Developer or a user with permission to develop a project in Core Library. Typically, your project will be under $(COREPATH)/progs/students or $(COREPATH)/progs/user. After you have modified a file (say, [fileName]) in myCoreLib, and fully tested your changes, you may commit your changes as follows. First be sure to first do an update, then resolve any conflicts before finally committing:
    	   >svn update [fileName]
    Update ensures you have the latest version of [fileName]. Using an editor, resolve any conflicts in [fileName], then tell svn that they have been resolved, and finally commit your changes:
    	   >svn resolved [fileName] 
    >svn commit [fileName]
  4. Adding an existing file-or-directory to SVN, or deleting a file-or-directory already in SVN:
    	   >svn add [file-or-dirname] 
    >svn delete [file-or-dirname]
  5. Renaming or Copying:
    	   >svn move [orig-filename] [new-filename] 
    >svn copy [source-filename] [destination-filename]
  6. Creating a new repository from a current directory NEWDIR:
    	   >cd NEWDIR 
    >svn import [PATH=.]
    Note that PATH is optional (defaults to ".").

  7. Selective Checkouts of a directory foobar:
    	  >svn co --depth=immediates $(SVN_ROOT)/foobar [LOCALDIR]
    will checkout only the top-level files. Instead of "immediates", try "files" or "empty". (Default is "infinity")