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

Method checkoutChangeRegularFile

worktree.go:596–627  ·  view source on GitHub ↗
(name string,
	a merkletrie.Action,
	t *object.Tree,
	e *object.TreeEntry,
	idx *indexBuilder,
)

Source from the content-addressed store, hash-verified

594}
595
596func (w *Worktree) checkoutChangeRegularFile(name string,
597 a merkletrie.Action,
598 t *object.Tree,
599 e *object.TreeEntry,
600 idx *indexBuilder,
601) error {
602 switch a {
603 case merkletrie.Modify:
604 idx.Remove(name)
605
606 // to apply perm changes the file is deleted, billy doesn't implement
607 // chmod
608 if err := w.Filesystem.Remove(name); err != nil {
609 return err
610 }
611
612 fallthrough
613 case merkletrie.Insert:
614 f, err := t.File(name)
615 if err != nil {
616 return err
617 }
618
619 if err := w.checkoutFile(f); err != nil {
620 return err
621 }
622
623 return w.addIndexFromFile(name, e.Hash, f.Mode, idx)
624 }
625
626 return nil
627}
628
629func (w *Worktree) checkoutFile(f *object.File) (err error) {
630 mode, err := f.Mode.ToOSFileMode()

Callers 1

checkoutChangeMethod · 0.95

Calls 4

checkoutFileMethod · 0.95
addIndexFromFileMethod · 0.95
RemoveMethod · 0.45
FileMethod · 0.45

Tested by

no test coverage detected