Access to Core Library using SubVersion (SVN)


GUEST ACCESS and DOWNLOAD

  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 in our library or to download it for your projects. Contact us if you would like to contribute and to have your own user account.
  3. To browse the Core Library:
    Just point your browser to
    	
    		http://subversive.cims.nyu.edu/exact/corelib2/trunk/
    		
           
    Use the user name "guest" with password also "guest".
  4. Standard software for downloading:
    The following instructions assume that you use two standard software, "svn" and "make". You call them from a command window (i.e., a "shell").
    In Windows, we suggest that you first get a basic (bare bones) "Cygwin" (you can add more tools later). Next use the "Cygwin Setup" to further download "svn-load" and "make" (both are found in the "devel" suite). Now you may use a cygwin command window for the subsequent steps.
  5. Download Steps:
    First check out Core Library to (say) "core2" in your current directory using this command:
    		> svn checkout --depth immediates \
    		     https://subversive.cims.nyu.edu/exact/corelib2/trunk \
    		     core2
    		
    Now "core2" has all the top-level files and folders of Core Library.
    From here, you can branch in one of two directions:
    1. Specific Downloads:
      If you are looking for a specific topic, this is most likely to be found in the top-level folder called "progs". Some of these are independent of the Core Library. E.g.,
      • progs/eval: (New, May 2023)
        real root isolation based on EVAL using various range functions, including our novel "Recursive Lagrange forms" and "Recursive Hermite forms".
      • progs/cluster: (New, Mar 2021)
        the first implementation of near-optimal complex root clustering algorithm, and extensions.
      • progs/robotics:
        Soft Subdivision Search (SSS) path planning for various robots: disc, triangle, 2-link (basic, thick, noncrossing variants), complex planar robots, spatial rod, spatial ring.
      • progs/vor:
        vor2d, vor2d-weighted, vor2d-maxEps.
      • progs/mesh:
        ceval, arrangement, PV, cxy, krawczyk.
    2. Core Library Downloads:
      If you want to download Core Library, you can check out the remaining files using the "make" program:
      		> cd core2
      		> make zeroth
      		
      Finally, follow the instructions in the README file in core2 to compile the basic programs in Core Library.
  6. Incremental Exploratory Downloads:
    The above steps ensure that you do not download very large folders that you do not need. Two such folders are "core2/progs/robotics" and "core2/progs/mesh". Such folders are initially empty. But if you want see what is under "core2/progs/robotics", it best to use a browser to explore this folder (see STEP 3 above). Alternatively, download just the top level files and folders of "robotics" folder like this:
    		> cd core2/progs/
    		> svn checkout --depth immediates \
    		     https://subversive.cims.nyu.edu/exact/corelib2/trunk/progs/robotics \
    		     robotics
    		> cd robotics
    		
    You can see what are the projects under "robotics". E.g., if you see "disc" and decide to download the entire "disc" project, do this:
    		> cd core2/progs/robotics
    		> svn checkout --depth infinity \
    		     https://subversive.cims.nyu.edu/exact/corelib2/trunk/progs/robotics/disc \
    		     disc
    		
  7. If you have any questions or suggestions, feel free to send an email to yap@cs.nyu.edu or exact@cs.nyu.edu.

CLIENT SIDE JOBS

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=https://yap@subversive.cims.nyu.edu/exact
    	  
  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=.] https://subversive.cims.nyu.edu/exact/collab/etc/etc.
    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")

USEFUL LINKS