MCPcopy Create free account
hub / github.com/alibaba/open-code-review / commitParents

Method commitParents

internal/diff/git.go:509–519  ·  view source on GitHub ↗

commitParents returns the parent commit SHAs of ref: zero for a root commit, one for an ordinary commit, and 2+ for a merge. It uses `rev-list --parents -n 1`, whose single line is " …" — the leading commit token is dropped, the rest are the parents. `rev-list` (unlike `re

(ctx context.Context, ref string)

Source from the content-addressed store, hash-verified

507// looks like an option. An error yields nil so the caller treats it as "no
508// unique base".
509func (p *Provider) commitParents(ctx context.Context, ref string) []string {
510 out, err := p.runGit(ctx, "rev-list", "--parents", "-n", "1", "--end-of-options", ref)
511 if err != nil {
512 return nil
513 }
514 fields := strings.Fields(firstLine(out))
515 if len(fields) <= 1 {
516 return nil // root commit (only the commit itself, no parents) or empty
517 }
518 return fields[1:]
519}
520
521// firstLine returns the first non-empty trimmed line of git output, so a stray
522// trailing newline or an unexpected second line never pollutes a resolved SHA.

Callers 1

ResolveInputMethod · 0.95

Calls 2

runGitMethod · 0.95
firstLineFunction · 0.85

Tested by

no test coverage detected