code: def follow(*args):
      
      parser = argparse.ArgumentParser(prog="%s %s" % (__package__, follow.__name__), description=follow.__doc__)
      parser.add_argument('FILENAME', help="files to follow", nargs="+")
      args = parser.parse_args(args)
  
      config = FragmentsConfig()
      for s, filename in _iterate_over_files(args.FILENAME, config, statuses='?'):
          fullpath = os.path.realpath(filename)
          if fullpath.startswith(config.root):
              key = os.path.relpath(fullpath, config.root)
              if key in config['files']:
                  yield "'%s' is already being followed" % os.path.relpath(filename)
                  continue
              if os.access(fullpath, os.W_OK|os.R_OK):
                  file_sha = _file_key(key)
                  config['files'][key] = file_sha
                  yield "'%s' is now being followed (SHA-256: '%s')" % (os.path.relpath(filename), file_sha)
              else:
                  yield "Could not access '%s' to follow it" % os.path.relpath(filename)
          else:
              yield "Could not follow '%s'; it is outside the repository" % os.path.relpath(filename)
      config.dump()
docs: Start following changes to one or more FILENAME(s).