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

Method commitParents

internal/diff/git.go:535–545  ·  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

533// looks like an option. An error yields nil so the caller treats it as "no
534// unique base".
535func (p *Provider) commitParents(ctx context.Context, ref string) []string {
536 out, err := p.runGit(ctx, "rev-list", "--parents", "-n", "1", "--end-of-options", ref)
537 if err != nil {
538 return nil
539 }
540 fields := strings.Fields(firstLine(out))
541 if len(fields) <= 1 {
542 return nil // root commit (only the commit itself, no parents) or empty
543 }
544 return fields[1:]
545}
546
547// firstLine returns the first non-empty trimmed line of git output, so a stray
548// 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