MCPcopy
hub / github.com/go-git/go-git / parseRef

Method parseRef

internal/revision/parser.go:566–598  ·  view source on GitHub ↗

parseRef extract reference name

()

Source from the content-addressed store, hash-verified

564
565// parseRef extract reference name
566func (p *Parser) parseRef() (Revisioner, error) {
567 var tok, prevTok token
568 var lit, buf string
569 var endOfRef bool
570 var err error
571
572 for {
573 tok, lit, err = p.scan()
574
575 if err != nil {
576 return nil, err
577 }
578
579 switch tok {
580 case eof, at, colon, tilde, caret:
581 endOfRef = true
582 }
583
584 err := p.checkRefFormat(tok, lit, prevTok, buf, endOfRef)
585
586 if err != nil {
587 return "", err
588 }
589
590 if endOfRef {
591 p.unscan()
592 return Ref(buf), nil
593 }
594
595 buf += lit
596 prevTok = tok
597 }
598}
599
600// checkRefFormat ensure reference name follow rules defined here :
601// https://git-scm.com/docs/git-check-ref-format

Callers 3

ParseMethod · 0.95

Calls 4

scanMethod · 0.95
checkRefFormatMethod · 0.95
unscanMethod · 0.95
RefTypeAlias · 0.85

Tested by 2