docs: def safe_cd(path):
      """
      Changes to a directory, yields, and changes back.
      Additionally any error will also change the directory back.
  
      Usage:
      >>> with safe_cd('some/repo'):
      ...     call('git status')
      """
      starting_directory = os.getcwd()
      try:
          os.chdir(path)
          yield
      finally:
          os.chdir(starting_directory)