Written by Julie Zelenski
When finished with an assignment, you submit it for grading. It's important to recognize the difference between commit and submit. You use hg commit to record a snapshot in your revision history. You will make many commits during development, but these commits are stored only in the history of your local repo. When finished, you must explicitly submit; this final act copies your work to your class repo (the one that lives in /afs/ir/class/cs107) so that it is available to the staff to be graded.
myth machine.cd command to change into the directory containing the project files you wish to submit.hg diff should be empty.Issue the command
/afs/ir/class/cs107/tools/submit
The submission process first verifies that the project can be submitted. The project must have no uncommitted changes and must compile successfully. The hard deadline cannot have passed. It will offer you the option to run sanity check to verify your output conformance (responding 'no' will skip this verification altogether). If any part of verification fails, it will reject the project and you must fix the issues and try submit again.
Submission deadlines are tightly enforced. Cutting it too close can make your submission late if you land on the wrong side of the deadline. Computers can sense fear and that's just when you are going to hit a snag or network bottleneck... submit early to give yourself a safety cushion and avoid the last-minute stress!
Submit asks if you want to verify sanity check before submitting. If you respond yes and the project doesn't pass, the submit is canceled. To submit a project doesn't pass sanity check, respond no so that sanity check verification won't hold up your submission.
This is not a necessary step, but if helps you sleep easier, you can review the contents of your submission in your class repo. Your class repo lives in /afs/ir/class/cs107/repos/assignN/$USER. (N is a placeholder, replace with the assignment number in question). You can cd into this directory but you won't be able to directly read the files or view the contents via ls. Instead, use Mercurial commands to review the repo contents. Here are two ways to double-check your class repo:
cd /afs/ir/class/cs107/repos/assignN/$USER and do an hg log. The most recent revision (the "tip") is the one we will grade. Verify that the log listing shows the correct revision as the tip. Use the command hg manifest -r tip to list all files being tracked in the tip revision and ensure all the files you intended to be there for grading are listed.hg clone /afs/ir/class/cs107/repos/assignN/$USER mysubmission to create a mysubmission directory that contains the tip revision. If you're satisfied that everything you want us to see is there, then you're done. If not, use the clone to to figure out what's not right (forgot to hg add a file? didn't commit your most recent change?), fix it, and make another submission.