Deleted Changesets Keep Coming Back

Forgive me if there is a similar post covering this topic, but I have been searching all morning and can’t find something similar to what we are experiencing. Any advice or direction would help so much. Please and thank you in advance!

Summary:
We would like to delete these four changesets, but they keep coming back with a pull. These extra changesets were tests we wanted to do away with but were unfortunately kept on the same Task1589 branch. They look broken off here as we would want because we merged the other branches back to the checkpoint. We understand this was not an appropriate way to handle that, and we will try to adhere to better practices in the future. But for this use case, we are just trying to delete those four changesets or find a workaround that ends with us being able to push our merges to move on with development.

The primary issue to address:
I cannot push the merges because it views these deleted changesets as an extra head.

“An error occurred during the replication: The source branch has two heads. Merge from cs:XXX… to XXX to unify the heads.”

Which refers to the changeset heads we are trying to delete

The Death & Rebirth Issue:
Right-click > Advanced Options > Delete Changeset and repeat for the other three. They show in the GUI as deleted as expected.

Try to push, and we get conflicts.

9518815--1342375--upload_2023-12-8_12-14-58.png

So, I do a pull to remedy conflicts… And the changesets we deleted are back

Notes:

  • The revived changesets object name keeps increasing with each phoenix down. (In the screenshots above, what once was 1092 is now 1096)
  • Version: 11.0.16.8289
  • Windows 10
  • Distributed
  • Tried logging into Unity DevOps to see if the changeset was still lingering. From what I can tell, it is not in the cloud either.
  • Haven’t tried deleting through the CLI instead of the GUI. Frankly, I messed around with it for an hour and had no idea what I was doing. If that is the proposed solution, a little guidance would be spectacular.

Edit:

  • [12/9/2023-8:00 AM CST] - I also tried moving the three changesets to a different branch with similar results.
  • [12/11/2023-8:19 AM CST] - Tried deleting the 3 that were made by my peer and creating 3 “fake” check-in’s to replace them.

I resolved the issue by using the CLI to delete the changesets. From what I can understand, which makes sense to me anyway, the changesets were only being deleted locally and not on the cloud server. So, CLI deletion from the cloud makes sense as a resolution. As for how to do that, it took me a while, but this is what I did.

To find the changeset ID (Because the local changeset number is incorrect):
I used a series of find’s to get the changeset ID’s in question to delete:

cm find changeset "where branch = 'main/BRANCH' on repository 'PROJECT@SERVER@cloud'"

And to confirm the changes were what I wanted to remove:

cm find revision "where changeset=CHANGESETJUSTFOUND on repository 'PROJECT@SERVER@cloud'"

Then, to remove:

cm changeset rm cs:CHANGESETFOUND@PROJECT@SERVER@cloud

References:
Plastic SCM Find Documentation
Unity CLI Changeset Delete Documentation