code: func (c *Commit) StatsContext(ctx context.Context) (FileStats, error) {
  	fromTree, err := c.Tree()
  	if err != nil {
  		return nil, err
  	}
  
  	toTree := &Tree{}
  	if c.NumParents() != 0 {
  		firstParent, err := c.Parents().Next()
  		if err != nil {
  			return nil, err
  		}
  
  		toTree, err = firstParent.Tree()
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	patch, err := toTree.PatchContext(ctx, fromTree)
  	if err != nil {
  		return nil, err
  	}
  
  	return getFileStatsFromFilePatches(patch.FilePatches()), nil
  }
docs: // StatsContext returns the stats of a commit. Error will be return if context
  // expires. Provided context must be non-nil.