>If this returns null, the tag will be deleted.

Can this handle the following use case?

*initial:*
```
refs/tags/my-tag -> TagA -> TagB -> TagC -> GitObject (either a Blob, Tree or a Commit)
```
*expected output:*
```
refs/original/tags/my-tag -> TagC -> GitObject (either a Blob, Tree or a Commit)
or
refs/original/tags/my-tag -> TagA -> GitObject (either a Blob, Tree or a Commit)
or
refs/original/tags/my-tag -> GitObject (either a Blob, Tree or a Commit)
```