Internet Application Dev Lectures <-
IAD Lectures
<-
Sean Forman <-
You Are Here
- Sean Forman
Dept. of Mathematics and Computer Science
Saint Joseph's University
Philadelphia, PA
- Topic: First Deliverable and CVS
- Props needed:
- Note: this lecture contains freely-available, copyrighted
material from Internet Application
workbook
by Philip Greenspun, Eve Andersson, and Andrew Grumet.
- Any decent software development system allows you to track
changes made in the code.
- CVS
allows you to
archive and retrieve old code. It allows you to track who is doing
what to the code.
- The basic model is that of a library.
- You check out your code and then return the copy.
- Multiple copies can be checked out at once. If changes are made
to other copies, you can then copy those changes into your copy.
- If you've each changed the same thing then you will merge the
code by hand, otherwise updates happen automatically.
- The data is stored in a special format within my directory.
- I will be able to track changes and look at your code whenever
you might need help.
- Each person will run the website through their browser.
- Go to my scott webpage /g0/.
- Demonstrate a checkout into my directory for group g0.
Website is now there.
- cvs -d /home/sforman/IADCVS checkout g0
- The power of CVS is to easily track your changes and annotate
your changes.
- Edit the index.html file.
- cvs commit index.html
- If no file is listed, it searches through all files for changes.
- Log into another account.
- cvs -d /home/sforman/IADCVS checkout g0
- Now this account has their own version of the codebase.
- They can make changes.
- Make a change and commit the change.
- Presumably you may be working at the same time as others in your
group.
- You may need to update your files to show their changes.
- We've made changes to g0 in temp5. I want to get these changes.
- cvs update
- Notice the change now appears on the new page.
- We can add any number of the files to the repository.
- Create the new file and edit as necessary.
- cvs add filename
- This file is now in the repository and available to all the
group members.
- To delete a file from the repository, we delete the file first.
- cvs remove filename
- To make this permanent you then need to commit the changes.
- CVS tells us if we try to commit changes to a deleted file.
- If CVS can't fix the problem it requires hand editing to fix the
issue.
- It is often useful to group a set of files into a single release.
- For instance, when you complete your first deliverable. You can
tag all of those files and then continue working on the next
deliverable.
- When you demonstrate your project to me, you can then tell me to
check out the set of tagged files and not the current set of files.
- It may make sense to tag the files every week or so in case you
need to backtrack to a previous version.
- cvs tag tag-name files
- The files list is optional. The default is all files in the directory.
- To check this particular tag out you still use checkout.
- cvs checkout -r tag gN
- The log command will show who made changes to the files and will
print out the annotations that were made.
- cvs log file
- You can also use the diff command to see differences between revisions.
- cvs diff -r 1.2 file
- Just doing cvs diff will show changes between the last
commit and your current files. Could show files ready to be committed.
- There are many options for this.
- cvs -H diff
- CVS Manual
- CVS Commands
- There is a basic howto within your default CVS information.
- Do the CVS assignment that I hand out.
- Due before Spring Break.
- I will have signup times for demonstration on Thursday March 4th
and Friday morning March 5th.
- You are to implement a user registration system.
- Here are the parts that you should implement.
- Page for a new user to register.
- A means for an existing user to login. When this occurs your
script should set a cookie to your browser that tells me what group
this login was for. Create a log in name and password for me.
- A means for a logged in user to logout.
- A means for a user to edit their information.
- A means for a user to retrieve their password if they can't
remember it. (You may only be able to send e-mails to sju addresses.
This is fine and you won't be downgraded for this.)
- A simple front page. This page should recognize if a user is
logged in and change what it says depending on whether the user is
signed in or not.
- An administration area. (you may want to look at creating an
.htaccess file using the /opt/web/apache/bin/htpasswd command)
- The admin area should have a means for listing all users,
editing users, deleting users, and other appropriate actions. A
non-admin member should not be able to get to it (or probably even
know about it).
- You will be graded on this based on how well you code the above
materials and meet the standards above.
- You will be graded on the quality of your code logs as well.
- Your setup needs to be secure and be able to recognize users as
they move around the site.
- You must account for non-standard inputs into your forms and do
appropriate error checking.
- You will be graded on how modular your code is. You should not
repeat code that does the same thing for two different parts of the
site.
- You will be graded on how well commented your code is.
- You will be graded on whether your code is done on time.
- I will have a more detailed description of the grading method on
Wednesday or next Monday.
This document was generated using the
LaTeX2HTML translator Version 2002 (1.62)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html lecture_5b -split 0 -init_file ./.latex2html-initOne -t 'First Deliverable and CVS '
The translation was initiated by Sean Forman on 2004-02-23
Copyright© 2004, Saint Joseph's University and Sean Forman