(name string, a merkletrie.Action, t *object.Tree, e *object.TreeEntry, idx *indexBuilder, )
| 594 | } |
| 595 | |
| 596 | func (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 | |
| 629 | func (w *Worktree) checkoutFile(f *object.File) (err error) { |
| 630 | mode, err := f.Mode.ToOSFileMode() |
no test coverage detected