diff options
Diffstat (limited to 'network/protocol/v0v1/server/helpers.go')
| -rw-r--r-- | network/protocol/v0v1/server/helpers.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/network/protocol/v0v1/server/helpers.go b/network/protocol/v0v1/server/helpers.go new file mode 100644 index 00000000..9a62f714 --- /dev/null +++ b/network/protocol/v0v1/server/helpers.go @@ -0,0 +1,29 @@ +package server + +import ( + "slices" +) + +func sortAdvertisedRefs(refs []AdvertisedRef) []AdvertisedRef { + out := append([]AdvertisedRef(nil), refs...) + slices.SortFunc(out, func(left, right AdvertisedRef) int { + if left.Name == "HEAD" && right.Name != "HEAD" { + return -1 + } + + if left.Name != "HEAD" && right.Name == "HEAD" { + return 1 + } + + switch { + case left.Name < right.Name: + return -1 + case left.Name > right.Name: + return 1 + default: + return 0 + } + }) + + return out +} |
