aboutsummaryrefslogtreecommitdiff
path: root/refstore/files/transaction_visible_names.go
blob: ef5941c2ea3adb19e46814cf412dfaa751ec52b3 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package files

func (tx *Transaction) visibleNames() (map[string]struct{}, error) {
	names := make(map[string]struct{})

	looseNames, err := tx.store.collectLooseRefNames()
	if err != nil {
		return nil, err
	}

	for _, name := range looseNames {
		names[name] = struct{}{}
	}

	packed, err := tx.store.readPackedRefs()
	if err != nil {
		return nil, err
	}

	for name := range packed.byName {
		if _, exists := names[name]; exists {
			continue
		}

		names[name] = struct{}{}
	}

	return names, nil
}