protected function rsyncTemplate() {
    $source = $this->getConfigValue('blt.root') . '/template';
    $destination = $this->getConfigValue('repo.root');
    // There is no native rsync on Windows.
    // The most used one on Windows is https://itefix.net/cwrsync,
    // which runs with cygwin, so doesn't cope with regular Windows paths.
    if (DIRECTORY_SEPARATOR === '\\') {
      $source = $this->convertWindowsPathToCygwinPath($source);
      $destination = $this->convertWindowsPathToCygwinPath($destination);
    }
    $exclude_from = $this->getConfigValue('blt.update.ignore-existing-file');
    $this->say("Copying files from BLT's template into your project...");
    $result = $this->taskExecStack()
      ->exec("rsync -a --no-g '$source/' '$destination/' --exclude-from='$exclude_from'")
      ->exec("rsync -a --no-g '$source/' '$destination/' --include-from='$exclude_from' --ignore-existing")
      ->setVerbosityThreshold(VerbosityThresholdInterface::VERBOSITY_VERBOSE)
      ->run();

    if (!$result->wasSuccessful()) {
      throw new BltException("Could not rsync files from BLT into your repository.");
    }
  }