apluslms / gitmanager

Git manager service for A+. Separated from the MOOC-Grader.
0 stars 6 forks source link

Only send changed files to graders #33

Open lainets opened 1 year ago

lainets commented 1 year ago

Instead of sending all files to graders after an update, detect which files have changed and only send those.

Requires:

  1. Asking the grader what version(s) of the course it has to make sure git manager comparing the files against the same version.
  2. 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.