[system] / branches / gage_dev / webwork2 / lib / WeBWorK / Utils / CourseManagement.pm Repository:
ViewVC logotype

Log of /branches/gage_dev/webwork2/lib/WeBWorK/Utils/CourseManagement.pm

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 6939 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 18 19:16:04 2011 UTC (22 months ago) by gage
File length: 40364 byte(s)
Diff to previous 6701
add localizing files -- merge with trunk


Revision 6701 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 6 14:47:11 2011 UTC (2 years, 3 months ago) by gage
File length: 39663 byte(s)
Diff to previous 6655
add initNonNativeTables

to handle depths, location and location_address tables


Revision 6655 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 28 17:49:32 2010 UTC (2 years, 4 months ago) by gage
File length: 37425 byte(s)
Diff to previous 6333
changed all occurences of "published" to "visible"   and of "unpublished" to "hidden"

also modified database.conf.dist   so that visible is aliased to "published".

thus the database reference remains "published" but everything else is changed.

Next project:  create an easy automatic upgrade of tables to change field name from 
"published" to "visible"  and then change back the database.conf.dist



Revision 6333 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 10 00:34:48 2010 UTC (2 years, 10 months ago) by gage
File length: 38292 byte(s)
Diff to previous 6299
Allow the path for storing the archive file to be specified in the options parameter

Revision 6299 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 22 14:46:58 2010 UTC (2 years, 11 months ago) by gage
File length: 38060 byte(s)
Diff to previous 6181
test development branch

Revision 6181 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 11 18:31:57 2010 UTC (3 years, 4 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 38060 byte(s)
Diff to previous 6124
correct typo

Revision 6124 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 1 21:28:46 2009 UTC (3 years, 7 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 38119 byte(s)
Diff to previous 6089
added some documentation

Revision 6089 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 30 20:40:31 2009 UTC (3 years, 9 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 37954 byte(s)
Diff to previous 5985
replaced %WeBWorK::SeedCE with

get_SeedCE($ce)

because, if the webwork server hasn't been run recently
%WeBWorK::SeedCE might not be defined.
and  addcourse will fail

Revision 5985 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 2 03:18:10 2009 UTC (4 years, 3 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 37629 byte(s)
Diff to previous 5979
Streamlined the course integrity checking

Revision 5979 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 25 15:32:13 2009 UTC (4 years, 3 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 43583 byte(s)
Diff to previous 5973
Changes to support archiving courses.

Revision 5973 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 18 03:25:37 2009 UTC (4 years, 4 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 43244 byte(s)
Diff to previous 5319
changes to support increased error checking when archiving courses

Revision 5319 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 13 22:59:59 2007 UTC (5 years, 9 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 37109 byte(s)
Diff to previous 5221
updated copyright dates

Revision 5221 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 26 18:53:08 2007 UTC (5 years, 9 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 37109 byte(s)
Diff to previous 5207
Construct additional course environments using %WeBWorK::SeedCE, which
will always have all necessary values in it. The old way broke when we
moved the definitions of $webwork_courses_* and $webwork_htdocs_* out of
global.conf and into webwork.apache[2]-config (and therefore into
SeedCE).

Revision 5207 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 21 19:13:10 2007 UTC (5 years, 10 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 37341 byte(s)
Diff to previous 5029
use new dummp_table/restore_table code for course archiving/unarchiving

Revision 5029 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 25 12:10:49 2007 UTC (5 years, 10 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 36151 byte(s)
Diff to previous 4842
Changes to make unarchiving possible with a choice names for the unarchived files.
To do:  Provide updating of the database.  Currently there may be difficulties if the database is upgradedbetween the time the course is archived and the course is unarchived.
The behavior with sql_moodle  data schemas has not been tested.

Revision 4842 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 6 01:33:53 2007 UTC (6 years, 2 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 34170 byte(s)
Diff to previous 4835
use path to cp in course environment

Revision 4835 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 5 19:07:45 2007 UTC (6 years, 2 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 34144 byte(s)
Diff to previous 4539
replace system() calls with readpipe() calls -- arguments are escaped
and stdout/stderr are captured, and exit status is reported accurately.

Revision 4539 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 29 19:39:55 2006 UTC (6 years, 7 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 33697 byte(s)
Diff to previous 4535
use $db->rename_tables for course renaming, remove addCourseHelper,
deleteCourseHelper, copyCourseDataHelper and associated infrastructure.
still have to do something about archive/unarchive -- they are not only
mysql specific, but they rely on the database being local, on the
default port, and named "webwork". :P

Revision 4535 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 29 16:52:23 2006 UTC (6 years, 7 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 36332 byte(s)
Diff to previous 4527
use $db->create_tables and $db->delete_tables, check for dblayout
existence even if we're using the default dblayoutname, make regex and
error message match for course id checking, removal of "sql" specific
information from POD, formatting fixes, additional warnings about bad
course existence checking code.

Revision 4527 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 26 15:57:41 2006 UTC (6 years, 7 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 36257 byte(s)
Diff to previous 4521
remove several useless "use Data::Dumper" lines

Revision 4521 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 25 22:35:05 2006 UTC (6 years, 7 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 36304 byte(s)
Diff to previous 4359
use a single username/password for connecting to the SQL database. this
means that only one DBI handle is created instead of two, and the
Driver's connect/disconnect methods are no-ops.

Revision 4359 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 8 16:09:58 2006 UTC (6 years, 9 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 36306 byte(s)
Diff to previous 4129
remove vestigal gdbm/global_user related stuff.

Revision 4129 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 15 14:48:19 2006 UTC (6 years, 11 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 38204 byte(s)
Diff to previous 4083
Implemented unarchiving function to complement archiving function.

Archive exports the course database to courseName/DATA and then tas and gzips the directory courseName to
courseDirectory/courseName.tar.gz

Unarchive allows one to choose files of the type courseDirectory/courseName.tar.gz  and then
ungzip, untar them to courseDirectory/courseName   -- the database record in courseName/DATA is
then loaded into the webwork database.

So far there is only minimal error checking about whether all or part of the course exists when unarchiving.

There are not yet features for archiving and then deleting a course -- these two operations have to be done
separately for now.

Revision 4083 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 18 19:32:41 2006 UTC (7 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 35227 byte(s)
Diff to previous 3975
modifications necessary to support moodle tables:

* respect non_native flag in dbLayout
* don't attempt to add users if user table is non_native
* rather than checking for the string "sql_single" in renameCourse and
  archiveCourse, and erroring out otherwise, we check to see if there is
  a copyCourseDataHelper or archiveCourseHelper implementation
  (respectively). new getHelperRef subroutine helps with this.

With these changes, courses with the sql_moodle dbLayout can be created,
deleted, renamed, and archived using the WeBWorK course management
tools.

Revision 3975 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 26 21:45:42 2006 UTC (7 years, 3 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 34751 byte(s)
Diff to previous 3973
forward-port from rel-2-2-patches: (make addCourse, deleteCourse more
robust.
- pre-check permissions before trying to mkdir/rmtree
- treat creation errors on directories other than the root as warnings
- treat deletion errors on all directories as warnings
- treat sql_single "drop table" errors as warnings
- supress DBI's error reporting for command-line addcourse/delcourse)

Revision 3973 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 25 23:13:56 2006 UTC (7 years, 3 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 31115 byte(s)
Diff to previous 3892
forward-port from rel-2-2-dev: (update copyright date range -- 2000-2006.
this is probably overkill, since there are some files that were created
after 2000 and some files that were last modified before 2006.)

Revision 3892 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 9 23:57:28 2006 UTC (7 years, 4 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 31119 byte(s)
Diff to previous 3823
I've modified the renameCourse code to simply issue a warning when a
course directory (other than the course root dir) is not movable. I've
also added error checking for some of the more common reasons for
directories to not be movable, so that the warning message is more
informative.

Resolves bug #943.
Originally committed to branch rel-2-2-dev.
Forward-ported without modification to HEAD.

Revision 3823 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 16 23:13:27 2005 UTC (7 years, 5 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 29748 byte(s)
Diff to previous 3665
don't write globalUserID to course.conf file.

Revision 3665 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 28 23:26:06 2005 UTC (7 years, 7 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 31356 byte(s)
Diff to previous 3636
Changed the wording of the initial course.conf file.

Revision 3636 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Sep 17 20:14:02 2005 UTC (7 years, 8 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 30935 byte(s)
Diff to previous 3528
Expanded information in error messages.

Revision 3528 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 14 16:52:11 2005 UTC (7 years, 9 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 30937 byte(s)
Diff to previous 3453
Add the beginnings of a facility for archiving a course.  This method uses mysqldump
and therefore will work only with a mysql database.  Many things are still hardwired
In particular mysqldump is hardwired.
The database name is hardwired to  "webwork"

Archiving consists of dumping the tables associated to the course to a file
$courseID/DATA/$courseID_mysql.database  (this file can be used
to created a new database for the course.  it will not overwrite existing
tables however.)

Then the entire course directory is tarred and gzipped and placed
in the courses directory with the naem $courseID.tar.gz

Currently nothing is deleted from the database and no directories are deleted.
So the implementation is fairly safe, but not yet very useful for course management.

There is not yet a facility for automatically importing the archived course.

Revision 3453 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 4 22:45:34 2005 UTC (7 years, 9 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 26260 byte(s)
Diff to previous 3377
fix bug #803: corrected typo that prevented course renaming from working.

Revision 3377 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 14 13:15:27 2005 UTC (7 years, 10 months ago) by glarose
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 26259 byte(s)
Diff to previous 3059
Preliminary commit of changes to add Gateway module.
This adds to WeBWorK
 - the ability to create versioned, timed problem sets ("gateway tests")
   for which all problems are displayed on a single page ("versioned"
   means that students can get multiple versions of the problem set),
 - the ability to create sets that draw problems from groups of
   problems, and
 - the ability to create sets that require a proctor login to start
   and grade.
Sets can be defined as gateway tests or proctored gateway tests from
the ProblemSetDetail page.

Not quite bug-free yet.  Known bugs include handling of problem values
on the Student Progress page (I think this may be a problem with
changing from sql database format where all entries were 'text' to
sql_single in ver 2.1, where they are integer), and a division by zero
error on the grades page (which may be the same problem).

Tests with a number of attempts per version greater than one haven't
been carefully tested, nor has scoring of gateway tests.

Revision 3059 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 21 04:41:03 2004 UTC (8 years, 5 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 26259 byte(s)
Diff to previous 2835
Added course renaming to CourseManagement, CourseAdmin.

It works like this:

- move the course directory
- move any course subdirectories that are still at their old locations
  (like if they were outside the course directory)
- create a new database using addCourseHelper()
- copy the course data into the new course database using
  copyCourseDataHelper() (INSERT INTO $new SELECT * FROM $old)
- delete the old course database using deleteCourseHelper()

TODO:
* write helpers for gdbm and sql layouts
* write command-line script

Revision 2835 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 27 19:21:54 2004 UTC (8 years, 7 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 21301 byte(s)
Diff to previous 2759
added dbLayoutSQLSources function to get a hash mapping DBI sources to
the username and password of the source and the tables that use the
source.

Revision 2759 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 10 20:24:32 2004 UTC (8 years, 8 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 19821 byte(s)
Diff to previous 2588
rel-2-0-patches merge: removed unused professor-enumerating code, fixing
bug #638.

Revision 2588 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 10 23:58:01 2004 UTC (8 years, 9 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 19851 byte(s)
Diff to previous 2385
use database-layout-specific helper functions in
WeBWorK::Utils::CourseManagement::*.

Revision 2385 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 24 17:44:16 2004 UTC (8 years, 11 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 24524 byte(s)
Diff to previous 2379
handle PRINT_FILE_NAMES_FOR.

Revision 2379 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 23 23:11:03 2004 UTC (8 years, 11 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 23605 byte(s)
Diff to previous 2374
improved error handling, made SQL statements more robust.

Revision 2374 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 23 19:20:20 2004 UTC (8 years, 11 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 23325 byte(s)
Diff to previous 2360
made SQL statements more robust (fixes #577), improved error handling.

Revision 2360 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 22 16:59:53 2004 UTC (8 years, 11 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 22752 byte(s)
Diff to previous 2276
a comment

Revision 2276 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 8 01:10:27 2004 UTC (8 years, 11 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 22706 byte(s)
Diff to previous 2255
added check for well-formed course IDs. closes bug #504.

Revision 2255 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 5 19:20:13 2004 UTC (8 years, 11 months ago) by gage
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 22452 byte(s)
Diff to previous 2188
If there is an error, other than "course exists" then the directory tree
is cleared.  This corrects a behavior in which the creation of the new
course would fail half way through, but the directory tree would remain
-- this made it appear as if the course existed.

-- This fix is still somewhat fragile.

Revision 2188 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 23 23:40:24 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 22255 byte(s)
Diff to previous 2148
copy symlinks in templates directory

Revision 2148 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 22 01:08:09 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 22250 byte(s)
Diff to previous 2124
added ability to import the contents of another course's templates
directory when creating a new course. this is supported in bin/addcourse
with the --templates-from=COURSEID switch and in the web interface with
an additional form field.

Revision 2124 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 17 16:41:07 2004 UTC (9 years ago) by jj
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 21296 byte(s)
Diff to previous 2106
Improved psvn kludge by using the full mysql statement from mksqldb.  Fixes
the original version of bug 495.

Revision 2106 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 13 21:14:56 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 21275 byte(s)
Diff to previous 2102
removed sql exec warnings

Revision 2102 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 13 20:39:19 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 21272 byte(s)
Diff to previous 2101
create "psvn" field as "INT AUTO_INCREMENT"

Revision 2101 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 13 20:12:11 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 21033 byte(s)
Diff to previous 2059
add global user record to new courses

Revision 2059 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 9 14:52:21 2004 UTC (9 years ago) by jj
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 20607 byte(s)
Diff to previous 2041
Fix bug: use of an undefined value.

Revision 2041 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 7 21:49:48 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 20584 byte(s)
Diff to previous 2005
fixed bug #472

Revision 2005 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 5 22:02:30 2004 UTC (9 years ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 20351 byte(s)
Diff to previous 1959
documentation fix

Revision 1959 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 9 20:18:51 2004 UTC (9 years, 1 month ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 20348 byte(s)
Diff to previous 1945
finished, deleteCourse, added listCourses.

Revision 1945 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Apr 5 03:58:30 2004 UTC (9 years, 1 month ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
File length: 17324 byte(s)
preliminary web-based course creation support

try it -- create a course called "admin" the usual way and then visit it
in your browser.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9