docs: def save_results(vcs, signature, result_path, patterns):
      """Save results matching `patterns` at `result_path`.
  
      Args:
          vcs (easyci.vcs.base.Vcs) - the VCS object for the actual project
                                      (not the disposable copy)
          signature (str) - the project state signature
          result_path (str) - the path containing the result, usually
                              a disposable copy of the project
          patterns (str) - `rsync`-compatible patterns matching test results
                           to save.
      """
      results_directory = _get_results_directory(vcs, signature)
      if not os.path.exists(results_directory):
          os.makedirs(results_directory)
      with open(os.path.join(results_directory, 'patterns'), 'w') as f:
          f.write('\n'.join(patterns))
      if not os.path.exists(os.path.join(results_directory, 'results')):
          os.mkdir(os.path.join(results_directory, 'results'))
      includes = ['--include={}'.format(x)
                  for x in patterns]
      cmd = ['rsync', '-r'] + includes + ['--exclude=*',
                                          os.path.join(result_path, ''),
                                          os.path.join(results_directory, 'results', '')]
      subprocess.check_call(cmd)