code: func (from *Tree) PatchContext(ctx context.Context, to *Tree) (*Patch, error) {
  	changes, err := DiffTreeContext(ctx, from, to)
  	if err != nil {
  		return nil, err
  	}
  
  	return changes.PatchContext(ctx)
  }
docs: // Patch returns a slice of Patch objects with all the changes between trees
  // in chunks. This representation can be used to create several diff outputs.
  // If context expires, an error will be returned
  // Provided context must be non-nil