Asst: Version Control
This assignment will let you show off your expertise with version control
while setting up an assignment/lab for future students.
Put together a lab/assignment to give other students experience in
working with a version control system. The challenge is to provide
a consistent experience for all students that covers the essential
elements of version control without requiring elaborate scheduled
interactions among students or between the student and instructor.
In other words, we want to present the illusion of working in
collaboration with others, without the uncertainty that true
collaboration would entail.
Your assignment will consist of
- A simple project (perhaps the Java spreadsheet). You may elect to
do this as a starting repository or as an uncontrolled project that
students must bring into version control.
-
A series of scripts step1, step2, etc., that
control setup, data collection (for grading), and, above all,
simulate the collaborative efforts of another person.
-
A README.txt file for the instructor explaining the steps involved.
You may choose what version control system you wish to work with and
your scripts may be in any reasonable language (sh, bash, Perl, Python, ...).
For example, your assignment might work something like this:
- Run step1. (This creates a unique repository for that student, pre-loaded with the Java spreadsheet project.)
- Check out a copy of the project from the repository at [wherever you stored that student's repository].
- Compile the project and verify that it passes all unit tests.
- Run step2. (This checks out a copy of the project in a separate location, makes certain changes to the files designed to have at least one conflict with the changes coming up in the next step, checks in those changes, and deletes the new copy of the project.)
- Change the project by doing ... [specific instructions, e.g., rename the foo() function in class Bar to foobar(), updating all calls made to foo() so that the project still compiles.].
- Check in your changes, resolving any6 conflicts according to the guidelines [...]
- Run step3. (This checks out a copy of the current
revision, then verifies thatthe changes were checked in and
conflicts resolved appropriately. Alternatively, you might provide
a script to the instructor to do such checks at grading time.)
You might continue from there to try out branching, or ... ?
Package your assignment into a file versionControl.zip and submit
using the button below.