code: func create(ctx context.Context, client *containerd.Client, i containerd.Image, id string, previous string) (*revision, error) {
  	diffIDs, err := i.RootFS(ctx)
  	if err != nil {
  		return nil, err
  	}
  	var (
  		parent = identity.ChainID(diffIDs).String()
  		r      = newRevision(id)
  	)
  	labels := map[string]string{
  		gcRoot:     r.Timestamp.Format(time.RFC3339),
  		imageLabel: i.Name(),
  	}
  	if previous != "" {
  		labels[previousRevision] = previous
  	}
  	mounts, err := client.SnapshotService(containerd.DefaultSnapshotter).Prepare(ctx, r.Key, parent, snapshots.WithLabels(labels))
  	if err != nil {
  		return nil, err
  	}
  	r.mounts = mounts
  	return r, nil
  }
docs: // nolint: interfacer