Instead of sending all files to graders after an update, detect which files have changed and only send those.
Requires:
Asking the grader what version(s) of the course it has to make sure git manager comparing the files against the same version.
Support for querying the course version(s) and only uploading the changed files on the MOOC-grader
The change detection can be easily done using rsync, as it can be made to output a list of changed files. However, there is a problem order of operations problem: we do not want to move the files to store before we know that the graders will accept the config but we need to rsync before sending the configs to see which files have changed. We could rsync beforehand anyway and just delete the stored version (and copy the published version back as a base for rsync later) if a grader doesn't approve it. Rsync probably also has a dryrun option but this could be pretty slow. Another option is to send configs to the grader first, then rsync and then send any additional changed files but this would complicate the process quite a bit.
Instead of sending all files to graders after an update, detect which files have changed and only send those.
Requires:
The change detection can be easily done using rsync, as it can be made to output a list of changed files. However, there is a problem order of operations problem: we do not want to move the files to store before we know that the graders will accept the config but we need to rsync before sending the configs to see which files have changed. We could rsync beforehand anyway and just delete the stored version (and copy the published version back as a base for rsync later) if a grader doesn't approve it. Rsync probably also has a dryrun option but this could be pretty slow. Another option is to send configs to the grader first, then rsync and then send any additional changed files but this would complicate the process quite a bit.