A code autograder for student homework submissions
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
763 B

  1. require 'open3'
  2. module KGrader::Backend
  3. class SVN
  4. def initialize(filesystem, course, config)
  5. @fs = filesystem
  6. @course = course
  7. @config = config
  8. end
  9. def revision(repo)
  10. # TODO
  11. -1
  12. end
  13. def clone(repo, semester, assignment, student)
  14. url = get_url semester, assignment, student
  15. run 'checkout', '--ignore-externals', url, repo
  16. end
  17. def update(repo)
  18. run 'update', '--ignore-externals', '--accept', 'tf', repo
  19. end
  20. private
  21. def run(*cmd)
  22. Open3.capture2e('svn', *cmd)
  23. end
  24. def get_url(semester, assignment, student)
  25. @config['url'] % {
  26. :semester => semester,
  27. :assignment => assignment,
  28. :student => student
  29. }
  30. end
  31. end
  32. end