diff options
| -rw-r--r-- | network/protocol/v0v1/server/advertise.go | 4 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/advertise_test.go | 2 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/receivepack/parse_test.go | 8 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/receivepack/report_status_test.go | 4 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/receivepack/session.go | 2 | ||||
| -rw-r--r-- | network/receivepack/hooks/reject_force_push.go | 3 | ||||
| -rw-r--r-- | network/receivepack/int_test.go | 28 | ||||
| -rw-r--r-- | network/receivepack/service/apply.go | 5 | ||||
| -rw-r--r-- | network/receivepack/service/command.go | 2 | ||||
| -rw-r--r-- | network/receivepack/service/service_test.go | 8 | ||||
| -rw-r--r-- | object/id/algorithm_zero.go (renamed from object/id/objectid_zero.go) | 4 |
11 files changed, 33 insertions, 37 deletions
diff --git a/network/protocol/v0v1/server/advertise.go b/network/protocol/v0v1/server/advertise.go index 30468d1c..8ec7dfd9 100644 --- a/network/protocol/v0v1/server/advertise.go +++ b/network/protocol/v0v1/server/advertise.go @@ -3,8 +3,6 @@ package server import ( "fmt" "strings" - - objectid "codeberg.org/lindenii/furgit/object/id" ) // AdvertiseRefs writes one server ref advertisement. @@ -20,7 +18,7 @@ func (session *Session) AdvertiseRefs(ad Advertisement, capabilityTokens []strin refs := sortAdvertisedRefs(ad.Refs) if len(refs) == 0 { - line := fmt.Sprintf("%s capabilities^{}\x00%s\n", objectid.Zero(session.opts.Algorithm), capList) + line := fmt.Sprintf("%s capabilities^{}\x00%s\n", session.opts.Algorithm.Zero(), capList) err := session.enc.WriteData([]byte(line)) if err != nil { diff --git a/network/protocol/v0v1/server/advertise_test.go b/network/protocol/v0v1/server/advertise_test.go index 3aac7056..3ad7a725 100644 --- a/network/protocol/v0v1/server/advertise_test.go +++ b/network/protocol/v0v1/server/advertise_test.go @@ -93,7 +93,7 @@ func TestAdvertiseRefsWritesNoRefsCapabilitiesLine(t *testing.T) { got := out.String() - want := objectid.Zero(algo).String() + " capabilities^{}\x00report-status object-format=" + algo.String() + "\n" + want := algo.Zero().String() + " capabilities^{}\x00report-status object-format=" + algo.String() + "\n" if !strings.Contains(got, want) { t.Fatalf("unexpected no-refs advertisement %q", got) } diff --git a/network/protocol/v0v1/server/receivepack/parse_test.go b/network/protocol/v0v1/server/receivepack/parse_test.go index 3a891d3e..d54d8f8d 100644 --- a/network/protocol/v0v1/server/receivepack/parse_test.go +++ b/network/protocol/v0v1/server/receivepack/parse_test.go @@ -19,7 +19,7 @@ func TestReadRequestParsesCommandsAndPushOptions(t *testing.T) { testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { t.Parallel() - oldZero := objectid.Zero(algo).String() + oldZero := algo.Zero().String() oneID := mustHexID(t, algo, "1") var wire bufferWriteFlusher @@ -105,7 +105,7 @@ func TestReadRequestDeleteOnlyDoesNotExpectPack(t *testing.T) { enc := pktline.NewEncoder(&wire) err := enc.WriteData([]byte( - oneID.String() + " " + objectid.Zero(algo).String() + " refs/heads/old\x00delete-refs object-format=" + algo.String() + "\n", + oneID.String() + " " + algo.Zero().String() + " refs/heads/old\x00delete-refs object-format=" + algo.String() + "\n", )) if err != nil { t.Fatalf("WriteData: %v", err) @@ -153,7 +153,7 @@ func TestReadRequestRejectsUnsupportedCapability(t *testing.T) { enc := pktline.NewEncoder(&wire) err := enc.WriteData([]byte( - objectid.Zero(algo).String() + " " + oneID.String() + " refs/heads/main\x00atomic object-format=" + algo.String() + "\n", + algo.Zero().String() + " " + oneID.String() + " refs/heads/main\x00atomic object-format=" + algo.String() + "\n", )) if err != nil { t.Fatalf("WriteData: %v", err) @@ -209,7 +209,7 @@ func TestReadRequestParsesPushCertificate(t *testing.T) { "nonce nonce\n", "push-option ci.skip\n", "\n", - objectid.Zero(algo).String() + " " + oneID.String() + " refs/heads/main\n", + algo.Zero().String() + " " + oneID.String() + " refs/heads/main\n", "-----BEGIN PGP SIGNATURE-----\n", "abcdef\n", "push-cert-end\n", diff --git a/network/protocol/v0v1/server/receivepack/report_status_test.go b/network/protocol/v0v1/server/receivepack/report_status_test.go index 697311de..3cde5103 100644 --- a/network/protocol/v0v1/server/receivepack/report_status_test.go +++ b/network/protocol/v0v1/server/receivepack/report_status_test.go @@ -59,7 +59,7 @@ func TestWriteReportStatusUsesSideBand64KWhenNegotiated(t *testing.T) { requestEnc := pktline.NewEncoder(&requestWire) err := requestEnc.WriteData([]byte( - objectid.Zero(algo).String() + " " + mustHexID(t, algo, "1").String() + " refs/heads/main\x00report-status side-band-64k object-format=" + algo.String() + "\n", + algo.Zero().String() + " " + mustHexID(t, algo, "1").String() + " refs/heads/main\x00report-status side-band-64k object-format=" + algo.String() + "\n", )) if err != nil { t.Fatalf("WriteData(request): %v", err) @@ -243,7 +243,7 @@ func TestProgressWriterUsesSideBand64KWhenNegotiated(t *testing.T) { requestEnc := pktline.NewEncoder(&requestWire) err := requestEnc.WriteData([]byte( - objectid.Zero(algo).String() + " " + mustHexID(t, algo, "1").String() + " refs/heads/main\x00report-status side-band-64k object-format=" + algo.String() + "\n", + algo.Zero().String() + " " + mustHexID(t, algo, "1").String() + " refs/heads/main\x00report-status side-band-64k object-format=" + algo.String() + "\n", )) if err != nil { t.Fatalf("WriteData(request): %v", err) diff --git a/network/protocol/v0v1/server/receivepack/session.go b/network/protocol/v0v1/server/receivepack/session.go index 65fa6b36..5299b42d 100644 --- a/network/protocol/v0v1/server/receivepack/session.go +++ b/network/protocol/v0v1/server/receivepack/session.go @@ -208,7 +208,7 @@ func parseObjectID(algo objectid.Algorithm, s string) (objectid.ObjectID, error) } func commandIsDelete(cmd Command) bool { - return cmd.NewID == objectid.Zero(cmd.NewID.Algorithm()) + return cmd.NewID == cmd.NewID.Algorithm().Zero() } func deleteOnly(commands []Command) bool { diff --git a/network/receivepack/hooks/reject_force_push.go b/network/receivepack/hooks/reject_force_push.go index 41153841..5902ef73 100644 --- a/network/receivepack/hooks/reject_force_push.go +++ b/network/receivepack/hooks/reject_force_push.go @@ -7,7 +7,6 @@ import ( "codeberg.org/lindenii/furgit/commitquery" receivepack "codeberg.org/lindenii/furgit/network/receivepack" - objectid "codeberg.org/lindenii/furgit/object/id" objectmix "codeberg.org/lindenii/furgit/object/store/mix" refstore "codeberg.org/lindenii/furgit/ref/store" ) @@ -33,7 +32,7 @@ func RejectForcePush() receivepack.Hook { } for i, update := range req.Updates { - if update.OldID == objectid.Zero(update.OldID.Algorithm()) || update.NewID == objectid.Zero(update.NewID.Algorithm()) { + if update.OldID == update.OldID.Algorithm().Zero() || update.NewID == update.NewID.Algorithm().Zero() { continue } diff --git a/network/receivepack/int_test.go b/network/receivepack/int_test.go index 360d66a9..79662bc1 100644 --- a/network/receivepack/int_test.go +++ b/network/receivepack/int_test.go @@ -36,7 +36,7 @@ func TestReceivePackDeleteOnlyAtomicDeleteSucceeds(t *testing.T) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -83,10 +83,10 @@ func TestReceivePackDeleteOnlyNonAtomicAppliesIndependentDeletes(t *testing.T) { ) input.WriteString(pktlineData( - staleID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status delete-refs object-format=" + algo.String() + "\n", + staleID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status delete-refs object-format=" + algo.String() + "\n", )) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/topic\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/topic\n", )) input.WriteString("0000") @@ -138,10 +138,10 @@ func TestReceivePackDeleteOnlyAtomicFailureLeavesAllRefsUntouched(t *testing.T) ) input.WriteString(pktlineData( - staleID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", + staleID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", )) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/topic\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/topic\n", )) input.WriteString("0000") @@ -242,7 +242,7 @@ func TestReceivePackWithoutReportStatusWritesNoStatusPayload(t *testing.T) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00delete-refs atomic object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00delete-refs atomic object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -281,7 +281,7 @@ func testReceivePackProtocolFallback(t *testing.T, gitProtocol string) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status atomic delete-refs object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -365,7 +365,7 @@ func TestReceivePackPackCreatePromotesObjectsAndUpdatesRef(t *testing.T) { ) input.WriteString(pktlineData( - objectid.Zero(algo).String() + " " + commitID.String() + " refs/heads/main\x00report-status-v2 atomic object-format=" + algo.String() + "\n", + algo.Zero().String() + " " + commitID.String() + " refs/heads/main\x00report-status-v2 atomic object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -437,7 +437,7 @@ func TestReceivePackHookSeesQuarantinedObjectsAndCanRejectBeforePromotion(t *tes ) input.WriteString(pktlineData( - objectid.Zero(algo).String() + " " + commitID.String() + " refs/heads/main\x00report-status-v2 atomic object-format=" + algo.String() + "\n", + algo.Zero().String() + " " + commitID.String() + " refs/heads/main\x00report-status-v2 atomic object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -519,10 +519,10 @@ func TestReceivePackHookCanRejectSubsetOfNonAtomicDeleteOnlyPush(t *testing.T) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status delete-refs object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status delete-refs object-format=" + algo.String() + "\n", )) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/topic\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/topic\n", )) input.WriteString("0000") @@ -577,7 +577,7 @@ func TestReceivePackHookProgressUsesSideBand64K(t *testing.T) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status side-band-64k atomic delete-refs object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status side-band-64k atomic delete-refs object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -725,7 +725,7 @@ func TestReceivePackReportStatusV2IncludesRefDetails(t *testing.T) { ) input.WriteString(pktlineData( - commitID.String() + " " + objectid.Zero(algo).String() + " refs/heads/main\x00report-status-v2 atomic delete-refs object-format=" + algo.String() + "\n", + commitID.String() + " " + algo.Zero().String() + " refs/heads/main\x00report-status-v2 atomic delete-refs object-format=" + algo.String() + "\n", )) input.WriteString("0000") @@ -747,7 +747,7 @@ func TestReceivePackReportStatusV2IncludesRefDetails(t *testing.T) { t.Fatalf("missing option old-oid in %q", got) } - if !strings.Contains(got, "option new-oid "+objectid.Zero(algo).String()+"\n") { + if !strings.Contains(got, "option new-oid "+algo.Zero().String()+"\n") { t.Fatalf("missing option new-oid in %q", got) } }) diff --git a/network/receivepack/service/apply.go b/network/receivepack/service/apply.go index 8fa500ca..aae61340 100644 --- a/network/receivepack/service/apply.go +++ b/network/receivepack/service/apply.go @@ -2,7 +2,6 @@ package service import ( "codeberg.org/lindenii/furgit/internal/utils" - objectid "codeberg.org/lindenii/furgit/object/id" refstore "codeberg.org/lindenii/furgit/ref/store" ) @@ -101,7 +100,7 @@ func queueWriteTransaction(tx refstore.Transaction, command Command) error { return tx.Delete(command.Name, command.OldID) } - if command.OldID == objectid.Zero(command.OldID.Algorithm()) { + if command.OldID == command.OldID.Algorithm().Zero() { return tx.Create(command.Name, command.NewID) } @@ -115,7 +114,7 @@ func queueWriteBatch(batch refstore.Batch, command Command) { return } - if command.OldID == objectid.Zero(command.OldID.Algorithm()) { + if command.OldID == command.OldID.Algorithm().Zero() { batch.Create(command.Name, command.NewID) return diff --git a/network/receivepack/service/command.go b/network/receivepack/service/command.go index 0fd8961e..4d234214 100644 --- a/network/receivepack/service/command.go +++ b/network/receivepack/service/command.go @@ -22,7 +22,7 @@ func fillCommandErrors(result *Result, commands []Command, errText string) { } func isDelete(command Command) bool { - return command.NewID == objectid.Zero(command.NewID.Algorithm()) + return command.NewID == command.NewID.Algorithm().Zero() } func objectIDPointer(id objectid.ObjectID) *objectid.ObjectID { diff --git a/network/receivepack/service/service_test.go b/network/receivepack/service/service_test.go index fcbc355a..ffb08ea4 100644 --- a/network/receivepack/service/service_test.go +++ b/network/receivepack/service/service_test.go @@ -29,8 +29,8 @@ func TestExecutePackExpectedWithoutObjectsRoot(t *testing.T) { result, err := svc.Execute(context.Background(), &service.Request{ Commands: []service.Command{{ Name: "refs/heads/main", - OldID: objectid.Zero(algo), - NewID: objectid.Zero(algo), + OldID: algo.Zero(), + NewID: algo.Zero(), }}, PackExpected: true, Pack: strings.NewReader("not a pack"), @@ -73,8 +73,8 @@ func TestExecuteRemovesDerivedQuarantineAfterIngestFailure(t *testing.T) { result, err := svc.Execute(context.Background(), &service.Request{ Commands: []service.Command{{ Name: "refs/heads/main", - OldID: objectid.Zero(algo), - NewID: objectid.Zero(algo), + OldID: algo.Zero(), + NewID: algo.Zero(), }}, PackExpected: true, Pack: strings.NewReader("not a pack"), diff --git a/object/id/objectid_zero.go b/object/id/algorithm_zero.go index 9cc3d205..e8c0abf2 100644 --- a/object/id/objectid_zero.go +++ b/object/id/algorithm_zero.go @@ -1,7 +1,7 @@ package objectid -// Zero returns the all-zero object ID for the specified algorithm. -func Zero(algo Algorithm) ObjectID { +// Zero returns the all-zero object ID for this algorithm. +func (algo Algorithm) Zero() ObjectID { id, err := FromBytes(algo, make([]byte, algo.Size())) if err != nil { panic(err) |
