Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

All students (regardless of enrollment in Comp311 vs Comp544) will must submit their homework to the same repository using the course name comp311 URL.repository https://svn.rice.edu/r/comp311/turnin/F20/.  There is a folder in this repository for each student enrolled in Comp 311 or Comp 544.

In past years, Rice IT supported a While Rice provides a simplified turnin command on its Clear cluster for accessing the repository, you are not required to use it. You can opt to use uploading a program submission to the repository.  The command was supported by a web interface so that you could perform the same operation remotely. This command is now available only on machines in the CLEAR cluster.  The web interface no longer exists.  For this reason, we strongly recommend that you use regular SVN commands to submit your assignment: follow the submitting your homework with SVN commands section. In fact, we highly recommend that you learn assignments from your personal machines to the Rice SVN repository.  Hence, you will need to learn how to use an SVN client to directly interact with the repository.

The turnin program is a script that uses Subversion to enable student homework submissions. It is available only in the Clear cluster.

Option A: Using SVN commands for direct repository access

Submitting your Homework using IntelliJ IDEA

If you are planning to use IntelliJ IDEA as your primary development environment for this course, you can use IntelliJ's Subversion integration to manage and submit your assignments.

...

, which is not difficult.  If you prefer using Git, you can also try using the Subversion client built into Git (git svn).  The old turnin command simply committed the contents of a directory (corresponding to a particular assignment) specified by an argument to the command.  When you develop a program using the same directory structure (which we will stipulate), all of your commits to that directory are effectively submissions of your program.  Of course, they aren't bona fide solutions until you finish your assignment.  We will not inspect them until after the assignment is due.

Note: if you need to use a slip day, please send an email message to comp311@rice.edu stating that fact before the assignment is due, so we know not to grade your program prematurely.

Option A: Using SVN commands to access Rice SVN from personal machines

Submitting your Homework from your Linux or Mac machine (Using SVN commands)

  1.  One time setup on your machine

    1. Make a new empty directory comp311 in your home directory and switch to that directory:
      mkdir comp311 
      cd comp311

    2. Use Subversion to check out your submission directory:
      svn checkout https://svn.rice.edu/r/comp311/turnin/«current-semester»F20/«your-net-id»
      E.g., for Fall 2017 2020 and the NetID  "xyz99": 
      https://svn.rice.edu/r/comp311/turnin/F17F20/xyz99


  2. To check the status of your current directory, run :
    svn status 
    This should show all your files that are added(A) / not added(?) / deleted(D) / modified (M) to the Subversion repository.

  3. To add folders/ files, use : 
    svn add «file_name» (without angle brackets)
    svn add «folder_name» (without angle brackets) – recursively adds all files in it
    This should show all files/ folders that have been added to the Repository (this is still a local copy)
    1. To delete folders/ files, use : 
      svn del «file_name» (without angle brackets)
      svn del «folder_name» (without angle brackets) – recursively adds all files in it
      This should show all files/ folders that have been deleted to the Repository (this is still a local copy)

  4. To commit your files, use: 
    svn ci -m "Some relevant message here"
    This should show all the files that have been added/ modified/ deleted ... followed by
    -- Transmitting file data.
    -- Committed revision «rev. no»

  5. And you have successfully added your folder/ files to the SVN repository. Visit repo on the svn.rice.edu/r/comp311/turnin/<netID> in your browser to confirm that all the file structure is of your files (typically only one per HW assignment) are intact.

Submitting your homework from your Windows machine

If you are using Windows 10, we recommend the course staff recommends that you set either:

  1. Set up the Windows Subsystem for Linux (WSL)

...

  1.  and then

...

  1. follow the steps above for using the SVN command on Linux, or 
  2. Use a standalone visual SVN client like TortoiseSVN, which augments the menus embedded Windows File Explorer with SVN commands akin to those supported in Linux using the command line.  

I am following the second approach which is working well.  I highly recommend it.  I also have WSL installed on my Windows 10 laptop but I strongly prefer running the native Windows 10 edition of Racket on my machine than the Linux edition of Racket inside WSL.  If you install WSL, there are two choices:

  • WSL 1.0, the original version which embeds the Linux file system inside the Windows 10 file system and implements the Linux kernel as a Windows 10 application built on top of Windows services.  
  • WSL 2.0, a new implementation based on OS virtualization (as done by VMWare and VirtualBox).  

In my experience, WSL 2.0 works better than WSL 1.0.  Both are available for download from Microsoft (who developed them) and there are detailed instructions on the web on how to install either system.  Regardless of whether you choose WSL 1.0 or WSL 2.0, you can select the particular variety of Linux that you want to install.  I strongly recommend installing the latest version of the long-term release of Ubuntu (20.04).  I have WSL 2.0 Unbuntu 20.04 installed on my laptop.  The principal problem with WSL 1.0 is that the final name space in Windows is much more restrictive that it is in Linux and many apps that you try to install on WSL 1.0 blow up because they use illegal fie names.  The principal hassle with both WSL 1.0 and 2.0 is that GUI applications are painful to set up because they require some control over the windowing system on Windows 10.  The hack that I use (again consult the web for various ways to solve the GUI issue)  requires eliminating firewall protection for the base Windows 10 system, which I dislike.  In contrast, the conventional command line interface simply relies on Windows 10 terminal applications for program interaction, so security on your laptop is not compromised.  Microsoft is feverishly working on providing better support for GUI applications in WSL 2.0 so I expect a much better solution to this problem within a year.  For now, WSL 2.0 is an interesting curiosity and works well for Linux apps without a GUI interface, but how many modern apps do not have a GUI?

Note: in the latter part of the course when programming in Java, you may want to use SVN integration supported by your IDE if it is available.  DrJava does not support IDE integration, but IntelliJ IDEA and Eclipse doYou may also opt to use the SVN integration in your IDE (see the section on IntelliJ above), or use a standalone visual SVN client like TortoiseSVN.

Option B: Using the

...

Rice SVN Repository from machines in the CLEAR cluster

One time Setup in Clear

  1. Login to CLEAR:
    ssh <your netid>@ssh.clear.rice.edu
    <your password>

  2. Make a new empty directory comp311 in your home directory and switch to that directory:
    mkdir comp311 
    cd comp311
     
  3. Use Subversion to check out your submission directory:
    svn checkout https://svn.rice.edu/r/comp311/turnin/«current-semester»/«your-net-id»
    E.g., for Fall 2017 and the NetID  "xyz99":
    https://svn.rice.edu/r/comp311/turnin/F17/xyz99


  4. You might be asked if you wish to store your password unencrypted. Always say no when asked this.
  5. Now you should have a folder named «your netid» in the comp311 directory you created.

Submitting your Homework from a machine in the Clear Network

  1. Make sure you are in your turnin directory.
    cd ~/comp311/<your netid>
     
  2. To check the status of your current directory, run :
    svn status 
    This should show all your files that are added(A) / not added(?) / deleted(D) / modified (M) to the Subversion repository.

  3. To add folders/ files, use : 
    svn add «file_name» (without angle brackets)
    svn add «folder_name» (without angle brackets) – recursively adds all files in it
    This should show all files/ folders that have been added to the Repository (this is still a local copy)

    1. To delete folders/ files, use : 
      svn del «file_name» (without angle brackets)
      svn del «folder_name» (without angle brackets) – recursively adds all files in it
      This should show all files/ folders that have been deleted to the Repository (this is still a local copy)

  4. To commit your files, use: 
    svn ci -m "Some relevant message here"
    This should show all the files that have been added/ modified/ deleted ... followed by
    -- Transmitting file data.
    -- Committed revision «rev. no»

  5. And you have successfully added your folder/ files to the SVN repository. Visit repo on the browser to confirm that all the file structure is intact.

Submitting your Homework from Your Own Unix Machine (Including Linux and Mac OS)

...

  1. Inspect the Rice SVN repository https://svn.rice.edu/r/comp311/turnin/«current-semester»/«your-net-id») using your browser ( to confirm that all the file structure is intact

Submitting Your Homework from Your Own Windows Machine

NOTE: These instructions were written for an older SSH/SFTP client that is no longer available. However, the same general instructions should apply to the newer client we recommend here. We'll update these instructions soon.

  1. Click this link to download secure SSH and SFTP clients to your computer: Bitvise SSH Client

  2. You will be asked to log in. Just use your Net ID and password as you would when logging into Owlspace. 

  3. Your browser should start downloading an installer file. Once it is downloaded, run it. You’ll be asked a series of configuration questions.

  4. The software will install itself and present you with a window indicating that setup is complete. Click Finish

  5. Now we have the software necessary to transfer files between your laptop and Clear. Go to your Start menu and under the new folder titled SSH Secure Shell, select the application Secure File Transfer Client

  6. A window will pop up. This is a client for transferring files from your computer using the Secure File Transfer Protocol (FTP). In the upper left hand corner of the window, there is a Quick Connect button. Select that. Next to Host Name type ssh.clear.rice.edu. Next to User Name type your Net ID. Hit Connect. You will be presented with a Host Identification window. Just click Yes

  7. Click OK when the Rice University Network prompt comes up. Enter the password you use for logging in to Owlspace at the next prompt. 

  8. It may take a few seconds, but the right hand side of the window should now show the files you have on Clear. To copy your homework to Clear, just navigate to where the files are on your computer in the left hand side of the window, and then click and drag them to the right. An entry will appear in the list at the bottom of the screen showing how much time is left in the transfer. 

  9. Congratulations! Your file is now on Clear. Use the Secure Shell Client that you downloaded with the Secure File Transfer Client (found in your Start menu under SSH Secure Shell) to connect to Clear.

  10. Follow the instructions for submitting from the Clear network.

Submitting Your Homework from a Windows Machine at Rice

 If you are submitting homework from one of Rice’s Windows machines, such as those in the library or college computer labs,

...

 Submitting your Homework from the Clear Network (Using Turnin)

  1. Make sure you are in your turnin directory.
    cd ~/comp311/<your netid>
     
  2. All of your files for your nth homework assignment should be in a subdirectory named hw_nSubmit the folder hw_n
    turnin comp311:hw_n
    This should show all your files being added to the Subversion repository.