aboutsummaryrefslogtreecommitdiff
path: root/refstore/files/update_commit_delete.go
blob: 47a600fbb2e3246381e51536df1a7ee52138ce6e (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
package files

import (
	"errors"
	"os"
)

func (executor *refUpdateExecutor) removeDeletedLooseRefs(prepared []preparedUpdate) error {
	for _, item := range prepared {
		switch item.op.kind {
		case updateDelete, updateDeleteSymbolic:
			if item.target.ref.isLoose {
				err := executor.store.rootFor(item.target.loc.root).Remove(item.target.loc.path)
				if err != nil && !errors.Is(err, os.ErrNotExist) {
					return wrapUpdateError(item.op.name, err)
				}

				executor.tryRemoveEmptyParents(item.target.name)
			}
		case updateCreate, updateReplace, updateVerify, updateCreateSymbolic, updateReplaceSymbolic, updateVerifySymbolic:
		}
	}

	return nil
}