Milestone 1 - Target Date: 12/3
You should have received mail indicating who your team members are, what the name of the Unix group you'll be using is, and where your project space is. If you did not, let me know ASAP.A. Contact Your Team
Get in touch with your team and try to set up a schedule where you can all get together. If you intend to work mostly independently (on separate pieces, say), which I do not recommend for this project, then ideally, you'll be able to find at least 20 minutes each weekday up to the final due date. You can use that time just to exchange status reports and perhaps solutions to problems.B.I think a better approach to working as a team (for this assignment) would be to try to find a couple hours when you could get together to try to complete a milestone, as a team. This would be most effective if each of you had done some reading about the milestone's topic beforehand.
cvs- Set Up Your Working DirectoryYou will have to do this only once (now). Once the working directory is set up, dealing withC. Test Installing/Executingcvsgets a lot easier.On the machine where you would like to work,
cdto the directory that you want to be the parent of your working directory. The working directory will be calledhw7.Now do one of the following:
Either way, a directory
- If the file path
/projects/instr/03au/cse490c/cse490c-Xis accessible, where 'X' is your group letter ('a' through 'p'), then$> cvs -d /projects/instr/03au/cse490c/cse490c-X/CVSRepository checkout hw7Make sure to substitute for the 'X' in the above.- Otherwise
$> cvs -d :ext:yourlogin@attu.cs.washington.edu:/projects/instr/03au/cse490c/cse490c-X/CVSRepository checkout hw7Make sure to substitute your own login name for 'yourlogin' above, and to subsitute your group letter for 'X'.IF that command fails, then
$> export CVS_RSH="ssh"You need that environment variable set every session, so you might as well put it in your.profile. (I think the defaultcygwininstall arranges for it to be set, so the command above will most likely just work the first time you try it.)hw7should appear, containing subdirectories itself..cgi'sPrepare your account onD. Regular useabstract.cs.washington.edu:Push some
ssh abstract.cs.washington.edu- If you don't already have one,
mkdir wwwchmod a+x wwwcd wwwmkdir cse490cchmod a+rx cse490c- logoff
abstract(returning to the machine containing your working directory).cgi's to yourabstractweb space:See if it worked:
cdintohw7/ExampleCGIsmake. You'll have to supply your (Unix) password, as theMakefilewill try to copy the example.cgi's in the directory you're in to the direcory you just created onabstract.
- Bring up
Mozilla- Set its dial to
http://abstract.cs.washington.edu/~yourlogin/cse490c/env.cgi(once again substituting for 'yourlogin').- You should see a page full of stuff -- the environment variable values available to the
.cgiyou just ran.- Now try
http://abstract.cs.washington.edu/~yourlogin/cse490c/form.cgi. The form it should show is operational -- change some values and hit the submit button.cvscommandsOnce you've created your working directory from theE. One Finalcvsrepository, you'll most likely need to use only the following commands:The following just gives you some experience with (some of) these commands:
cvs add filenameSchedules a file to be added to the repository. The file is not actually copied to the repository until you execute a commit, unless the file is a directory (in which case a directory with that name is created in the repository, but the directory contents are not).cvs remove filenameSchedules the "deletion" of a file from the repository. (A) You must first delete the file from the current working directory. (B) The file is not actually deleted -- it's moved to a directory in the repository named Attic. (C) Removal doesn't occur until you do acommit.cvs commitUpdates the CVS repository, operating recursively from the current directory (i.e., includes all subdirectories). (A) Actually completes any add's orremove's previously executed. (B) Writes to the repository any files that (a) are included in the repostiory, and (b) have been changed since they were last fetched from the repository.cvs updateStarting with the current directory and operating recursively into subdirectories, updates all files (on the local machine) that have newer copies in the repository. Also fetches files that are in the repository but for which no local copy exists, except that it will not fetch missing directories or their contents. cvs update -dAs above, except also fetches any directories (and their contents) that are in the repository but for which no local copy exists.
cp formtest.cgi yourname-test.cgi
You want to create a unique name for your copy, so that you don't get conflicts with other team members in the repository.cvs add yourname-test.cgicvs commit
An editor will appear, offering you the chance to append a message with the file to be checked in. I don't know howcvsdecides what editor to use, but for me it'svi(or maybevim). To add text: use the arrow keys to move to the end of the text that's there. Type a single 'a' character. Now type your content. When done with your content, hit the ESC key. Now type the two character string ":w" (which writes the file). Now type ":q".- Edit the file you created by adding this line:
print "<p>yourname's form test\n";
immediately before the comment
# start the form- Type
maketo move your new.cgi(and all the old ones) toabstract.- Point Mozilla at your new
.cgi. You should see the line you added near the top of the page.cvs commitrm yourname-test.cgicvs updatecvsNoteUnlikercs,cvsdoes not prevent multiple users from checking out and editing a single file. (In fact, the entire idea of locking a file to prevent other users from editing it is considered odd in thecvsworld.)This means that you need to be somewhat coordinated as a team. If multiple people edit a file and then commit it,
cvswill try to merge all the independent updates in the repository's copy. (If it can't merge them, it will complain and make you merge them.) Most often, it's best to avoid this situation.