| 119 | } |
| 120 | |
| 121 | func preloadStatus(w *Worktree) (Status, error) { |
| 122 | idx, err := w.r.Storer.Index() |
| 123 | if err != nil { |
| 124 | return nil, err |
| 125 | } |
| 126 | |
| 127 | idxRoot := mindex.NewRootNode(idx) |
| 128 | nodes := []noder.Noder{idxRoot} |
| 129 | |
| 130 | status := make(Status) |
| 131 | for len(nodes) > 0 { |
| 132 | var node noder.Noder |
| 133 | node, nodes = nodes[0], nodes[1:] |
| 134 | if node.IsDir() { |
| 135 | children, err := node.Children() |
| 136 | if err != nil { |
| 137 | return nil, err |
| 138 | } |
| 139 | nodes = append(nodes, children...) |
| 140 | continue |
| 141 | } |
| 142 | fs := status.File(node.Name()) |
| 143 | fs.Worktree = Unmodified |
| 144 | fs.Staging = Unmodified |
| 145 | } |
| 146 | |
| 147 | return status, nil |
| 148 | } |