Date: Fri, 29 Mar 2024 05:53:06 -0500 (CDT)
Message-ID: <1162591872.1159.1711709586586@wiki-n2.rice.edu>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_1158_618476969.1711709586585"
------=_Part_1158_618476969.1711709586585
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
Comp 311 Homework Submission Guide
We will use Rice's Subversion (SVN) repositories for all homework submis=
sions in this course.
All students (regardless of enrollment in Comp311 vs Comp544) must submi=
t their homework to the same repository https://s=
vn.rice.edu/r/comp311/turnin/F20/. There is a folder in this repo=
sitory for each student enrolled in Comp 311 or Comp 544.
In past years, Rice IT supported a turnin command on its C=
lear cluster for uploading a program submission to the repository. Th=
e command was supported by a web interface so that you could perform the sa=
me operation remotely. This command is now available only on machines in th=
e CLEAR cluster. The web interface no longer exists. For this r=
eason, we strongly recommend that you use regular SVN commands to submit as=
signments from your personal machines to the Rice SVN repository. Hen=
ce, you will need to learn how to use an SVN client to directly interact wi=
th the repository, which is not difficult. If you prefer using Git, y=
ou can also try using the=
Subversion client built into Git (git svn). The old turnin=
em> command simply committed the contents of a directory (correspondin=
g to a particular assignment) specified by an argument to the command. =
; When you develop a program using the same directory structure (which we w=
ill stipulate), all of your commits to that directory are eff=
ectively submissions of your program. Of course, they aren't bona fid=
e solutions until you finish your assignment. We will not inspect the=
m until after the assignment is due.
Note: if you need to use a slip day, please send an email message to&nbs=
p;comp311@rice.edu stating that fact before the assignment is du=
e, so we know not to grade your program prematurely.
Option A: Using SVN commands to access Rice SVN from pe=
rsonal machines
Submitting your Homework from your Linux or Mac m=
achine (Using SVN commands)
One time setup on your machine
- Make a new empty directory comp311 in your home directory and=
switch to that directory:
mkdir comp311
cd comp311
- Use Subversion to check out your submission directory:
svn checkout https=
://svn.rice.edu/r/comp311/turnin/F20/=C2=AByour-net-id=C2=BB
E.g., for Fall 2020 and the NetID =
"xyz99":
https://svn.rice.edu/r/comp311/turnin/<=
em>F20/xyz99
- To check the status of your current directory, run :
svn sta=
tus
This should show all your files that are added(A) / not added(?) / deleted(=
D) / modified (M) to the Subversion repository.
- To add folders/ files, use :
svn add =C2=
=ABfile_name=C2=BB (without angle brackets)
svn=
add =C2=ABfolder_name=C2=BB (without angle =
brackets) =E2=80=93 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)
- To delete folders/ files, use :
svn del =
=C2=ABfile_name=C2=BB (without angle brackets)
=
svn del =C2=ABfolder_name=C2=BB (without ang=
le brackets) =E2=80=93 recursively adds all files in it
This should show all files/ folders that have been deleted to the Repositor=
y (this is still a local copy)
- To commit your files, use:
svn ci -m "Some relevant me=
ssage here"
This should show all the files that have been added/ modified/ deleted ... =
followed by
-- Transmitting file data.
-- Committed revision =C2=ABrev. no=C2=BB
- And you have successfully added your folder/ files to the SVN repositor=
y. Visit svn.rice.edu/r/comp311/turnin/<netID> in your browser to con=
firm that all of your files (typically only one per HW assignment) are inta=
ct.
Submitting your homework from your Windows machine
If you are using Windows 10, the course staff recommends that you either=
:
- Set up the Windows Subsystem for Linux (WSL) and the=
n follow the steps above for using the SVN command on Linux, or
- Use a standalone visual SVN client like TortoiseSVN, which augme=
nts the menus embedded Windows File Explorer with SVN commands akin to thos=
e 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 mac=
hine 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 VM=
Ware and VirtualBox).
In my experience, WSL 2.0 works better than WSL 1.0. Both are avai=
lable for download from Microsoft (who developed them) and there are detail=
ed instructions on the web on how to install either system. Regardles=
s of whether you choose WSL 1.0 or WSL 2.0, you can select the particular v=
ariety of Linux that you want to install. I strongly recommend instal=
ling 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 pro=
blem with WSL 1.0 is that the final name space in Windows is much more rest=
rictive 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 wi=
th both WSL 1.0 and 2.0 is that GUI applications are painful to set up beca=
use 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 Wind=
ows 10 system, which I dislike. In contrast, the conventional command=
line interface simply relies on Windows 10 terminal applications for progr=
am interaction, so security on your laptop is not compromised. Micros=
oft 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 Lin=
ux 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 do=
.
Option B: Using the Rice SVN Repository from machine=
s in the CLEAR cluster
One time Setup in Cl=
ear
- Login to CLEAR:
ssh <your netid>@ssh.cle=
ar.rice.edu
<your password>
=
- Make a new empty directory comp311 in your h=
ome directory and switch to that directory:
mkdir comp311 <=
/strong>
cd comp311
- Use Subversion to check out your submission directory:
svn checkout https://svn.rice.edu/r=
/comp311/turnin/=C2=ABcurrent-semester=C2=BB/=C2=AByour-net-id=C2=BB
E.g., for Fall 2017 and the NetID&n=
bsp; "xyz99":
<=
strong>https://svn.rice.edu/r/comp311/turnin/F17/xyz99<=
/a>
- You might be asked if you wish to store your password unencrypted. Alwa=
ys say no when asked this.
- Now you should have a folder named =C2=AByour ne=
tid=C2=BB in the comp311 dire=
ctory you created.
Submitting your Homework from a machine in the Clear Network
- Make sure you are in your turnin directory.<=
br>cd ~/comp311/<your netid>
- To check the status of your current directory, run :
svn sta=
tus
T=
his should show all your files that are added(A) / not added(?) / deleted(D=
) / modified (M) to the Subversion repository.
- To add folders/ files, use :
svn add =C2=
=ABfile_name=C2=BB (without angle brackets)
svn=
add =C2=ABfolder_name=C2=BB (without angle =
brackets) =E2=80=93 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)
- To delete folders/ files, use :
svn del =
=C2=ABfile_name=C2=BB (without angle brackets)
=
svn del =C2=ABfolder_name=C2=BB (without ang=
le brackets) =E2=80=93 recursively adds all files in it
This should show all files/ folders that have been deleted to the Repositor=
y (this is still a local copy)
- To commit your files, use:
svn ci -m "Some relevant me=
ssage here"
This should show all the files that have been added/ modified/ deleted ... =
followed by
-- Transmitting file data.
-- Committed revision =C2=ABrev. no=C2=BB
- And you have successfully added your folder/ files to the SVN repositor=
y. Inspect the Rice SVN repository https://svn.=
rice.edu/r/comp311/turnin/=C2=ABcurrent-semester=C2=BB/=
=C2=AByour-net-id=C2=BB) using your browser ( to confirm that all the file str=
ucture is intact
------=_Part_1158_618476969.1711709586585--