Replication: propagate RenameRepository RPC to Praefect secondaries
The RenameRepository
is a mutator operation, however it is not about changing Git data, but a metadata of the repository.
That is why it is must be treated specially same as RemoveRepository
operation.
To make a replication of RenameRepository
an additional data required - the parameter of the initial request(new repository name). Now it would be passed to the storage as part of replication job and must be used by replicator to send proper constructed RPC call to all secondaries.
Previously Replicator
has been marking all jobs that has same relative path as Cancelled
which is not correct because source and target may be different for each job entry. That is why this information needs to be a part of the tracking mechanism as well as ChangeType
, because Update
for repo /some/path
from stor1
to stor2
is not the same as Delete
for repo /some/path
from stor1
to stor2
.
Closes: #2172 (closed)