Not builtChanges

Summary

  1. RefDatabase API improvements (details)
Commit 0ae50001ef55d8cd44c715bdb62febe18c141739 by gabriel.roldan
RefDatabase API improvements
RefDatbase used to work with key/value pairs where the key was the ref
name and the value either an ObjectId or a String with the target ref
name for symbolic references.
With Ref being a core model object it makes sense that RefDatabase works
with Ref directly.
Some methods where added to handle atomic operations on several refs,
and a new command UpdateRefs introduced to do so at the command level.
Most commands that update several refs were modified to use UpdateRefs
instead to doing several single-ref changes.
Consequently, UpdateRef and UpdateSymRef were changed to delegeate to
UpdateRefs, so that there's a single command in charge of updating the
RefDatabase objects.
Note setting a "reason for change" property on all three ref updating
commands is temporarily mandatory in order to catch any missing but
important ref update that could be a target for the reflog, for which an
initial no-op command hook was introduced.
Signed-off-by: Gabriel Roldan <gabriel.roldan@gmail.com>
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/porcelain/index/UpdateIndexesOpTest.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/RevParseIntegrationTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/NamespaceRefDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/CherryPickOp.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbBlobStore.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/CommitOp.java
The file was removedsrc/core/src/test/java/org/locationtech/geogig/test/integration/GeogigTransactionTest.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/internal/IRemoteRepo.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/storage/RefDatabase.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/PushOp.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/TransactionRefDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/merge/ReportCommitConflictsOp.java
The file was modifiedsrc/remoting/src/test/java/org/locationtech/geogig/test/integration/remoting/PullOpTest.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/MergeOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/hooks/builtin/UpdateIndexesHook.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/RemoveOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/DiffTree.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/WriteTree2Test.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/repository/WorkingTree.java
The file was modifiedsrc/cli/core/src/main/java/org/locationtech/geogig/cli/porcelain/Squash.java
The file was modifiedsrc/storage/rocksdb/src/test/java/org/locationtech/geogig/rocksdb/RocksdbBlobStoreTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionBlobStoreImpl.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/BranchRenameOpTest.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PR.java
The file was modifiedsrc/cli/core/src/main/java/org/locationtech/geogig/cli/plumbing/ShowRef.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/plumbing/TransactionBegin.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionResolve.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionEnd.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/repository/impl/RepositoryResolverTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/ResetOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/decorator/ForwardingRefDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/BranchDeleteOp.java
The file was modifiedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/v9/PGBlobStore.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/plumbing/TransactionResolve.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRCloseOp.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/repository/RepositoryFinder.java
The file was modifiedsrc/cli/core/src/main/java/org/locationtech/geogig/cli/plumbing/RevList.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/FindFeatureTypeTrees.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRDeleteOp.java
The file was modifiedsrc/cli/core/src/test/java/org/locationtech/geogig/cli/test/functional/DefaultStepDefinitions.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/pack/PushOp.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRMergeOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/InitOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/RefParse.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/FindChangedTreesTest.java
The file was addedsrc/core/src/test/java/org/locationtech/geogig/transaction/NamespaceRefDatabaseTest.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRHealthCheckOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/CheckoutOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/CatObject.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/fs/FileRefDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/FindOrCreateSubtree.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/RepositoryTestCase.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/TransactionConflictsDatabase.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/remotes/RemoteRemoveOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/UpdateSymRef.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/UpdateSymRefTest.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/repository/RefDatabaseTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/TagCreateOp.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/dsl/Conflicts.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/AbstractRefDatabase.java
The file was modifiedsrc/geotools/datastore/src/main/java/org/locationtech/geogig/geotools/data/GeogigTransactionState.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/TagRemoveOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/RevParse.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/TestData.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/di/RefDatabaseSnapshot.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/UpdateRef.java
The file was modifiedsrc/pullrequests/src/test/java/org/geogig/commands/pr/PRMergeOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/StagingAreaImpl.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/repository/StagingArea.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/storage/memory/HeapBlobStoreTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/ForEachRef.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/UpdateRefTest.java
The file was modifiedsrc/remoting/src/test/java/org/locationtech/geogig/test/integration/remoting/FetchOpWithIndexTest.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/plumbing/TransactionEnd.java
The file was modifiedsrc/storage/postgres/src/test/java/org/locationtech/geogig/storage/postgresql/v9/PGBlobStoreTest.java
The file was modifiedsrc/pullrequests/src/test/java/org/geogig/commands/pr/PRInitOpTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionConflictsDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/ResolveTreeish.java
The file was modifiedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/v9/PGConflictsDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/AddOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/memory/MemoryRepositoryResolver.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/TransactionStagingArea.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/SimpleLockingRefDatabase.java
The file was modifiedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/v9/PGRefDatabase.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevObjects.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/LogOp.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/FetchOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/FileRepositoryResolver.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/TransactionBlobStoreImpl.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRInitOp.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/internal/LocalMappedRemoteRepo.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/GeogigTransaction.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/ParseTimestampTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/BranchRenameOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/index/UpdateIndexesOp.java
The file was modifiedsrc/geotools/datastore/src/main/java/org/locationtech/geogig/geotools/data/GeoGigDataStore.java
The file was modifiedsrc/cli/remoting/src/main/java/org/locationtech/geogig/cli/remoting/Clone.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/memory/HeapConflictsDatabase.java
The file was modifiedsrc/pullrequests/src/test/java/org/geogig/commands/pr/PRHealthCheckOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/di/ContextImpl.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/plumbing/UpdateRefs.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/DiffTreeTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/GeogigTransaction.java
The file was modifiedsrc/cli/core/src/test/resources/features/porcelain/Branch.feature
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/decorator/ForwardingConflictsDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/dsl/Refs.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/hooks/builtin/RefLogCommandHook.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/MergeOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/fs/FileBlobStore.java
The file was removedsrc/core/src/test/java/org/locationtech/geogig/storage/impl/TransactionBlobStoreTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/RevertOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/memory/HeapBlobStore.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/remotes/RemoteRemoveOp.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionStagingArea.java
The file was modifiedsrc/pullrequests/src/test/java/org/geogig/commands/pr/PRPrepareOpTest.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/LsRemoteOp.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/CommitOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/WorkingTreeImpl.java
The file was removedsrc/core/src/main/java/org/locationtech/geogig/storage/impl/TransactionBlobStore.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/internal/ClusteringStrategy.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/dsl/Commands.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/RebaseOp.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/pack/FetchOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/ResolveTree.java
The file was addedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/v9/PGRefDatabaseWorker.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/Ref.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/repository/RepositoryResolver.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionBlobStore.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/storage/ConflictsDatabase.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/RevParseTest.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/SymRef.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/memory/HeapRefDatabase.java
The file was modifiedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/PGRepositoryResolver.java
The file was addedsrc/api/src/main/java/org/locationtech/geogig/storage/RefChange.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/internal/LocalRemoteRepo.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbConflictsDatabase.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/porcelain/InitOpTest.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/repository/IndexTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/dsl/Blobs.java
The file was addedsrc/core/src/test/java/org/locationtech/geogig/transaction/GeogigTransactionTest.java
The file was addedsrc/core/src/test/java/org/locationtech/geogig/transaction/TransactionBlobStoreTest.java
The file was addedsrc/core/src/main/java/org/locationtech/geogig/transaction/TransactionBegin.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/RefParseTest.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/BranchDeleteOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/ResolveBranchId.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/RevertAbort.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/dsl/Geogig.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/CleanRefsOp.java
The file was modifiedsrc/pullrequests/src/main/java/org/geogig/commands/pr/PRPrepareOp.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/test/integration/CleanRefsOpTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/BranchCreateOp.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/plumbing/index/IndexTestSupport.java
The file was modifiedsrc/remoting/src/main/java/org/locationtech/geogig/remotes/pack/DiffRemoteRefsOp.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/index/BuildIndexOp.java
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/storage/fs/FileBlobStoreTest.java
The file was modifiedsrc/core/src/main/resources/META-INF/services/org.locationtech.geogig.hooks.CommandHook
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/porcelain/SquashOp.java
The file was modifiedsrc/cli/core/src/main/java/org/locationtech/geogig/cli/porcelain/Log.java