docs: def log(self, branch, remote):
          """ Call a log-command, if set by git-up.fetch.all. """
          log_hook = self.settings['rebase.log-hook']
  
          if log_hook:
              if ON_WINDOWS:  # pragma: no cover
                  # Running a string in CMD from Python is not that easy on
                  # Windows. Running 'cmd /C log_hook' produces problems when
                  # using multiple statements or things like 'echo'. Therefore,
                  # we write the string to a bat file and execute it.
  
                  # In addition, we replace occurences of $1 with %1 and so forth
                  # in case the user is used to Bash or sh.
                  # If there are occurences of %something, we'll replace it with
                  # %%something. This is the case when running something like
                  # 'git log --pretty=format:"%Cred%h..."'.
                  # Also, we replace a semicolon with a newline, because if you
                  # start with 'echo' on Windows, it will simply echo the
                  # semicolon and the commands behind instead of echoing and then
                  # running other commands
  
                  # Prepare log_hook
                  log_hook = re.sub(r'\$(\d+)', r'%\1', log_hook)
                  log_hook = re.sub(r'%(?!\d)', '%%', log_hook)
                  log_hook = re.sub(r'; ?', r'\n', log_hook)
  
                  # Write log_hook to an temporary file and get it's path
                  with NamedTemporaryFile(
                          prefix='PyGitUp.', suffix='.bat', delete=False
                  ) as bat_file:
                      # Don't echo all commands
                      bat_file.file.write(b'@echo off\n')
                      # Run log_hook
                      bat_file.file.write(log_hook.encode('utf-8'))
  
                  # Run bat_file
                  state = subprocess.call(
                      [bat_file.name, branch.name, remote.name]
                  )
  
                  # Clean up file
                  os.remove(bat_file.name)
              else:  # pragma: no cover
                  # Run log_hook via 'shell -c'
                  state = subprocess.call(
                      [log_hook, 'git-up', branch.name, remote.name],
                      shell=True
                  )
  
              if self.testing:
                  assert state == 0, 'log_hook returned != 0'