From 08198cfb81d1fc95d6240c872efda69206808fc2 Mon Sep 17 00:00:00 2001 From: Alexandre Dutra Date: Fri, 21 Apr 2023 15:37:24 +0200 Subject: [PATCH] Fix: source ref is not always a branch --- .../services/impl/TreeApiImpl.java | 17 ++++++++++------- .../persist/adapter/MetadataRewriteParams.java | 8 ++++---- .../nontx/NonTransactionalDatabaseAdapter.java | 4 ++-- .../persist/store/PersistVersionStore.java | 10 +++++----- .../persist/tests/AbstractEvents.java | 4 ++-- .../persist/tests/AbstractMergeTransplant.java | 18 +++++++++--------- .../persist/tx/TxDatabaseAdapter.java | 4 ++-- .../versioned/EventsVersionStore.java | 8 ++++---- .../projectnessie/versioned/MergeResult.java | 4 ++-- .../versioned/MetricsVersionStore.java | 8 ++++---- .../versioned/TracingVersionStore.java | 8 ++++---- .../projectnessie/versioned/VersionStore.java | 8 ++++---- .../versioned/TestEventsVersionStore.java | 8 ++++---- .../versioned/TestMetricsVersionStore.java | 4 ++-- .../versioned/TestTracingVersionStore.java | 4 ++-- .../versioned/storage/versionstore/Merge.java | 4 ++-- .../versionstore/MergeIndividualImpl.java | 5 +++-- .../storage/versionstore/MergeSquashImpl.java | 5 +++-- .../storage/versionstore/Transplant.java | 4 ++-- .../versionstore/TransplantIndividualImpl.java | 5 +++-- .../versionstore/TransplantSquashImpl.java | 5 +++-- .../storage/versionstore/VersionStoreImpl.java | 8 ++++---- .../versioned/tests/AbstractMerge.java | 2 +- 23 files changed, 81 insertions(+), 74 deletions(-) diff --git a/servers/services/src/main/java/org/projectnessie/services/impl/TreeApiImpl.java b/servers/services/src/main/java/org/projectnessie/services/impl/TreeApiImpl.java index b0cb558b3b7..259d6f5c4a7 100644 --- a/servers/services/src/main/java/org/projectnessie/services/impl/TreeApiImpl.java +++ b/servers/services/src/main/java/org/projectnessie/services/impl/TreeApiImpl.java @@ -568,11 +568,13 @@ public MergeResponse transplantCommitsIntoBranch( checkArgument(!hashesToTransplant.isEmpty(), "No hashes given to transplant."); BranchName targetBranch = BranchName.of(branchName); + + WithHash namedRefWithHash = + namedRefWithHashOrThrow( + fromRefName, hashesToTransplant.get(hashesToTransplant.size() - 1)); + startAccessCheck() - .canViewReference( - namedRefWithHashOrThrow( - fromRefName, hashesToTransplant.get(hashesToTransplant.size() - 1)) - .getValue()) + .canViewReference(namedRefWithHash.getValue()) .canCommitChangeAgainstReference(targetBranch) .checkAndThrow(); @@ -590,7 +592,7 @@ public MergeResponse transplantCommitsIntoBranch( MergeResult result = getStore() .transplant( - BranchName.of(fromRefName), + namedRefWithHash.getValue(), targetBranch, toHash(expectedHash, true), transplants, @@ -631,15 +633,16 @@ public MergeResponse mergeRefIntoBranch( throws NessieNotFoundException, NessieConflictException { try { BranchName targetBranch = BranchName.of(branchName); + WithHash namedRefWithHash = namedRefWithHashOrThrow(fromRefName, fromHash); startAccessCheck() - .canViewReference(namedRefWithHashOrThrow(fromRefName, fromHash).getValue()) + .canViewReference(namedRefWithHash.getValue()) .canCommitChangeAgainstReference(targetBranch) .checkAndThrow(); MergeResult result = getStore() .merge( - BranchName.of(fromRefName), + namedRefWithHash.getValue(), toHash(fromRefName, fromHash), targetBranch, toHash(expectedHash, true), diff --git a/versioned/persist/adapter/src/main/java/org/projectnessie/versioned/persist/adapter/MetadataRewriteParams.java b/versioned/persist/adapter/src/main/java/org/projectnessie/versioned/persist/adapter/MetadataRewriteParams.java index 1bb1cb0a1b2..44eb4e93a69 100644 --- a/versioned/persist/adapter/src/main/java/org/projectnessie/versioned/persist/adapter/MetadataRewriteParams.java +++ b/versioned/persist/adapter/src/main/java/org/projectnessie/versioned/persist/adapter/MetadataRewriteParams.java @@ -19,14 +19,14 @@ import org.immutables.value.Value; import org.projectnessie.model.ContentKey; import org.projectnessie.nessie.relocated.protobuf.ByteString; -import org.projectnessie.versioned.BranchName; import org.projectnessie.versioned.MergeType; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; public interface MetadataRewriteParams extends ToBranchParams { - /** Branch to merge or transplant from. */ - BranchName getFromBranch(); + /** Ref to merge or transplant from. */ + NamedRef getFromRef(); /** Whether to keep the individual commits and do not squash the commits to merge. */ @Value.Default @@ -51,7 +51,7 @@ default MergeType getDefaultMergeType() { @SuppressWarnings({"override", "UnusedReturnValue"}) interface Builder extends ToBranchParams.Builder { - B fromBranch(BranchName fromBranch); + B fromRef(NamedRef fromBranch); B keepIndividualCommits(boolean keepIndividualCommits); diff --git a/versioned/persist/nontx/src/main/java/org/projectnessie/versioned/persist/nontx/NonTransactionalDatabaseAdapter.java b/versioned/persist/nontx/src/main/java/org/projectnessie/versioned/persist/nontx/NonTransactionalDatabaseAdapter.java index c9e307e76bc..7f4ac145447 100644 --- a/versioned/persist/nontx/src/main/java/org/projectnessie/versioned/persist/nontx/NonTransactionalDatabaseAdapter.java +++ b/versioned/persist/nontx/src/main/java/org/projectnessie/versioned/persist/nontx/NonTransactionalDatabaseAdapter.java @@ -242,7 +242,7 @@ public MergeResult merge(MergeParams mergeParams) ImmutableMergeResult.Builder mergeResult = MergeResult.builder() .resultType(ResultType.MERGE) - .sourceBranch(mergeParams.getFromBranch()); + .sourceRef(mergeParams.getFromRef()); mergeResultHolder.set(mergeResult); Hash currentHead = Hash.of(refHead.getHash()); @@ -306,7 +306,7 @@ public MergeResult transplant(TransplantParams transplantParams) ImmutableMergeResult.Builder mergeResult = MergeResult.builder() .resultType(ResultType.TRANSPLANT) - .sourceBranch(transplantParams.getFromBranch()); + .sourceRef(transplantParams.getFromRef()); mergeResultHolder.set(mergeResult); Hash currentHead = Hash.of(refHead.getHash()); diff --git a/versioned/persist/store/src/main/java/org/projectnessie/versioned/persist/store/PersistVersionStore.java b/versioned/persist/store/src/main/java/org/projectnessie/versioned/persist/store/PersistVersionStore.java index 0d71ba805a6..d5778aad6e7 100644 --- a/versioned/persist/store/src/main/java/org/projectnessie/versioned/persist/store/PersistVersionStore.java +++ b/versioned/persist/store/src/main/java/org/projectnessie/versioned/persist/store/PersistVersionStore.java @@ -172,7 +172,7 @@ public CommitResult commit( @Override public MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -188,7 +188,7 @@ public MergeResult transplant( MergeResult adapterMergeResult = databaseAdapter.transplant( TransplantParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceRef) .toBranch(targetBranch) .expectedHead(referenceHash) .sequenceToTransplant(sequenceToTransplant) @@ -210,7 +210,7 @@ public MergeResult transplant( @Override public MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, @@ -226,7 +226,7 @@ public MergeResult merge( MergeResult adapterMergeResult = databaseAdapter.merge( MergeParams.builder() - .fromBranch(fromBranch) + .fromRef(fromRef) .toBranch(toBranch) .expectedHead(expectedHash) .mergeFromHash(fromHash) @@ -279,7 +279,7 @@ private MergeResult storeMergeResult( ImmutableMergeResult.Builder storeResult = ImmutableMergeResult.builder() .resultType(adapterMergeResult.getResultType()) - .sourceBranch(adapterMergeResult.getSourceBranch()) + .sourceRef(adapterMergeResult.getSourceRef()) .targetBranch(adapterMergeResult.getTargetBranch()) .effectiveTargetHash(adapterMergeResult.getEffectiveTargetHash()) .commonAncestor(adapterMergeResult.getCommonAncestor()) diff --git a/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractEvents.java b/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractEvents.java index 8ef6024ef5a..fc815a58a76 100644 --- a/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractEvents.java +++ b/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractEvents.java @@ -298,7 +298,7 @@ public void eventMerge( adapter.merge( MergeParams.builder() .mergeFromHash(committed) - .fromBranch(source) + .fromRef(source) .toBranch(main) .updateCommitMetadata(updater) .build()); @@ -375,7 +375,7 @@ public void eventTransplant( TransplantParams.builder() .addSequenceToTransplant(committed) .updateCommitMetadata(updater) - .fromBranch(source) + .fromRef(source) .toBranch(main) .build()); diff --git a/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractMergeTransplant.java b/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractMergeTransplant.java index 0f06199a27a..13ae231ec39 100644 --- a/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractMergeTransplant.java +++ b/versioned/persist/tests/src/main/java/org/projectnessie/versioned/persist/tests/AbstractMergeTransplant.java @@ -87,7 +87,7 @@ void merge(int numCommits, boolean keepIndividualCommits) throws Exception { numCommits, (commitHashes, i) -> MergeParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .updateCommitMetadata(metadataUpdater) .keepIndividualCommits(keepIndividualCommits) .mergeFromHash(commitHashes[i]), @@ -102,7 +102,7 @@ void merge(int numCommits, boolean keepIndividualCommits) throws Exception { () -> databaseAdapter.merge( MergeParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .toBranch(branch2) .mergeFromHash( databaseAdapter.hashOnReference(sourceBranch, Optional.empty())) @@ -153,7 +153,7 @@ void transplant(int numCommits, boolean keepIndividualCommits) throws Exception numCommits, (commitHashes, i) -> TransplantParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .updateCommitMetadata(metadataUpdater) .keepIndividualCommits(keepIndividualCommits) .sequenceToTransplant(Arrays.asList(commitHashes).subList(0, i + 1)), @@ -170,7 +170,7 @@ void transplant(int numCommits, boolean keepIndividualCommits) throws Exception databaseAdapter .transplant( TransplantParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .toBranch(conflict) .expectedHead(Optional.of(noConflictHead)) .addSequenceToTransplant(commits) @@ -187,7 +187,7 @@ void transplant(int numCommits, boolean keepIndividualCommits) throws Exception databaseAdapter .transplant( TransplantParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .toBranch(conflict) .addSequenceToTransplant(commits) .updateCommitMetadata(metadataUpdater) @@ -202,7 +202,7 @@ void transplant(int numCommits, boolean keepIndividualCommits) throws Exception () -> databaseAdapter.transplant( TransplantParams.builder() - .fromBranch(sourceBranch) + .fromRef(sourceBranch) .toBranch(conflict) .updateCommitMetadata(metadataUpdater) .keepIndividualCommits(keepIndividualCommits) @@ -347,7 +347,7 @@ Hash mergeTransplantSuccess( .isEqualTo( expectedMergeResult .resultType(merge ? ResultType.MERGE : ResultType.TRANSPLANT) - .sourceBranch(source) + .sourceRef(source) .targetBranch(target) .resultantTargetHash(mainHead) .addedCommits(mergeResult.getAddedCommits()) @@ -365,7 +365,7 @@ Hash mergeTransplantSuccess( .isEqualTo( expectedMergeResult .resultType(merge ? ResultType.MERGE : ResultType.TRANSPLANT) - .sourceBranch(source) + .sourceRef(source) .targetBranch(target) .resultantTargetHash(targetHead) .wasApplied(true) @@ -469,7 +469,7 @@ private MergeResult conflictExpectedMergeResult( MergeResult.builder() .resultType(merge ? ResultType.MERGE : ResultType.TRANSPLANT) .resultantTargetHash(conflictHead) - .sourceBranch(BranchName.of("branch")) + .sourceRef(BranchName.of("branch")) .targetBranch(conflict) .effectiveTargetHash(conflictHead) .expectedHash(conflictBase) diff --git a/versioned/persist/tx/src/main/java/org/projectnessie/versioned/persist/tx/TxDatabaseAdapter.java b/versioned/persist/tx/src/main/java/org/projectnessie/versioned/persist/tx/TxDatabaseAdapter.java index 972ccdfe7ca..16f9f5e5e89 100644 --- a/versioned/persist/tx/src/main/java/org/projectnessie/versioned/persist/tx/TxDatabaseAdapter.java +++ b/versioned/persist/tx/src/main/java/org/projectnessie/versioned/persist/tx/TxDatabaseAdapter.java @@ -247,7 +247,7 @@ public MergeResult merge(MergeParams mergeParams) ImmutableMergeResult.Builder mergeResult = MergeResult.builder() .resultType(ResultType.MERGE) - .sourceBranch(mergeParams.getFromBranch()); + .sourceRef(mergeParams.getFromRef()); mergeResultHolder.set(mergeResult); List writtenCommits = new ArrayList<>(); @@ -316,7 +316,7 @@ public MergeResult transplant(TransplantParams transplantParams) ImmutableMergeResult.Builder mergeResult = MergeResult.builder() .resultType(ResultType.TRANSPLANT) - .sourceBranch(transplantParams.getFromBranch()); + .sourceRef(transplantParams.getFromRef()); mergeResultHolder.set(mergeResult); diff --git a/versioned/spi/src/main/java/org/projectnessie/versioned/EventsVersionStore.java b/versioned/spi/src/main/java/org/projectnessie/versioned/EventsVersionStore.java index bf7ee6213d0..d673cce9554 100644 --- a/versioned/spi/src/main/java/org/projectnessie/versioned/EventsVersionStore.java +++ b/versioned/spi/src/main/java/org/projectnessie/versioned/EventsVersionStore.java @@ -68,7 +68,7 @@ public CommitResult commit( @Override public MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -81,7 +81,7 @@ public MergeResult transplant( throws ReferenceNotFoundException, ReferenceConflictException { MergeResult result = delegate.transplant( - sourceBranch, + sourceRef, targetBranch, referenceHash, sequenceToTransplant, @@ -99,7 +99,7 @@ public MergeResult transplant( @Override public MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, @@ -112,7 +112,7 @@ public MergeResult merge( throws ReferenceNotFoundException, ReferenceConflictException { MergeResult result = delegate.merge( - fromBranch, + fromRef, fromHash, toBranch, expectedHash, diff --git a/versioned/spi/src/main/java/org/projectnessie/versioned/MergeResult.java b/versioned/spi/src/main/java/org/projectnessie/versioned/MergeResult.java index 3151b27df0f..529327ec683 100644 --- a/versioned/spi/src/main/java/org/projectnessie/versioned/MergeResult.java +++ b/versioned/spi/src/main/java/org/projectnessie/versioned/MergeResult.java @@ -48,8 +48,8 @@ default boolean wasSuccessful() { @jakarta.annotation.Nullable Hash getCommonAncestor(); - /** Name of the source branch. */ - BranchName getSourceBranch(); + /** The source ref. */ + NamedRef getSourceRef(); /** Name of the target branch. */ BranchName getTargetBranch(); diff --git a/versioned/spi/src/main/java/org/projectnessie/versioned/MetricsVersionStore.java b/versioned/spi/src/main/java/org/projectnessie/versioned/MetricsVersionStore.java index 38ce884b912..b88c476d141 100644 --- a/versioned/spi/src/main/java/org/projectnessie/versioned/MetricsVersionStore.java +++ b/versioned/spi/src/main/java/org/projectnessie/versioned/MetricsVersionStore.java @@ -96,7 +96,7 @@ public CommitResult commit( @Override public MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -112,7 +112,7 @@ public MergeResult transplant( "transplant", () -> delegate.transplant( - sourceBranch, + sourceRef, targetBranch, referenceHash, sequenceToTransplant, @@ -126,7 +126,7 @@ public MergeResult transplant( @Override public MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, @@ -142,7 +142,7 @@ public MergeResult merge( "merge", () -> delegate.merge( - fromBranch, + fromRef, fromHash, toBranch, expectedHash, diff --git a/versioned/spi/src/main/java/org/projectnessie/versioned/TracingVersionStore.java b/versioned/spi/src/main/java/org/projectnessie/versioned/TracingVersionStore.java index 56d70a6400b..64cc1d1a127 100644 --- a/versioned/spi/src/main/java/org/projectnessie/versioned/TracingVersionStore.java +++ b/versioned/spi/src/main/java/org/projectnessie/versioned/TracingVersionStore.java @@ -117,7 +117,7 @@ public CommitResult commit( @Override public MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -138,7 +138,7 @@ public MergeResult transplant( .withTag(TAG_TRANSPLANTS, safeSize(sequenceToTransplant)), () -> delegate.transplant( - sourceBranch, + sourceRef, targetBranch, referenceHash, sequenceToTransplant, @@ -152,7 +152,7 @@ public MergeResult transplant( @Override public MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, @@ -173,7 +173,7 @@ public MergeResult merge( .withTag(TAG_EXPECTED_HASH, safeToString(expectedHash)), () -> delegate.merge( - fromBranch, + fromRef, fromHash, toBranch, expectedHash, diff --git a/versioned/spi/src/main/java/org/projectnessie/versioned/VersionStore.java b/versioned/spi/src/main/java/org/projectnessie/versioned/VersionStore.java index bfb491ce60e..47b3260bba4 100644 --- a/versioned/spi/src/main/java/org/projectnessie/versioned/VersionStore.java +++ b/versioned/spi/src/main/java/org/projectnessie/versioned/VersionStore.java @@ -110,7 +110,7 @@ default CommitResult commit( * to concurrent readers/writers. The sequence to transplant must be contiguous, in order and * share a common ancestor with the target branch. * - * @param sourceBranch The branch we're transplanting from + * @param sourceRef The named ref we're transplanting from * @param targetBranch The branch we're transplanting to * @param referenceHash The hash to use as a reference for conflict detection. If not present, do * not perform conflict detection @@ -131,7 +131,7 @@ default CommitResult commit( * sequenceToTransplant} is not present in the store. */ MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -158,7 +158,7 @@ MergeResult transplant( *
  • the expected branch hash does not match the actual branch hash * * - * @param fromBranch The branch we are merging from + * @param fromRef The named ref we are merging from * @param fromHash The hash we are using to get additional commits * @param toBranch The branch that we are merging into * @param expectedHash The current head of the branch to validate before updating (optional). @@ -178,7 +178,7 @@ MergeResult transplant( * the store. */ MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, diff --git a/versioned/spi/src/test/java/org/projectnessie/versioned/TestEventsVersionStore.java b/versioned/spi/src/test/java/org/projectnessie/versioned/TestEventsVersionStore.java index 00b28c49b0c..5fe6f4e5402 100644 --- a/versioned/spi/src/test/java/org/projectnessie/versioned/TestEventsVersionStore.java +++ b/versioned/spi/src/test/java/org/projectnessie/versioned/TestEventsVersionStore.java @@ -135,7 +135,7 @@ void testTransplantDryRun() throws Exception { boolean dryRun = true; MergeResult expectedResult = MergeResult.builder() - .sourceBranch(branch1) + .sourceRef(branch1) .targetBranch(branch2) .resultType(ResultType.TRANSPLANT) .effectiveTargetHash(hash1) @@ -188,7 +188,7 @@ void testTransplantSuccessful() throws Exception { boolean dryRun = false; MergeResult expectedResult = MergeResult.builder() - .sourceBranch(branch1) + .sourceRef(branch1) .targetBranch(branch2) .resultType(ResultType.TRANSPLANT) .effectiveTargetHash(hash1) @@ -289,7 +289,7 @@ void testMergeDryRun() throws Exception { boolean dryRun = true; MergeResult expectedResult = MergeResult.builder() - .sourceBranch(branch1) + .sourceRef(branch1) .targetBranch(branch2) .resultType(ResultType.MERGE) .effectiveTargetHash(hash1) @@ -342,7 +342,7 @@ void testMergeSuccessful() throws Exception { boolean dryRun = false; MergeResult expectedResult = MergeResult.builder() - .sourceBranch(branch1) + .sourceRef(branch1) .targetBranch(branch2) .resultType(ResultType.MERGE) .effectiveTargetHash(hash1) diff --git a/versioned/spi/src/test/java/org/projectnessie/versioned/TestMetricsVersionStore.java b/versioned/spi/src/test/java/org/projectnessie/versioned/TestMetricsVersionStore.java index 1ef58680d25..99f99ac5b0f 100644 --- a/versioned/spi/src/test/java/org/projectnessie/versioned/TestMetricsVersionStore.java +++ b/versioned/spi/src/test/java/org/projectnessie/versioned/TestMetricsVersionStore.java @@ -124,7 +124,7 @@ public CommitMeta squash(List metadata) { MergeResult dummyMergeResult = MergeResult.builder() .resultType(ResultType.MERGE) - .sourceBranch(BranchName.of("foo")) + .sourceRef(BranchName.of("foo")) .targetBranch(BranchName.of("bar")) .effectiveTargetHash(Hash.of("123456")) .build(); @@ -132,7 +132,7 @@ public CommitMeta squash(List metadata) { MergeResult dummyTransplantResult = MergeResult.builder() .resultType(ResultType.TRANSPLANT) - .sourceBranch(BranchName.of("foo")) + .sourceRef(BranchName.of("foo")) .targetBranch(BranchName.of("bar")) .effectiveTargetHash(Hash.of("123456")) .build(); diff --git a/versioned/spi/src/test/java/org/projectnessie/versioned/TestTracingVersionStore.java b/versioned/spi/src/test/java/org/projectnessie/versioned/TestTracingVersionStore.java index 1ad8f01631c..e7495a5ea33 100644 --- a/versioned/spi/src/test/java/org/projectnessie/versioned/TestTracingVersionStore.java +++ b/versioned/spi/src/test/java/org/projectnessie/versioned/TestTracingVersionStore.java @@ -109,7 +109,7 @@ public CommitMeta squash(List metadata) { MergeResult dummyMergeResult = MergeResult.builder() .resultType(ResultType.MERGE) - .sourceBranch(BranchName.of("foo")) + .sourceRef(BranchName.of("foo")) .targetBranch(BranchName.of("bar")) .effectiveTargetHash(Hash.of("123456")) .build(); @@ -117,7 +117,7 @@ public CommitMeta squash(List metadata) { MergeResult dummyTransplantResult = MergeResult.builder() .resultType(ResultType.TRANSPLANT) - .sourceBranch(BranchName.of("foo")) + .sourceRef(BranchName.of("foo")) .targetBranch(BranchName.of("bar")) .effectiveTargetHash(Hash.of("123456")) .build(); diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Merge.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Merge.java index 4da0bcbd7ec..add293cd179 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Merge.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Merge.java @@ -20,11 +20,11 @@ import org.projectnessie.model.CommitMeta; import org.projectnessie.model.ContentKey; import org.projectnessie.model.MergeKeyBehavior; -import org.projectnessie.versioned.BranchName; import org.projectnessie.versioned.Commit; import org.projectnessie.versioned.Hash; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.storage.common.logic.CommitRetry.RetryException; @@ -32,7 +32,7 @@ interface Merge { MergeResult merge( Optional retryState, - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeIndividualImpl.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeIndividualImpl.java index e1c09bd9447..a8a2c9f9b67 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeIndividualImpl.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeIndividualImpl.java @@ -33,6 +33,7 @@ import org.projectnessie.versioned.ImmutableMergeResult; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.ResultType; @@ -58,7 +59,7 @@ final class MergeIndividualImpl extends BaseMergeTransplantIndividual implements @Override public MergeResult merge( Optional retryState, - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, @@ -77,7 +78,7 @@ public MergeResult merge( ImmutableMergeResult.Builder mergeResult = prepareMergeResult() .resultType(ResultType.MERGE) - .sourceBranch(fromBranch) + .sourceRef(fromRef) .commonAncestor(objIdToHash(commonAncestorId)); // Fast-forward, if possible diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeSquashImpl.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeSquashImpl.java index c1feb356a09..519adaec3d4 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeSquashImpl.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/MergeSquashImpl.java @@ -31,6 +31,7 @@ import org.projectnessie.versioned.ImmutableMergeResult; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.ResultType; @@ -55,7 +56,7 @@ final class MergeSquashImpl extends BaseMergeTransplantSquash implements Merge { @Override public MergeResult merge( Optional retryState, - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, @@ -69,7 +70,7 @@ public MergeResult merge( ImmutableMergeResult.Builder mergeResult = prepareMergeResult() .resultType(ResultType.MERGE) - .sourceBranch(fromBranch) + .sourceRef(fromRef) .commonAncestor(objIdToHash(commonAncestorId)); return squash( diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Transplant.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Transplant.java index 052b36d20c7..6ab2d1d4eb6 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Transplant.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/Transplant.java @@ -21,11 +21,11 @@ import org.projectnessie.model.CommitMeta; import org.projectnessie.model.ContentKey; import org.projectnessie.model.MergeKeyBehavior; -import org.projectnessie.versioned.BranchName; import org.projectnessie.versioned.Commit; import org.projectnessie.versioned.Hash; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.storage.common.logic.CommitRetry.RetryException; @@ -33,7 +33,7 @@ interface Transplant { MergeResult transplant( Optional retryState, - BranchName sourceBranch, + NamedRef sourceRef, List sequenceToTransplant, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantIndividualImpl.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantIndividualImpl.java index 890bfb06d54..640adb0d65b 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantIndividualImpl.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantIndividualImpl.java @@ -29,6 +29,7 @@ import org.projectnessie.versioned.ImmutableMergeResult; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.ResultType; @@ -52,7 +53,7 @@ final class TransplantIndividualImpl extends BaseMergeTransplantIndividual imple @Override public MergeResult transplant( Optional retryState, - BranchName sourceBranch, + NamedRef sourceRef, List sequenceToTransplant, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, @@ -61,7 +62,7 @@ public MergeResult transplant( SourceCommitsAndParent sourceCommits = loadSourceCommitsForTransplant(sequenceToTransplant); ImmutableMergeResult.Builder mergeResult = - prepareMergeResult().resultType(ResultType.TRANSPLANT).sourceBranch(sourceBranch); + prepareMergeResult().resultType(ResultType.TRANSPLANT).sourceRef(sourceRef); return individualCommits( updateCommitMetadata, dryRun, mergeResult, mergeBehaviorForKey, sourceCommits); diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantSquashImpl.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantSquashImpl.java index 65ec693ee32..0fd24cf4906 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantSquashImpl.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/TransplantSquashImpl.java @@ -29,6 +29,7 @@ import org.projectnessie.versioned.ImmutableMergeResult; import org.projectnessie.versioned.MergeResult; import org.projectnessie.versioned.MetadataRewriter; +import org.projectnessie.versioned.NamedRef; import org.projectnessie.versioned.ReferenceConflictException; import org.projectnessie.versioned.ReferenceNotFoundException; import org.projectnessie.versioned.ResultType; @@ -52,7 +53,7 @@ final class TransplantSquashImpl extends BaseMergeTransplantSquash implements Tr @Override public MergeResult transplant( Optional retryState, - BranchName sourceBranch, + NamedRef sourceRef, List sequenceToTransplant, MetadataRewriter updateCommitMetadata, Function mergeBehaviorForKey, @@ -61,7 +62,7 @@ public MergeResult transplant( SourceCommitsAndParent sourceCommits = loadSourceCommitsForTransplant(sequenceToTransplant); ImmutableMergeResult.Builder mergeResult = - prepareMergeResult().resultType(ResultType.TRANSPLANT).sourceBranch(sourceBranch); + prepareMergeResult().resultType(ResultType.TRANSPLANT).sourceRef(sourceRef); return squash( dryRun, mergeResult, mergeBehaviorForKey, updateCommitMetadata, sourceCommits, null); diff --git a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/VersionStoreImpl.java b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/VersionStoreImpl.java index c4ee1a6df81..0188618dfa3 100644 --- a/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/VersionStoreImpl.java +++ b/versioned/storage/store/src/main/java/org/projectnessie/versioned/storage/versionstore/VersionStoreImpl.java @@ -605,7 +605,7 @@ public CommitResult commit( @Override public MergeResult merge( - BranchName fromBranch, + NamedRef fromRef, Hash fromHash, BranchName toBranch, Optional expectedHash, @@ -630,7 +630,7 @@ public MergeResult merge( (merge, retryState) -> merge.merge( retryState, - fromBranch, + fromRef, fromHash, updateCommitMetadata, mergeBehaviorForKey(mergeKeyBehaviors, defaultMergeBehavior), @@ -649,7 +649,7 @@ private static Function mergeBehaviorForKey( @Override public MergeResult transplant( - BranchName sourceBranch, + NamedRef sourceRef, BranchName targetBranch, Optional referenceHash, List sequenceToTransplant, @@ -674,7 +674,7 @@ public MergeResult transplant( (transplant, retryState) -> transplant.transplant( retryState, - sourceBranch, + sourceRef, sequenceToTransplant, updateCommitMetadata, mergeBehaviorForKey(mergeKeyBehaviors, defaultMergeBehavior), diff --git a/versioned/tests/src/main/java/org/projectnessie/versioned/tests/AbstractMerge.java b/versioned/tests/src/main/java/org/projectnessie/versioned/tests/AbstractMerge.java index 15c5f6c727e..c0d843c3bb4 100644 --- a/versioned/tests/src/main/java/org/projectnessie/versioned/tests/AbstractMerge.java +++ b/versioned/tests/src/main/java/org/projectnessie/versioned/tests/AbstractMerge.java @@ -416,7 +416,7 @@ void compareDryAndEffectiveMergeResults(boolean individualCommits) throws Versio .isEqualTo( MergeResult.builder() .resultType(ResultType.MERGE) - .sourceBranch(sourceBranch) + .sourceRef(sourceBranch) .wasApplied(true) .wasSuccessful(true) .commonAncestor(initialHash)